Introduction: Aliyun provides enterprises with solutions based on Aliyun Internet architecture, and migrates these new Internet applications and new e-commerce platform applications to Aliyun.

Author | Foolishness

Today, cloud and cloud computing technology has been widely accepted by the enterprise, there are a lot of topics about cloud, cloud computing, cloud native, but I would like to discuss the real protagonist in all the cloud, is our application.

When enterprise applications go to the cloud, the high availability of these applications may increase, but there are still many problems; However, when we discuss the operation and maintenance efficiency of these applications in the cloud, there may not be a great improvement, because all the operation and maintenance are based on the infrastructure, and cloud computing is a relatively big infrastructural change. If we ask again, after the cloud the development speed of the entire application has been greatly improved, this time a lot of people will say, no.

Therefore, today’s main discussion is how to use cloud native related technology to help our applications to do optimization, from traditional applications into modern applications.

Atypical typical — a picture of life on the cloud

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

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

However, with the development of the business, the traditional ERP software can no longer meet the demands of business development, which is mainly reflected in the fact that when he wanted to participate in the annual promotion such as 618 and Double 11, his ERP supplier told him that their software could not support thousands or thousands of TPS, but only 100 TPS. Therefore, for these new retail e-commerce enterprises, they have no way to meet the demands of large-scale business development, so they find Ali Cloud.

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. In general, the development is commissioned by ISV, and the client’s application is transferred from offline IDC to online public cloud. The most important technology upgrade is regionalization, and the client’s own operation and maintenance department is responsible for the overall operation and maintenance after the cloud is installed. The whole process of cloud migration was also very successful, which solved the large-scale problem of customer application well, enabling customers to participate in big promotions like 618 and Double 11.

At the same time, as the overall software, that is, the e-commerce platform, is self-developed, so it releases the high cost like the traditional ERP. However, due to the rapid iteration of the overall structure, a large production accident was caused by a hidden trouble in the original structure due to the huge amount of business during a big promotion. As for the customer, they estimated that this accident caused a huge loss to them.

To cloud: “Not very anxious, on the anxiety also”

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

For the enterprises after the cloud, although they have achieved periodic success, they also need to think about what problems have not been solved. So there is a lot of anxiety among companies whether they are in the cloud or not, which is reflected in how best to shorten the r&d cycle to support rapid business growth needs; How to improve the overall operation and maintenance efficiency, and let their IT department have a strong control in this process; After cloud and cloud on the whole, the overall IT application cost can be better reduced, the complexity of software can be reduced, and the high availability of the whole system can be improved. Most of these aspects focus on the non-functional features 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 you know, the core of an application is the architecture, including the business architecture and the technical architecture of the application. In terms of the application architecture, the application development needs to meet the requirements of customers. For example, the generation of data, with the increasing popularity of IoT today, data will generate very large amounts of access, and the processing of this data will bring higher requirements.

Traditional, more responsive data processing based on human requests can no longer meet the needs of the business, for IoT devices are more based on the request, response to such events model and way. Similarly, the business development of enterprises needs to connect with more companies to carry out ecological connection. These large number of business demands also bring more requirements on the underlying technical architecture. This requires the underlying technology architecture to support high levels of redundancy, support microservices and massive business concurrency, support dynamic scaling, and provide SLAs.

If we dig deeper and find out what kind of core contradiction needs to be solved, we can find that the core contradiction lies in the increasing complexity of cloud and business, which makes IT have more management costs. This cost is reflected in the fact that all microservices and high availability require a high degree of system redundancy to be addressed. At the same time, the rapid development of the business requires the entire IT system 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. All distributed systems are around this principal contradiction to solve.

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

2. Quick solution and deep solution

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

The quick solution includes the re-host model, which migrates the application running environment from the traditional offline IDC to the cloud environment. In this mode, the architecture of the application does not change, the risk of the application is relatively low, but the return on value can only be said to be high. Another solution to this 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 change the retention of the entire software through the container, change the overall operation and maintenance retention. Under this pattern, the magnitude of architectural changes is relatively small, the implementation risk is moderate, and the value return can be relatively high.

However, if we want to completely solve the above problems, we should take the re-build method of the whole software refactoring, or re-factor the important modules of the software. These models all involve changes in the software architecture, so the implementation risk is also high. But the same high investment and high risk also bring high return. The changed application can better solve the contradiction.

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

The key connotation of cloud native

We won’t get into the definition of cloud native, but we will focus on three key implications of cloud native, which will be very helpful in understanding how we build modern applications using cloud native.

Cloud native technologies: Cloud native technologies today are both closed source and a lot of open source. Closed sources are usually found in the infrastructure of cloud vendors that are relatively transparent to their applications. Also, the large number of open source technologies has a significant impact on applications, as all applications will be directly built on top of these open source cloud native stacks. However, if these applications are to take advantage of the underlying cloud-native technologies, we usually recommend that our applications in these scenarios adopt cloud-native products in large numbers.

Cloud-native products: Some customer technology stacks are built on top of open source technology stacks, but while the open source technology stack is fine in many aspects of technology, functionality, and stability, it may be problematic in terms of maintainability and compatibility with the underlying infrastructure. Therefore, we recommend that apps be built on cloud native products as much as possible.

Cloud Native concept: Technology and products alone cannot solve all the problems of the aforementioned applications, because technology and products are production tools, and changes in production tools often lead to changes in the IT culture of the entire enterprise, which is also the relationship of production.

In the entire IT culture, the production process of the entire enterprise plays the most important role, as well as the interpersonal cooperation between the production process. As cloud-native technologies and products bring about changes at the tool level, there will inevitably be changes across the entire production line, the production processes of the enterprise.

For example, the requirements of some old jobs have changed, or the old jobs have been eliminated, and some new jobs may be created. In this process, the most affected is the people, including the collaboration between people. Therefore, to make good use of cloud native, we should pay special attention to the changes that cloud native technology and products bring to the production process and production line of the entire enterprise, especially to the upgrade of the requirements of people and organizations.

1. Cloud native is a re-upgrade of cloud computing

Cloud native can not only help people better build, use and manage the cloud, but also the upgrade of the whole cloud computing.

This is not only reflected in the upgrade of the cloud infrastructure level, that is, cloud computing providers realize that the infrastructure provided today is not good enough to meet the requirements of the application, and need to be continuously upgraded to better meet the requirements of the application in efficient delivery, operation and maintenance.

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

So we say cloud native is a re-upgrade of cloud computing as a whole.

2. What is modern application

What is a modern application and how is it different from a traditional application?

Modern applications contain typical features such as elasticity, observability and measurement, statelessness and security, and in a whole computing structure we can see that modern applications have a lot in common with cloud-native applications. The difference is that modern applications don’t have to run on 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. Such applications can be better run on various infrastructure.

Now that we’ve mentioned that 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 approaches. There are very clear differences between this combination and traditional architectures.

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

With such a 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 also be avoided, and applications can be more lightweight, agile, and highly automated.

1. Cloud-native architecture principles

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

1. Servitization principle: Micro-servitization granularity can better meet the characteristics of customer applications; 2, elastic principle: from the virtual machine to the container layer to further application layer with different elasticity; 3, the tenacity principle: the high availability principle is further enhanced, the application in a variety of circumstances to continue to provide services to customers; 4. Observability principle: Different from monitoring, observability model can provide a large amount of effective information from logs to link tracking in advance, so as to actively discover potential risks in the system; 5. Principle of automation: From the underlying hardware to software and components, there has been a great improvement, so we hope to have the principle of automation to help us more effective operation and maintenance, so as to reduce the cost of operation and maintenance; 6. Zero trust principle: The cloud native architecture can run on different architectures, so it puts forward new requirements for security. It requires that all applications no matter what environment they are running in are not trusted, and the legitimacy of each run request needs to be verified. 7. Principle of continuous evolution: Appropriate evolution goals can be adopted at each stage according to the characteristics of the enterprise, and each goal can eventually evolve into modern applications after long-term iteration.

2. Main architectural patterns of cloud native

There are many cloud native architecture patterns, as shown in the figure below. For details, please refer to the recently published “Practice of Cloud Native Architecture of Alibaba Cloud”.

3. Ali Yun Yun native architecture method

Regarding the architectural approach to cloud native, we propose the architectural approach of ACNA. This is an architecture design method of AliYun 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 Aliyun in the process of implementing cloud native technology transformation of applications for customers. There are some architectural perspectives, and we hope that for each enterprise, they can choose the technology architecture capabilities that match their own enterprise, and ultimately serve the business development, the enterprise strategy development.

4. Ali Yun Yun native architecture closed loop

The overall architectural approach is a synthesis of multiple perspectives in which we hope to form a closed loop as the architecture continues to evolve.

The architecture loop consists of eight major phases. From the identification of business pain points to the determination of architecture goals, in the process of risk assessment, select the appropriate technology to develop an iteration plan, and promote the implementation plan, we suggest that enterprises have some specialized organizations to review the overall risk during the implementation of cloud native architecture, so that the whole process can form a closed loop. There is a particular focus on the architecture governance perspective in this process, which requires an organization or person to help the application with architecture governance in the iterative process.

5. How to measure the maturity of cloud-native architecture

In ACNA we propose a maturity model to measure cloud native architecture, with six key dimensions, which we call SESORA for short.

The ability of these six dimensions is also the most important six key indicators in the application of modernization. Each indicator is divided into four levels from 0 to 3, and each level has a corresponding score, which can be evaluated to get a high or low score of the application on the cloud native architecture. Today, the SESORA model proposed by Aliyun has been adopted by many organizations and enterprises in the industry, which can help enterprises to improve the maturity of cloud native architecture transformation.

Customer case

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

The second case, Serverless, addresses the problem of helping microservice applications move quickly to the cloud. In this process, we often need to apply to solve a lot of problems, and in Serverless mode, these underlying deployment has been greatly reduced in complexity.

When the burst traffic of a customer application increases, the Serverless server detects the burst traffic and proactively applies for new resources so that the new traffic can be responded to in a timely manner. When a burst of traffic disappears, Serverless releases resources to reduce costs.

The original link

This article is ali Cloud original content, shall not be reproduced without permission.