What is Cloud Native?
Definition
Popularized by Netflix in 2013. No clear definition.
Promises to build web applications that are:
- More Scalable
- More Available
- More Agile
Cloud Computing
Running applications on remote servers managed by cloud providers without having to manage hardware infrastructure ourselves.
Characteristics of Cloud Native Applications
- Microservices Architecture: Applications are broken down into small, independent services that can be developed, deployed, and scaled independently. They comminicate over APIs.
- Containerization and Orchestration: Using containers (like Docker) to package applications and their dependencies, ensuring consistency across different environments. Orchestration tools (like Kubernetes) manage the deployment, scaling, and operation of these containers.
- DevOps Practices: Emphasizing collaboration between development and operations teams, automating processes like continuous integration and continuous deployment (CI/CD) to speed up software delivery.
- Cloud Native Open Standards: Utilizing open standards and technologies that are designed to work well in cloud environments, promoting interoperability and flexibility. Examples include Kubernetes, Open Telemetry (Traces the requests as they propagate through microservices) etc.