Cloud native is a term that refers to an application that was designed to reside in the cloud from the start. Cloud native applications take advantage of the distributed computing offered by the cloud delivery model, and leverage or implement cloud characteristics such as capabilities delivered as a service.
Cloud native applications are typically composed of multiple small, interdependent services called microservices, which communicate through APIs. This makes cloud native applications more agile, scalable, and resilient than traditional monolithic applications.
Cloud native applications also use modern tools and techniques that support fast and frequent changes to the software, such as DevOps, continuous delivery, containers, and declarative APIs.
Cloud native is an approach to building and running scalable applications to take full advantage of cloud-based services and delivery models.
Organizations can build and run scalable applications on public, private, and hybrid clouds using cloud native technologies. This means the applications are designed to leverage cloud features, so they are resilient to load and easy to scale.
Cloud native includes 4 aspects:
1. Development process
This has progressed from waterfall to agile to DevOps.
2. Application Architecture
The architecture has gone from monolithic to microservices. Each service is designed to be small, adaptive to the limited resources in cloud containers.
3. Deployment & packaging
The applications used to be deployed on physical servers. Then around 2000, the applications that were not sensitive to latency were usually deployed on virtual servers. With cloud native applications, they are packaged into docker images and deployed in containers.
4. Application infrastructure
The applications are massively deployed on cloud infrastructure instead of self-hosted servers.