What is cloud native and what does it have to do with cloud computing? Someone finally figured it out

Introduction: What is cloud native?

Author: Alibaba Group Alibaba Cloud Intelligence Business Group Cloud Native Application Platform

Source: Big Data DT (ID: hzdashuju)

The concept of Cloud Native was first proposed by Pivotal in 2015, but even in the first half of 2019, domestic attention to it is still relatively limited. It was not until September 2019 that "cloud native" suddenly became the hottest word in the industry.

However, up to now, the industry's definition of cloud native is not completely unified. In the process of cloud native evolution, Pivotal, CNCF (Cloud Native Computing Foundation, Cloud Native Computing Foundation), twelve factor applications have been derived. etc. multiple versions of the definition.

At the same time, many people confuse cloud-native with containers or Kubernetes-based microservices. There are also terms that seem to have similar meanings, such as cloud-native technology, cloud-native products, cloud-native architecture, and cloud-native concepts. So what exactly is cloud native? What impact will cloud native have on our application development?

Cloud native can be broken down into the words "Cloud" and "Native". There is also a word hidden here - "Computing", because cloud native is essentially the same computing method as cloud computing (Cloud Computing), so usually when we say cloud native, we actually imply Cloud Native Computing.

With this background, we will further explore the concept of cloud native and its impact below.

01 The concept of cloud native

Now that we talk about cloud native (computing), which computing methods are not cloud native (computing)? To answer this question and analyze the concept of cloud native, we need to review the history of cloud computing and the complexity of distributed computing that is closely related to it.

The concept of cloud computing was first proposed by Dell in 1996. In 2006, Amazon first launched the Elastic Compute Cloud (EC2) service, and then more and more enterprises began to gradually accept the concept of cloud computing, and gradually migrated applications to the cloud to enjoy this new computing method. technology dividends.

In 2009, Alibaba took the lead in developing a cloud product with completely independent intellectual property rights, the Feitian operating system, which opened the prelude to cloud computing in China.

Throughout the evolution history of software architecture, it can be found that after any new underlying software and hardware technology appears, it will take a long time for upper-layer application software to truly “recognize” the value brought by new software and hardware to upper-layer application software, and Develop new software architectures to take full advantage of new hardware and software capabilities.

The most typical example is that the multi-layer architecture based on CORBA, EJB, RPC, thin client, etc. has gradually become the mainstream architecture of application development after more than 20 years of x86 CPU and server.

Similar to container technology, it was first proposed by FreeBSD in Jails in 2000, but it was really applied on a large scale after the rise of Docker in 2013, and the representative of the application layer was container-based microservices a few years later. Architecture.

The same is true for the new infrastructure of cloud computing. Before 2015, for most applications, the cloud was just a place for computing , and all developers had to do was to migrate applications originally in private data centers or IDCs to the cloud. During the migration process, the application does not need to be rewritten, but only needs to be redeployed, because the computing, storage, network, etc. provided by the cloud platform are fully compatible with the computing environment before application migration.

  • In the migration mode, the application usually changes the original physical machine deployment mode to a virtual machine (smaller size) deployment mode;

  • For storage, use compatible block storage or file storage;

  • The network uses SLB (Server Load Balancer, server load balancing) to replace the traditional load balancer, and builds a VPC (Virtual Private Cloud, virtual private cloud) or NAT (Network Address Translation, network address translation) network environment;

  • Use cloud database to replace the original MySQL or SQL Server, or build an Oracle database on the cloud by yourself.

After the migration, the overall cost of the application (Total Cost of Ownership, TCO) dropped significantly due to the adoption of the "pay-as-you-go" model . Operating Expense) model, the overall IT spending becomes more manageable.

If we conduct a technical analysis of the migration process, we will find that the technologies or products used by most applications are being replaced one-to-one, and only a very small number of applications are based on OSS (object storage service) and MaxCompute (big data computing service). Wait for cloud services to be partially refactored.

OSS can help solve the storage problem of distributed state, and MaxCompute can solve the problem of rapid construction and cost of data warehouse. However, because there is no or only a small amount of refactoring, the application technology stack itself has hardly changed, that is to say, the software architecture has not changed, but only the platform on which the software runs and the technical system of operation and maintenance have changed, that is, only Changes at the platform level.

The problems that software needs to solve in distributed scenarios include stability, data synchronization between components or services, overall high availability or disaster recovery, automation of CI/CD processes, low resource utilization, and end-to-end chain. Road tracking, etc., still need to be solved by the application itself. These problems are not fundamentally solved by migrating applications to cloud platforms.

Of course, in order to help applications solve the above-mentioned distributed complexity problems, various cloud platforms continue to launch various cloud services. However, since the application architecture itself has not changed, these cloud services cannot help applications solve the overall problem, but can only be improved locally. application efficiency.

In the face of a large number of business needs and scenario iterations, many cloud platforms provide very professional vertical domain services. These services have higher SLAs (Service Level Agreements) than systems built by enterprises based on open source.

For example, in terms of data durability, the data durability of Amazon AWS can reach 99.9…% (11 9s), and the data durability of Alibaba Cloud OSS can even reach 99.9…% (12 9s); In terms of availability, the high availability of Alibaba Cloud RocketMQ has reached 99.95%, and even if the entire computer room is unavailable, it can continue to provide external message services.

  • If not all the storage access code of the application is refactored on S3 or OSS, then the "cask effect" will become prominent, that is, the data persistence of the entire system will depend on the least capable component;

  • If the application does not migrate all self-sustaining open source components to the cloud platform, when a computer room fails, the application will still have high availability problems;

  • If the application is not developed based on the FaaS (Function as a Service) technology, the application still needs to solve the Fail Over (failover) when a single component is unavailable and the Fail Back (automatic recovery after failure) when the failure is restored. question.

It can be seen that migrating an application to the cloud does not mean that you can rest easy from now on . If the application itself is not refactored based on the "new" cloud service, but continues to use the "old" architecture, then even if there is no problem with the business operation, the application will not Not taking full advantage of the capabilities of the "new" cloud operating environment.

Because these architectures are designed for "old" distributed operating environments, not "cloud native", it is necessary to upgrade these architectures and the technology stacks, tool chains, and delivery systems built around them, relying on cloud technology Only by redeploying, partially refactoring, or even completely rewriting the stack can the application become "cloud-native", thus ensuring that the capabilities of cloud computing can be fully utilized.

In order to allow applications to better use the cloud's PaaS platform capabilities to develop SaaS (Software as a Service, software as a service), Heroku proposed the concept of twelve-factor applications in 2011. Twelve-factor applications are applicable to any programming language and are generally considered to be the technical characteristics of the earliest cloud-native applications. For details, please refer to:

http://12factor.net/zh_cn/

After that, Pivotal clearly proposed the concept of cloud native in 2015, pointing out that cloud native is a way to build and run applications that can take full advantage of cloud computing.

After modification by CNCF, the latest version of cloud native is defined as:

Cloud-native technologies enable organizations to build and run elastically scalable applications in new dynamic environments such as public, private, and hybrid clouds. Representative technologies of cloud native include containers, service meshes, microservices, immutable infrastructure, and declarative APIs. These techniques enable the construction of loosely coupled systems that are fault-tolerant, easy to manage, and easy to observe. Combined with reliable means of automation, cloud-native technologies make it easy for engineers to make frequent and predictable breaking changes to the system.

The above three mainstream definitions describe cloud native from the perspectives of top-level architectural principles, computing models, and representative technologies. What these definitions have in common is that they all see cloud native as a new way of computing that allows applications to take full advantage of the computing benefits of the cloud.

By further analyzing the technical viewpoints reflected in these definitions, we can reach such a consensus: Only by combining the cloud services provided by cloud native and transforming the application architecture can we make better use of cloud native technology and better build elasticity and stability. , loosely coupled distributed applications, and solve distributed complexity problems.

In addition, the transformation of the architecture also means that the relevant development mode, delivery method, operation and maintenance method, etc. must be changed accordingly. For example, the application is rewritten using a microservice architecture, and the operation and maintenance method is upgraded with declarative APIs and automation tools, etc. Wait. To put it simply, cloud native has brought huge changes to the entire software production pipeline, and the specific degree of change depends on the enterprise's use of cloud native.

In fact, the scope of cloud native doesn't stop there. To correctly implement the new computing model of cloud native, IT decision makers, architects, developers, and operation and maintenance personnel of enterprises need to correctly understand and apply the concept of cloud native, and use appropriate cloud native technologies and products. There are too many counter-examples to prove that it is difficult to make cloud-native upgrades valuable by relying only on one-sided technology upgrades.

Figure 1-1 shows the relationship between concepts related to cloud native.

▲Figure 1-1 Relationship between cloud native concepts

In Figure 1-1, the concept of modern applications and cloud native applications is equivalent in many cases, because many of their characteristics are similar, for example, they are packaged and delivered using container technology, and both have strong elasticity ability etc. The subtle difference between these two concepts is that modern applications can be cloud-related or cloud-neutral; cloud-native applications are generally cloud-related.

Therefore, cloud native (or cloud native computing) should include cloud native technology, cloud native products, cloud native architecture, and development concepts for building modern applications, such as DevOps, as detailed below.

  1. Cloud-native products and cloud-native technologies require cloud infrastructure (IaaS) based on public, private or hybrid clouds.

  2. Cloud-native architecture and cloud-native development concepts are built or implemented based on cloud-native technologies and products. Note that architectures and concepts that are not based on cloud-native technologies or products, such as DevOps released and built based on traditional physical servers, will not be classified as cloud-native.

  3. Modern applications and cloud-native applications are built or implemented based on cloud-native architecture and development concepts.

02 Cloud native is the trend of cloud computing

Today, cloud computing has become a new infrastructure for the digital transformation of enterprises, and it is also the core link of the country's "new infrastructure" and an enabling platform for the Internet of Things and artificial intelligence. From the perspective of market development trends, cloud computing will be the mainstream of IT in the future.

According to Gartner's data, the cloud computing market size will maintain a growth rate of more than 20% in the future, and by 2025, it is expected that 80% (only 10% in 2020) of enterprises will shut down their traditional data centers and turn to the cloud platform.

In 2019, the total size of my country's cloud market reached 133.4 billion yuan, a year-on-year increase of 38%, of which the public cloud market reached 68.9 billion yuan and the private cloud market reached 64.5 billion yuan. At the beginning of 2020, the demand for remote office and distance education in various industries in my country continued to grow. It is estimated that by 2022, the total size of my country's cloud market will exceed 300 billion yuan.

In addition, according to the goal of enterprise cloud migration proposed by the Ministry of Industry and Information Technology, cloud computing will be widely popularized in various industries in 2020, and there will be 1 million new cloud companies nationwide.

From the perspective of technology development trends, more enterprises will widely use cloud-native technologies. Driven by national policies and corporate needs, more companies will choose to go to the cloud, and the strong growth of cloud computing in China is an inevitable trend. Cloud-native technologies and products.

According to Gartner, by 2023, 70% of enterprises worldwide will be running three or more containerized applications in production.

According to statistics from the China Academy of Information and Communications Technology (referred to as the Academy of Information and Communications Technology), in 2019, 43.9% of the interviewed enterprises said they had used container technology to deploy business applications, and 40.8% of enterprises planned to use container technology to deploy business applications; 28.9% of enterprises The microservice architecture has been used for application system development, and 46.8% of enterprises plan to use the microservice architecture.

From a software development perspective, cloud-native technologies bring the value of faster business innovation to enterprises. More and more enterprises are gradually realizing the professionalism and high SLA of cloud services, and these enterprises entrust the common technical complexity of IaaS and PaaS to cloud platforms in the process of digital transformation, so as to better focus on their own business logical innovation.

Using cloud native technology to reshape an enterprise's software production pipeline can increase the degree of reuse of business components and reduce the software delivery cycle from weeks or days to hours or even minutes, thereby improving the business's market sensitivity and enhancing market responsiveness.

From the perspective of the application technology stack, more and more enterprises find that traditional applications can no longer meet the needs of digital business, so they will completely upgrade their applications and use more cloud-native technologies and cloud-native architectures to build modern applications. The core framework helps enterprises build modern application software with features such as elasticity, resilience, observability, API-driven, multi-language support, high degree of automation, and sustainable delivery.

03 Cloud native is a re-upgrade of cloud computing

From the positioning of cloud native, it can be seen that cloud native includes a large number of new PaaS layer technologies and new development concepts, which is the shortest path to release the value of cloud computing, and also promotes the re-upgrade of cloud computing.

The entire cloud native technology stack is based on open source and open technology standards. CNCF is also working on the standardization of cloud-native technologies, providing users of cloud-native technologies and products with a standard interface for using cloud services, while avoiding vendor lock-in.

Looking further at applications based on cloud native technology and cloud native architecture refactoring or rewriting, for example, applications based on service mesh or serverless technology, they naturally have the ability to scale horizontally and can respond to the rapid growth of the Internet era at any time. At the same time, it also has built-in high-availability capabilities, so applications do not need to pay attention to high-availability solutions in a distributed environment.

  • For cloud platforms, cloud-native technologies have also spawned architectural upgrades such as Alibaba Cloud's new-generation Dragon and AWS Nitro systems, enabling the new computing infrastructure to provide applications with higher performance, elasticity, and computing density;

  • Cloud storage can help enterprises realize the separation of storage and computing, avoid multi-copy storage in a distributed environment, and also have advanced security features of custom key encryption and storage;

  • The network based on hardware offload (unloading, providing acceleration function through hardware) provides tens of millions of PPS (Packet Per Second, data packets per second) for the application in the scenario of overlay (a virtualization technology superimposed on the existing network architecture). , broadband rate) SDN (Software Defined Network, software defined network) capability.

Therefore, cloud native is not only a re-upgrade of the application architecture using the cloud, but also a re-upgrade of the cloud platform technology and cloud services. From the perspective of building modern applications, we can find that cloud-native refactoring of applications is reflected in the entire life cycle of application development.

About the author:Alibaba Cloud Intelligent Basic Products Division Cloud Native Application Platform: Committed to creating the shortest path for digital innovation for enterprises. After 15 years of exploration, Alibaba Cloud is the earliest cloud service provider in China to practice cloud native. It has the most abundant cloud native product family and the most comprehensive open source contributions. It has built cloud native bare metal servers, cloud native databases, data warehouses, and data lakes. , containers, microservices, DevOps, Serverless and other more than 100 innovative products; build a complete cloud-native technology and service ecosystem, covering new retail, government affairs, medical care, transportation, education and other fields, and promote enterprises to quickly achieve digital innovation and business growth .

This article is excerpted from "Alibaba Cloud Cloud Native Architecture Practice", published with the authorization of the publisher.

Further reading "Alibaba Cloud Cloud Native Architecture Practice"

Click the image above to learn and buy

For reprint, please contact WeChat: DoctorData

Recommended language: Officially produced by Alibaba Cloud, recommended by Alibaba Cloud Intelligence President, Alibaba CTO, etc., and comprehensively summarize Alibaba Cloud cloud native architecture methodology and practical experience.

Focus ????

Dry goods direct ????

More exciting ????

Enter the following keywords in the official account dialog box

Check out more premium content!

PPT  |  Reading  |  Book List  |  Hard Core  |  Dry Goods Explain  | God Operation 

Big Data  |  Cloud Computing  |  Database  |  Python  |  Crawler  |  Visualization

AI  |  Artificial Intelligence  |  Machine Learning  |  Deep Learning  |  NLP

5G  | Middle Office  |  User Portrait 1024  |  Math  |  Algorithm  Digital Twin  

According to statistics, 99% of big coffees have followed this official account

????

おすすめ

転載: blog.csdn.net/zw0Pi8G5C1x/article/details/118885923#comments_20954179