The term “Cloud Native” App is used to describe an application that is built for the cloud on the cloud.
It is an approach to building and running applications that exploits the advantages of the cloud computing delivery model. “Cloud-native” is about how applications are created and deployed, not where. It implies that the apps live in the public cloud, as opposed to an on-premises datacenter.
The Cloud Native Computing Foundation (CNCF) is a primary promoter of cloud-native principles. The Cloud Native Computing Foundation (CNCF) is an organisation, which aims to develop and further programming paradigms. It defines cloud native as an approach, which builds software applications as micro-services and executes them on a container-based as well as dynamically orchestrated platform to utilize the benefits of cloud computing.
In short, the term Cloud Native describes all applications, which were already tailored during the design stage for use in the cloud.
Below are the characteristics of cloud-native apps:
- Microservice-based to significantly increase the overall agility and maintainability of applications with loosely-coupled, autonomous services that facilitate change.
- Containerized to quickly move, enhance and scale applications with independent containers enabling modular development and deployment.
- Operate on managed platforms to reduce cost of operation through efficient use of resources with high levels of resilience and scalability; and benefit from features such as auto-scaling to allow the system to change to demands.
- DevOps to remove organizational and cultural inhibitors in a move toward continuous delivery and end-to-end automation for the application lifecycle; and reduce the risk of introducing new software into production even allowing for experimentation.
- Cloud native application designers pay close attention to the requirements of orchestration and operations automation right from the outset. The focus is on achieving the simplest possible process for bringing up the components of the application, mainly by minimizing the amount of configuration that needs to be injected into each component.
The key difference between a Cloud-Native application and a simpler Cloud-Optimized web app is the recommendation to use microservices architectures in a cloud-native approach. Cloud-Optimized apps can also be monolithic web apps or N-Tier apps.
The Twelve-Factor App (a collection of patterns that are closely related to microservices approaches) is also considered a requirement for cloud-native application architectures.