Image by Gerd Altmann from Pixabay |
The Cloud Native term is getting increasingly popular for modern applications which make best use of the cloud, containers and orchestration. There are many more open-source software available for each area like ‘build’, ‘deploy’, ‘monitoring’ etc. You can run an existing application on cloud, but that does not make it cloud native. Cloud native applications are independent services, packaged as self-contained, lightweight containers that are portable and can be scaled quickly based on the demand.
Cloud
Native Computing Foundation (CNCF) plays a vital role in fostering open-source technologies
to support adoption of cloud native applications and also defining the
standards. The CNCF lists immutable infrastructure, microservices, declarative
APIs, service meshes, and containers as the technological
blocks of cloud-native architecture.
Her
are a few characteristics of cloud native applications
Automation
Application
needs to use some common standards, interfaces, and formats in order to get it deployed
without human intervention. Additionally, developers can use blue-green
deployment strategy to make improvements to the application without any
disruption to the user experience. Cloud native application are designed to
deliver using continuous integration and continuous delivery (CI/CD) pipelines,
which is the most important aspect for automating the building, testing, and
deployment.
Independent and flexible
The
application should be decoupled from the infrastructure resources so that it
can be moved across Nodes. By containerizing
the microservices, cloud-native applications run independently of the
underlying operating system and hardware. Containerized micro services can be
moved across nodes and even one cluster to another. This helps in deploying cloud-native
applications on premises, on cloud infrastructure, or on hybrid clouds seamlessly.
Resilient and Scalable
Traditional
applications usually have a single point of failure, application stops working
if the main process crashes or due to any underlying network/ hardware issues.
Auto recovery is not built in the traditional applications, human intervention
is required to revive the application health. A well-designed cloud native
application is able to survive and is serviceable even in the event of an
infrastructure outage. Cloud native application can be made highly available as
they are distributed by design.
Dynamic
A
container orchestrator such as Kubernetes can make optimal usage of the
available resources. It can scale up or down on-demand based on application
traffic. It can also run multiple copies across multiple availability zones to
achieve high availability.
Distributed
Cloud
native is an approach to building and running applications that takes advantage
of the distributed and decentralized nature of the cloud. Instead of deploying
your code as a monolithic application, cloud native application is based on
distributed microservices architecture.
Monitoring
Distributed
applications are usually difficult to debug and trace. To gauge the health of
the application, it’s important to monitor the logs and metrics generated by
the application, and underlying infrastructure. Cloud Native applications
should stream the logs to a centralized storage. Monitoring tools can be run on
the centralized logs to generate alerts real-time.
No comments:
Post a Comment