What is Cloud Native? A Modern Way of Software Development


The term “cloud-native computing” has become a collective term for the variety of tools and techniques that software developers need to build, deploy, and maintain modern software applications on cloud infrastructure. Here, we define the terms, study the state of cloud native, and identify some of the pros and cons 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 resiliency of cloud computing. Cloud-native understands the various tools and techniques that software developers use today to build applications for the public cloud, as opposed to traditional architectures suited to on-premises data centers.

A cloud-native approach to building and running software is typically “Born in the cloud– The streaming giants Netflix and Spotify, the ride-sharing service company Uber, the Airbnb accommodation reservation platform, etc. The cloud-native approach has been adopted by other companies seeking similar digital agility and a disruptive competitive advantage.

NOT. Cloud Native Computing Foundation (CNCF) It is cloud native and focuses on containerization of applications. Applications are divided into microservices, packaged in lightweight containers, and deployed and coordinated across a variety of servers.

In the words of the CNCF, “Cloud Native Technology makes organizations public, private, hybrid cloud. “

Developing Cloud Native Applications 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 native cloud 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 pipelines. (CI / CD). to augment.
  • Supply layer. The cloud native stack provisioning layer contains everything you need to build and protect the environment in which your applications run. Ideally, this is 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 meet your application’s security needs.
  • Execution layer. The execution layer is all about running cloud native applications, including running the container. Docker– Not just storage and networking..
  • Orchestration and management layer. The orchestration and management layer is a set of tools needed to deploy, manage, and scale containerized applications, such as orchestration and scheduling. In most cases, this is Kubernetes– Similar to service discovery, service proxies, API gateways, and service meshes.

Apart from these layers, it is also important to implement Observability Therefore, all of these services are effectively monitored. Some organizations have also chosen to bundle the stack and make it self-service. Internal development platform Or buy a review Platform as a Service (PaaS) Suppliers to facilitate the recruitment of developers.

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 application development models.

Tongue. On-premises applications written to run on your company’s servers are C / C ++, C #, Enterprise Java.. Cloud native applications are likely to be written in web-centric languages ​​such as HTML, CSS, Java, JavaScript, and .NET. to go, Node.js, PHP, Python, And Ruby. Working with modern languages ​​and platforms helps attract the best engineers to work in your organization.

Update. Cloud native apps are designed to be highly available, resilient, and updated regularly, but on-premises apps are typically updated once or twice a year using cascading techniques. The ability to update cloud native computing enables development teams to focus more effectively on their competitive advantage and deliver new features to their customers more often than ever before.

Elastic. Cloud native applications typically take advantage of cloud resiliency by making consumption flexible on demand, but on-premises applications require the physical provision of additional infrastructure to scale efficiently. I have. It also has an impact on costs, as you can use the cloud to pay for what you use and avoid over-provisioning your own expensive infrastructure. Theoretically..

Multiple rentals. Cloud native applications have no problem working in virtualized spaces or sharing resources with other applications using the multi-tenant model. This clearly improves the efficiency of the development team.

break time. The cloud is more redundant due to the size and geographic scope of the data centers managed by hyperscale cloud providers. Therefore, you can better handle outages by quickly redirecting traffic to another region and avoiding costly downtime.

automating. Cloud-native methods open up a plethora of automation opportunities for engineers to build once and move on to other more pressing challenges.

stateless. Cloud native apps tend to be stateless as they don’t carry stored data from session to session. This model provides the ability 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 provider lockdown. open.

Cloud native challenges

Trying Lift and move While existing on-premises applications that are cloud native without creating architectural challenges are a common mistake, redesigning something for the cloud is also a significant engineering challenge.

Find the right mix of skills to do this, adapt to a cloud-centric security model, Manage the evolution of cost profiles in your cloud environment All of these remain significant challenges for organizations looking to migrate to cloud native.

Still, developers plan to adopt cloud native as an organizing principle by building new apps for the cloud or breaking existing monolithic apps 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 cascading deployments to more deployments. Agile development Minimum viable product development (MVP), 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.

Source link

Leave A Reply

Your email address will not be published.