Brief introduction:At the 2021 R&D Performance Summit, Yu Qi, chief architect of Ali Cloud middleware, shared the theme of “how to use cloud native technology to build modern applications”, and how to use cloud characteristics and cloud native technology and products to help enterprises transform traditional applications into modern applications.

The author | fool


Today, cloud and cloud computing technology has been widely accepted by enterprises. There are many topics about cloud, cloud computing and cloud native, but WHAT I want to discuss is the real protagonist in all clouds, which is our application.


Because when enterprise applications go to the cloud, the high availability of these applications may be partially improved, but there are still many problems; However, when we discuss the operation and maintenance efficiency of these applications after cloud, it may not be greatly improved, because all operation and maintenance are based on infrastructure, while cloud computing is a relatively large change in infrastructure. If we ask whether the development speed of the whole application has been greatly improved after going to the cloud, many people will say, no.


Therefore, today’s main discussion is how to use cloud native related technologies to help our applications to optimize, from traditional applications to modern applications.


Atypical typics-life on the cloud


Let’s take a metaphysical approach from the individual to the whole to look at a typical enterprise case.


Although this enterprise has many differences with many cloud enterprises, such as industry, application category, cloud motivation and so on, they also have a lot in common: for example, after the cloud has solved a lot of problems, but still leave a lot of problems. This business is in the new retail industry and has good sales.


However, with the development of business, the traditional ERP software can no longer meet the demands of business development, which is mainly reflected in his ERP supplier telling him that their software can only support TPS up to 100 level instead of thousands or thousands of TPS when he wants to participate in the annual promotion such as 618 and Double 11. Therefore, for these new retail e-commerce enterprises, they have no way to meet the demands of large-scale business development, so they found Aliyun.


Ali Cloud provides enterprises with solutions based on Ali Cloud Internet architecture, and also migrates these new Internet applications and new e-commerce platform applications to Ali Cloud. On the whole, the development is commissioned by ISV, and the client’s application is transferred from offline IDC to online public cloud. In this process, the most important technology upgrade is regionalization, and the overall operation and maintenance department of the client is responsible for the operation and maintenance. The whole process of cloud transfer was also very successful, which solved the large-scale problem of customer application and enabled customers to participate in the promotion of 618 and Double 11.


At the same time, as the overall software, that is, the e-commerce platform, adopts self-development mode, so the high cost like the traditional ERP is greatly released. However, due to the rapid iteration of the overall structure, a hidden trouble in the original structure caused a large production accident due to the large volume of business in a big promotion. As for the clients themselves, they assessed that the accident caused a large loss to them.


To cloud: “I’m anxious if I don’t get up, but I’m also anxious if I get up.”


So many enterprises today, they have a lot of anxiety about the cloud, reflected in their thinking about whether to go on the cloud, because the cloud can not just follow the trend, but want to go on the cloud can solve what problems for them.




For enterprises after the cloud, although they have achieved periodic success, they also need to think about what problems they have not been solved. So whether there is a cloud enterprise or not, they are very anxious, and this is reflected in how they are thinking about how to shorten the development cycle to support rapid business development needs; How to improve the overall operation and maintenance efficiency and give their IT department strong control in the process; On the whole, cloud and cloud can better reduce the overall IT application cost, reduce the complexity of software, improve the high availability of the whole system, and so on. Most of these aspects are focused on the non-functional characteristics of the application.


1. The source of anxiety


All these anxieties, we can from the perspective of application to in-depth analysis of what causes.



As we all know, the core of the application is architecture, including the business architecture and technical architecture of the application. From the perspective of application architecture, it needs to meet the application development demands of customers. For example, the generation of data, with the continuous popularity of IoT today, data will generate a very large amount of access, for these data processing also brings higher requirements.


The traditional responsive data processing mode based on more human requests can no longer meet the needs of business, and IoT devices are more based on the model and mode of request and response to such events. Similarly, the business development of an enterprise needs to make ecological connections with more companies. These massive business demands also put more demands on the underlying technical architecture. These requirements are reflected in the underlying technical architecture that can support a high degree of redundancy, support microservices and massive business concurrency, support dynamic scaling, and provide SLA, etc.


If we further explore what kind of core contradiction needs to be solved, we can find that the core contradiction is that with the increasing complexity of cloud and business, IT has more management costs. This cost is reflected in the fact that all microservices and high availability require a high degree of system redundancy. At the same time, due to the rapid development of business, the whole IT system needs to respond to frequent changes. The core contradiction lies in the contradiction between the high redundancy of the system and the frequent change of the system, and all distributed systems are around this main contradiction to solve.


For example, in the original stand-alone era, if we only need one person to manage a machine and the software on a machine can meet the requirements of our own business development, then we obviously do not have so many contradictions. Only when one person becomes dozens or even hundreds of people, when such a machine runs on dozens or hundreds or even thousands of nodes instead of one node, the complexity of the whole IT needs to deal with changes from 1 to 1 to 1 to N frequency. So there’s been a huge increase in overall complexity, and that’s what we’re talking aboutRoot of contradiction.


2. Fast and deep solutions


So what’s the solution to this contradiction? Today, in the age of the cloud, we’ve summarized quick solutions and deep solutions that require more resource investment.



Quick solutions include re-host, which moves the application from a traditional offline IDC to a cloud environment. In this mode, the application architecture does not change, the application risk is relatively low, but the return on value can only be said to be high. The alternative is re-platform, which changes the overall delivery and operation of the application, but does not change the software architecture of the application.


For example, we use containers to change the overall software retention, change the overall operational retention. Under this model, the scope of architecture change is relatively small, the implementation risk is medium and the value return can be relatively high.


However, if we want to solve the above problems completely, we need to take the re-build approach of the entire software refactoring, or a re-factor model of the software’s important modules. All of these modes involve changes in software architecture, so the implementation risk is also high, but the same high investment risk also brings high return, and the changed application can solve conflicts better.


All of these solutions have a lot to do with cloud native. The main reason why cloud native is proposed is that many applications cannot make good use of cloud features after enterprises go to the cloud, so some people say that many applications are not cloud native type applications. Therefore, cloud native has been proposed.


Key implications of cloud native


We won’t go into the definition of cloud native, but we’ll highlight three key implications of cloud native that will help us understand how we can leverage cloud native to build modern applications.



Cloud native technologyCloud native technologies today are both closed source and largely open source. Closed source is usually reflected in cloud vendor infrastructure that is relatively transparent to applications. Similarly, a large number of open source technologies are of great relevance to applications, because all applications will be built directly on top of these open source cloud native stacks. But if these applications are going to make better use of the underlying cloud native technology, we usually recommend that we use a lot of cloud native products in these scenarios.



Cloud raw products: Some customers’ technology stacks are built on the basis of open source technology stacks. Although the open source technology stacks have no problems in many technologies, functions and stability, they may have problems in maintainability and coordination with the underlying infrastructure. Therefore, we recommend that apps be built on top of cloud native products as much as possible.


Cloud original concept: Technology and products alone cannot well solve all aspects of the problems mentioned above, because technology and products are production tools, and the change of production tools will often lead to the change of the IT culture of the whole enterprise, that is, the production relationship.


In the whole IT culture, the most important thing is the production process of the whole enterprise and the cooperation between people in the production process. As cloud-native technologies and products change at the tool level, there will inevitably be changes across the entire production pipeline, that is, across the enterprise’s production processes.

For example, some new positions may be created when the requirements of the original positions change or the original positions disappear. In this process, the biggest impact is on people, including the cooperation between people. Therefore, it is necessary to make good use of cloud native technology, and special attention should be paid to the changes that cloud native technology and products bring to the production process and production line of the whole enterprise, especially to the upgrading of people and organizations.


1. Cloud native is an upgrade of cloud computing


Cloud native can not only help everyone to build a better cloud, use the cloud, manage the cloud, but also the whole cloud computing upgrade.



This is not only reflected in the upgrade of cloud infrastructure, that is, cloud computing providers will realize that the infrastructure provided today is not able to meet the requirements of applications, and need to continuously upgrade to better meet the requirements of efficient delivery, operation and maintenance of applications.


In the same way, he will require an architectural overhaul to make apps more resilient, resilient, and observable. With the upgrade of infrastructure and application, we will further pursue the improvement of overall R&D efficiency, including the adoption of new computing forms such as Serverless to help us improve the overall delivery and operation efficiency. And more importantly, resolve the conflict between rapid iteration and system stability in a frequently changing IT system.

So we sayCloud native is an upgrade of cloud computing as a whole.



2. What are modern applications


What are modern applications, and what are the differences from traditional ones?



Modern applications contain typical characteristics such as elasticity, observability and measurement, statelessness and security. In the overall computing structure, we can see that modern applications have many similarities with cloud native applications. The difference is that modern applications don’t have to run in the cloud.


Some related to the cloud to cloud native applications as the name implies, but many of them characteristics are the same, they require the application of overall to build on the technology of cloud native, these technologies and products can truly reflected in the application of using cloud native architecture, and thoroughly implement the cloud in the process of the implementation of the whole native development philosophy. So that the application can run better on all kinds of infrastructure.


Since architecture is a key element for hosting applications, what are the characteristics of cloud native architectures?


Cloud Native Architecture


Cloud native architecture is a combination of architectural principles, design patterns, and design methodologies. There are very distinct characteristics in this combination that are different from traditional architectures.



The cloud native architecture tries to help our applications strip away non-functional code. In traditional applications, there is a lot of code that has to deal with non-functional issues. Under the cloud native architecture, this part of the code will be stripped out into the cloud native infrastructure, products and technologies, and the underlying PaaS platform and IaaS platform will carry the non-functional problems in customer applications, so that developers can pay more attention to the writing of business code.


With such cloud native architecture to take over a large number of non-functional features of the original application, the business interruption caused by non-functional problems can be avoided, and the application is more lightweight, agile and highly automated.


1. Cloud native architecture principles



We have extracted the seven most important cloud native architecture principles under cloud native architecture:


1. Principle of servitization: The granularity of microservitization can better meet the characteristics of customer applications;

2. Elasticity principle: different elasticity from virtual machine to container level to further application level;

3. Toughness principle: further improve the principle of high availability, and continue to provide services to customers under various circumstances;

4. Observability principle: Different from monitoring, observability model can provide a lot of effective information from logs to link tracking in advance, so as to actively discover potential risks in the system;

5. Automation principle: from the underlying hardware to software and components, there is a relatively large improvement, so we hope to have automation principle to help us operate and maintain more effectively, so as to reduce the operation and maintenance cost;

6. Zero trust principle: the cloud native architecture can run on different architectures, so it puts forward new requirements for security, requiring all applications to be trusted no matter what environment they run in, and verifying the validity of each running request;

7, the principle of continuous evolution: according to the characteristics of the enterprise, appropriate evolution goals can be adopted at each stage, and after long-term iteration, each goal will eventually evolve into modern applications.



2. The main architecture mode of cloud native



There are many cloud native architecture modes, as shown in the figure below. For details, please refer to the recently published AliYun Cloud Native Architecture Practice.


3. Aliyunyun original architecture method



We propose an architectural approach to cloud nativeACNAArchitecture approach. This is an architecture design method of Ali Cloud about cloud native architecture, including the evaluation system and maturity measurement system of cloud native architecture, as well as the best practices accumulated and product systems and technologies used by Ali Cloud in the process of cloud native technology transformation for the majority of customers. There are some architectural perspectives. We hope that for each enterprise, they can choose the corresponding technical architecture capabilities according to their own situation, and ultimately serve for business development and enterprise strategy development.


4. Aliyunyun’s native architecture closed loop


The overall architectural approach is a synthesis of multiple perspectives, in which we hope to form a closed loop through the continuous evolution of the architecture.



The architecture loop consists of eight major phases. From identifying business pain points to determining architectural objectives, we should select appropriate technologies in the process of risk assessment to make an iteration plan and promote the implementation plan. In the implementation plan, we suggest that enterprises should have some specialized organizations to review the overall risks during the implementation of cloud native architecture, so as to form a closed loop for the whole process. In this process, a special focus should be placed on the architecture governance perspective, which requires the appropriate organization or personnel to help the application with architecture governance during the iteration.


5. How to measure the maturity of cloud native architecture


At ACNA we developed a maturity model that measures cloud native architecture with six key dimensions, which we refer to as SESORA.


The ability of these six dimensions is also the most important six key indicators in modern application. Each index is divided into four grades from 0 to 3, and each grade has a corresponding score. After evaluation, a score can be obtained on the application of cloud native architecture. The SESORA model presented by Alibaba Cloud today has been adopted by many organizations and enterprises in the industry to help enterprises improve their maturity in the transformation of cloud native architecture.


Customer case


Finally, let’s look at two typical cases. The first case is how the application on Aliyun can effectively prevent the risk of stability in the system architecture design through cloud native products. We adopted the architecture mode of microservice, with a large amount of data stored in MongoDB. In this architecture, the client adopted the combination of PTS, ARMS and AHAS, which can better help the client to actively detect whether there are potential risks in the system, so as to prevent the risk of stability.



The second case is about Serverless, which addresses the problem of helping microservices applications get to the cloud quickly. In Serverless mode, the complexity of these underlying deployments is greatly reduced, because we often need applications to solve many problems in this process.

When unexpected traffic increases in customer applications, Serverless will detect and actively apply for new resources, so that the new traffic can be timely responded. When burst traffic disappears, Serverless releases resources to reduce costs.


The original link

This article is the original content of Aliyun and shall not be reproduced without permission.