The cloud-native ecosystem
The cloud-native ecosystem is a combination of three very basic elements: the cloud platform, the architecture, and, of course, the cloud-native application. Let's break them down one by one.
The cloud platform is what makes cloud-native applications possible. For instance, the virtually unlimited computing and storage capabilities of a cloud platform give cloud-native applications the following characteristics:
- Scalability, a defining characteristic.
- The pay-per-use model makes the applications cost-effective.
- Managed services that make cloud-native applications not only versatile but also very developer-friendly.
There are ample reasons why the industry is choosing cloud-native architecture as the foundation for its applications. The architecture dictates how the software is engineered and with cloud-native architecture, developers have far more control. It enables developers to adopt DevOps, containers, automation, microservices, and more. Microservices, in particular, are one of the most important components of a cloud-native architecture and they are what give cloud-native applications the rest of their defining characteristics: agility and resiliency.
An application can be considered cloud-native when it can take advantage of the cloud platform, and in order to take full advantage, it usually needs to be built on a cloud-native architecture. Therefore, a cloud-native application should be the following:
- Managed: Use the cloud platform as an infrastructure (be dependent on it to do all the computing).
- Scalable: Quickly increase or decrease resources to match the demand.
- Resilient: A single bug or crash should not take down the application.
- Loosely coupled: Parts of the application should be isolated enough for them to be altered or removed without any downtime.
If the cloud-native ecosystem were a house, the cloud platform would be the underground foundation, the architecture would be the main pillars, and the cloud applications would be the rooms.