This chapter covers:
- What are the cloud and the cloud computing model
- The definition of cloud native
- Characteristics of cloud native applications
- Culture and practices supporting cloud native
- When and why you might consider the cloud native approach
- Topologies and architectures for cloud native applications
Cloud native applications are highly distributed systems that live in the cloud and are resilient to change. Systems are made up of several services, which communicate through a network and are deployed in a dynamic environment where everything keeps changing.
Before diving into Spring, Docker, and Kubernetes, it’s fundamental to define what cloud native is first. Like other buzzwords in our field (such as Agile, DevOps, or Microservices), Cloud Native is sometimes misunderstood and is a source of confusion because it means different things to different people.