The term “cloud native computing” has emerged as a collective term for the variety of tools and techniques software developers need to build, deploy, and maintain modern software applications on cloud infrastructure. Here we define the terms, investigate the cloud-native situation, and identify some of the benefits and pitfalls of becoming cloud-native.
Cloud native definition
Cloud Native is the latest approach to building and running software applications that take advantage of the flexibility, scalability, and resilience of cloud computing. Cloud-native includes the various tools and techniques that software developers use today to build applications for the public cloud, as opposed to traditional architectures suitable for on-premises data centers.
A cloud-native approach to building and running software is generally “Born in the cloud— Streaming giants Netflix and Spotify, ride-hailing service company Uber, accommodation booking platform Airbnb, and more. The cloud-native approach has been adopted by other companies seeking similar digital agility and disruptive competitive advantage.
NS Cloud Native Computing Foundation (CNCF) It is cloud-native and focuses on containerization of applications. Applications are split into microservices, packaged in lightweight containers, and deployed and coordinated on a variety of servers.
In the words of CNCF itself, “Cloud Native Technology makes organizations public, private, hybrid cloud. “
Development of cloud-native apps usually involves marriage Microservices, Cloud platform, container, Kubernetes, Immutable infrastructure, declarative API, and Continuous delivery Technology with technology like devops When Agile technique..
Cloud native landscape
This change in popular software development technology has created new perspectives primarily for open source tools. CNCF Interactive graphics in this ecosystem..
There are four layers of cloud native computing that are important to understand.
- Application definition and development layer. The top layer of the cloud-native stack focuses on the tools developers use to build their applications, such as databases, messaging systems, container images, continuous integration and continuous delivery (CI / CD) pipelines. increase.
- Provisioning layer. The provisioning layer of the cloud-native stack contains everything you need to build and protect the environment in which your applications run. Ideally, it’s a repeatable method.In the cloud-native world, this usually involves processing Infrastructure as code, Save images to repositories, automate builds, and use vulnerability scanning, key and policy management, and authentication tools to address your application’s security needs.
- Runtime layer. The runtime layer pertains everything related to running cloud-native applications, including the container runtime. Docker— Not just storage and networking..
- Orchestration and management layer. The orchestration and management layer is a collection of tools needed to deploy, manage, and scale containerized applications, such as orchestration and scheduling.In most cases it is Kubernetes-Similar to service discovery, service proxies, API gateways, and service meshes.
Outside of these layers, it’s also important to implement Observability Therefore, all these services are effectively monitored. Some organizations have also chosen to put the stack together and make it self-service. Internal developer platform Or buy an opinion Platform as a Service (PaaS) From vendors to facilitate developer recruitment.
Benefits of cloud-native and on-premises architectures
Developing cloud-native applications requires a very different architecture than traditional enterprise applications that typically run in on-premises data centers. Here are some important differences and the advantages of cloud-native applications over traditional app development models.
Updatable. Cloud-native apps are built to be highly available, resilient, and updated on a regular basis, but on-premises applications are typically updated once or twice a year using waterfall techniques. The updatableness of cloud-native computing gives development teams a more productive focus on their competitive advantage and delivering new features to their customers more often than before.
Elastic. Cloud-native applications typically take advantage of the resilienc
e of the cloud by making consumption flexible on demand, but on-premises applications require the physical provisioning of additional infrastructure to effectively scale. I have. This also has a cost impact, as you can use the cloud to pay for what you use and avoid over-provisioning your own costly infrastructure.at least Theoretically..
Multi-tenancy. Cloud-native apps have no problems working in virtualized spaces or sharing resources with other applications using the multi-tenant model. This clearly improves the efficiency of the development team.
downtime. The cloud is more redundant due to the size and geographic extent of the data centers managed by hyperscale cloud vendors. As a result, you can better manage outages by quickly redirecting traffic to another region and avoiding costly downtime.
automation. Cloud-native methods open up a wealth of automation opportunities for engineers to build once and move on to other, more pressing challenges.
stateless. Cloud-native applications tend to be stateless in that they don’t carry stored data from one session to another. This model offers the opportunity to easily scale across multiple servers, cache more easily to improve performance, use less storage, and avoid connecting to a particular server to avoid its dreaded vendor lock-in. open.
Trying Lift and shift While existing on-premises applications that are cloud-native without creating architectural challenges are a common mistake, redesigning something for the cloud is also an important engineering challenge.
Find the right skill combination to do this, adapt to a cloud-centric security model, Manage changing cost profiles in your cloud environment All of these remain important challenges for organizations looking to move to cloud native.
Still, developers are considering adopting cloud native as an organizational principle by building new applications for the cloud or splitting existing monolithic applications into microservices to make them more suitable for the cloud environment. need to do it.
This will require a major shift in thinking from traditional waterfall deployments to more deployments. Agile development Minimum viable product (MVP) development, adoption of automation, multivariate testing, rapid iteration, Observability, And work closely with the operations team devops model..
Details of related cloud-native technologies:
Copyright © 2021 IDG Communications, Inc.