What is cloud native?
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.
"Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil." "
Cloud-native applications rely on 5 pillars.
- 3 "core pillars" provide the most important cloud-native benefits.
- The hardware abstraction pillar
- The distributed architecture pillar
- The commodity managed services
- 2 "supporting pillars"are more to mitigate the impact of the complexity caused by the core pillars.
- The automation pillar
- The observability pillar
Hardware abstraction pillar
Modern computer models such as containerization and serverless computing favor hardware abstraction. This gives developers the ability to create workloads without having to deal with all the burden of hardware considerations such as static upfront sizing, installations (including OS aspects), localization, low-level patching, scaling management, and physical networking set-up.
This pillar is more architectural than technological and is probably the most important one. It basically consists in 2 things :
- Divide and conquer: split global complexity in independent components (typically microservices), each one being less complex.
- Ensure loose-coupling: splitting complexity is useless if everything is coupled to everything, it must also be ensured that coupling is reduced to the minimum by leveraging API driven approaches, event-driven design or DDD principles
Commodity managed services
To be fast, developer need to focus on the essential: their business code. Everything that can be commoditized has to be. This pillar provides on-the-shelf ready to use infrastructure services such as databases, messaging services, IDP, virtual networking etc...
The pillar is an extraordinary accelerator to cloud-native application development speed.
In cloud-native architectures, automation becomes a must have to be able to cope with the complexity increase. It brings very important benefits such as :
- Ability to handle multiple environments
- Lower build and deployment times
- Increase quality and predictability
Many moving pieces means that troubleshooting becomes more complex. An efficient observability infrastructure is key to detect rapidly the source of issues and perform reactive remediation.
In addition to technical pillars, successful cloud-native initiative also relies on non-IT dimensions such as :
- Agile methodologies
- Non-hierarchical team organization
- Feature and data driven product design
- Iterative and collaborative culture