23
Cloud-Native Application Ecosystem
This article defines what a cloud-native application is and summaries the various tools involved in designing, developing, deploying and operating a cloud-native application.
Cloud-Native applications are built using microservices, containers, orchestration and automation. They are designed for the cloud to take advantage of its elastic infrastructure for scaling up and down on-demand. They increase the speed, flexibility and innovation in the development cycle enabling faster delivery and new user experience.
Containers, service meshes, microservices, immutable infrastructure, CI/CD tooling, observability tools are the prominent technologies that enable adoption of cloud-native application development.
Containers, service meshes, microservices, immutable infrastructure, CI/CD tooling, observability tools are the prominent technologies that enable adoption of cloud-native application development.
Cloud-native applications being loosely coupled systems offers the benefits of resiliency, manageability and observability. Together with robust automation, allows engineers to make high-impact high-quality changes frequently and predictably with minimal toil.
This section mentions the commonly encountered terms, tools and processes used in the life-cycle of a cloud-native application.
Below image shows different microservices working together in a typical e-commerce application.

Frameworks and Programming languages: Development teams are free to select tools that best the application functionality.
APIs: Well-defined interfaces based on REST, GraphQL or gRPC technologies provided by third party services and microservices promote faster development and collaboration between teams.
This section introduces to the commonly used tools in the cloud-native ecosystem.

Configuration
Provisioning
Availability
Scaling
Resource allocation
Load balancing
Health monitoring
Provisioning
Availability
Scaling
Resource allocation
Load balancing
Health monitoring

Kubernetes is the king among orchestrators. It provides the uses the below resources to achieve it's functionality.
Pod
Deployment
Replica Set
Service
Ingress
ConfigMap
Namespace
Pod
Deployment
Replica Set
Service
Ingress
ConfigMap
Namespace


Security: OAuth, OIDC, JWTs, identity providers, API gateways, and automatic container patching provide new mechanisms to cover attack surface areas.
Service Mesh: The goal of the mesh is to guarantee secure communications between each independent container application/microservice and be able to redirect traffic in the
event of failures.

This article introduced what a cloud-native application is, terms and tools in cloud-native application ecosystem.