At the 2021 In Cloud Be Agile R&D Efficiency Summit, Yuqi, Chief Architect of Alibaba Cloud Middleware, discussed how to build modernized applications using cloud-native technologies. He also introduced how to help enterprises transform traditional applications into modernized ones using cloud features and cloud-native technologies and products.
Today, the cloud and cloud computing technologies have been widely accepted by enterprises. There are a lot of topics about the cloud, cloud computing, and cloud-native, but what I want to discuss is the real leading role in all clouds, the application.
After enterprises migrate their applications to the cloud, the high availability of these applications may increase partially, but there are still many problems. When we discuss the O&M efficiency of these applications after cloud migration, there may not be a great improvement because O&M is based on infrastructure, and cloud computing involves a major change in infrastructure. If we ask whether the entire application development speed has been improved significantly after cloud migration, many people will answer no.
Therefore, we are mainly discussing how to use cloud-native technologies to optimize applications and transform applications from traditional ones to modernized ones.
Let's take a metaphysical approach from an individual perspective to see a typical enterprise case.
Although this enterprise is quite different from many cloud-migrated enterprises, such as the industry, application category, and cloud migration motivation, it also has many things in common with them. For example, many problems have been solved after cloud migration, but a large number of problems remain. This enterprise belongs to the new retail industry and has good sales.
As its business grows, the traditional ERP software has been unable to meet business development. Especially, when the enterprise wanted to participate in big promotions, such as 618 and the Double 11 Global Shopping Festival, its ERP supplier told them that their software could not support thousands or tens of thousands of TPS; it could only support hundreds of TPS. Therefore, for these new retail e-commerce enterprises, traditional ERP software cannot meet the demands of large-scale business development. That is why the enterprise found Alibaba Cloud.
Alibaba Cloud provides enterprises with solutions based on the Alibaba Cloud Internet architecture, and these new Internet applications and e-commerce platform applications migrate to Alibaba Cloud. On the whole, the development is to find an ISV to entrust the development, migrating the customer's applications from the offline IDC to the online public cloud. The most important technology upgrade is regionalization. After cloud migration, the customer's O&M department is responsible for the overall O&M. The entire cloud migration process was a great success, solving the scale problem for the customer and allowing the customer to participate in big promotions, such as 618 and Double 11.
Besides, the overall software, the e-commerce platform is exclusively developed, which reduces the high costs of traditional ERP. However, due to the rapid iteration of the overall structure, a hidden danger in the original structure caused a large production accident in a big promotion under the large business volume. For the customer, they assessed that the accident caused them a very large amount of losses.
Therefore, many enterprises today have a lot of anxiety about cloud migration, which is reflected in their thinking about whether to migrate to the cloud or not. Enterprises cannot just follow suit to migrate to the cloud. First, they need to understand what problems can be solved for them through cloud migration.
Enterprises may have achieved phased success after cloud migration, but they also need to think about their remaining problems. All enterprises (migrated or non-migrated) are still anxious about their remaining problems. Their anxieties may come from the following questions:
Most of these questions focus on the non-functional features of applications.
All these anxieties can be analyzed in depth from the application perspective.
We know that the core of an application is the architecture, including the business and technical architectures of the application. From the perspective of application architecture, it needs to meet customers' application development demands. Let's take data generation as an example. With the continuous popularity of IoT, a large amount of data will be accessed, and the processing of such data also imposes higher requirements.
The traditional responsive data processing method that mostly serves people's requests can no longer meet the business needs. For IoT devices, models and ways based on requests and responses to such events are used. Similarly, the business development of an enterprise requires an ecological connection with more companies. These numerous business demands have many requirements on the underlying technical architecture. These requirements lie in the ability to support a high degree of redundancy by an underlying technical architecture, the ability to support microservices and massive business concurrency, the ability to support dynamic scaling, and the ability to provide SLA.
If we go further to explore the core conflict that needs to be solved, we can see that the core conflict lies in the higher IT management cost due to the increasing complexity of businesses and cloud migration. This cost is caused by the fact that all microservices and high availability require a high-degree system redundancy. Also, due to the rapid development of business, frequent changes require the entire IT system to respond. The core conflict lies between the high-degree system redundancy and frequent changes of the system. All distributed systems are focusing on this core conflict.
For example, in the original stand-alone era, if we only need one person to manage a machine, and the software on the machine can meet the requirements of our business development, we won't have so many conflicts. When one person becomes dozens (or hundreds) of people and such a machine runs on dozens (or hundreds) of nodes instead of one node, the processing complexity of the entire IT system has changed from one-to-one mode to one-to-N mode. Therefore, the overall complexity has improved significantly, which is also the root of the conflict that we are discussing.
What kind of solutions can we find for such contradictions? In the cloud era, we have summarized a fast solution and a deep solution that require more resources.
The fast solution includes the re-host mode, which says migrate the application runtime environment from the traditional offline IDC to the cloud environment. In this mode, the application architecture does not change, and the risk of the application is relatively low, but the return on value is relatively high. Another solution is the re-platform mode, which changes the delivery and O&M of the entire application without changing the application software architecture.
For example, we change the entire software retention and the overall O&M retention through containers. This mode involves relatively small architecture changes with medium implementation risk and high return on value.
However, to completely solve the preceding problems, adopt the re-build mode to perform the entire software refactoring, or adopt the re-factor mode to perform the important software module refactoring. These modes all involve software architecture changes, so the implementation risk is also very high. However, the high investment and high risk also bring high returns; the changed applications can better solve conflicts.
All these solutions have a lot to do with cloud-native. There is one main reason why cloud-native was proposed. After enterprises migrated to the cloud, they found that many applications could not make good use of the characteristics of the cloud. Therefore, some people say that many applications are not cloud-native applications. Therefore, cloud-native has been proposed.
Instead of discussing the definition of cloud-native, we will put forward its three key elements. Reviewing these three elements is very helpful in understanding how we can use cloud-native to build modernized applications.
In the whole IT culture, the production process of the whole enterprise and the cooperation relationship between people in the production process play the most important role. Changes brought about by cloud-native technologies and products at the tool level inevitably lead to changes in the entire production line. In other words, the production processes of the enterprise change.
For example, the original positions have changed the requirements of people, or the original positions are gone, and the new positions may be created. In this process, people are most affected, including the cooperative relationship between people. Therefore, to make good use of cloud-native, special attention should be paid to the changes that cloud-native technologies and products have brought to the production processes and production line of the entire enterprise, especially for people and organizations.
Cloud-native helps users better build, use, and manage the cloud. It is also an upgrade to cloud computing.
This is reflected in the upgrade at the cloud infrastructure level. The cloud computing vendors will realize that the infrastructure provided today cannot meet the application requirements, and it must be constantly upgraded to meet the application requirements for efficient delivery and O&M.
Similarly, vendors also require a thorough upgrade of the application architecture to make the application more elastic, resilient, and observable. With the upgrade of infrastructure and applications, we will continue pursuing overall R&D efficiency improvements. For example, new computing forms, such as Serverless, help us improve the overall efficiency of delivery and O&M. More importantly, it solves the conflict between fast iteration and system stability by changing IT systems frequently. So, we can say cloud-native is an upgrade to cloud computing.
What are modernized applications, and what are their differences from traditional applications?
Modernized applications have many typical features, including elasticity, observability, measurement, statelessness, and security. In terms of the overall computing structure, modernized applications are very similar to cloud-native applications. The difference is that modernized applications do not have to run on the cloud.
As the name suggests, cloud-native applications are related to the cloud. They share many features. The overall application must be built based on cloud-native technologies and products, and these technologies and products are truly reflected in applications that adopt the cloud-native architecture. Besides, the cloud-native development concept must be thoroughly implemented in the overall implementation process. Such applications can run well on various infrastructures.
What are the characteristics of cloud-native architecture since architecture is a key element in hosting applications?
A cloud-native architecture is a combination of a set of architectural principles, design patterns, and design approaches. This combination has characteristics that differ from traditional architecture.
Cloud-native architectures will help our applications strip non-functional code as much as possible. However, in traditional applications, a lot of code needs to deal with non-functional issues. In a cloud-native architecture, after the code is stripped out, it is incorporated into cloud-native infrastructure, products, and technologies. Then, the underlying PaaS and IaaS platforms handle the non-functional issues of customer applications, allowing developers to focus more on business code.
With this cloud-native architecture taking over many of the original non-functional features of applications, business interruptions caused by primarily non-functional issues in the business can also be avoided. At the same time, it makes applications more lightweight, agile, and highly automated.
We have extracted the seven most important principles for cloud-native architectures:
There are many architecture modes of cloud-native, as shown in the following figure.
Regarding the cloud-native architecture method, we proposed ACNA. This is an architecture design method used by Alibaba Cloud for cloud-native architectures. It includes an evaluation system for cloud-native architectures and a measurement system for maturity. It also includes the best practices, product systems, and technologies that Alibaba Cloud has accumulated during the cloud-native transformation for applications. Here are some architectural perspectives. We hope each enterprise can choose the matching technical architectural capabilities according to their situation to accommodate business development and enterprise strategic development.
The entire architecture method is a combination of multiple perspectives. During this process, we hope to form a closed loop through the continuous architecture evolution.
The entire architecture closed loop includes the eight most important phases. After identifying business pain points and determining the architecture goal, select the corresponding technologies in the risk assessment process to develop an iteration plan. Then, we suggest that enterprises have some specialized agencies to review the overall risks in the process of implementing cloud-native architectures. Thus, the whole process can form a closed loop. In this process, we need to pay special attention to the architecture governance perspective. This requires relevant organizations and personnel to help implement the architecture governance during application iteration.
We proposed a model to measure the maturity of cloud-native architectures in ACNA. The model has six key dimensions, which are called SESORA.
The capabilities of these six dimensions are also the most important six key metrics in modernized applications. Each metric contains four levels from 0 points to 3 points. Each level has a corresponding score. After evaluation, we can obtain a score for application in the cloud-native architecture. Today, the SESORA model proposed by Alibaba Cloud has been adopted by many organizations and enterprises in the industry. It can help enterprises improve the maturity of cloud-native architectures during transformation.
Finally, let's look at two typical cases. The first case is how the application on Alibaba Cloud can effectively prevent the stability risk in the system architecture design through cloud-native products. We adopt the microservice architecture, in which a large amount of data is stored in MongoDB. In this architecture, the customer uses the combination of PTS, ARMS, and AHAS, which can help the customer actively detect potential risks in the system to prevent stability risks.
The second case is about Serverless, which solves the problem of rapid cloud migration of microservice applications. During cloud migration, we usually need applications to solve many problems. In the Serverless model, the complexity of underlying deployment is reduced substantially.
When the traffic in the customer's application soars suddenly, Serverless detects it and actively requests new resources to respond to timely new traffic. When the burst traffic disappears, Serverless actively releases the resources, thereby reducing costs.
Best Practices for O&M of Large-Scale Microservice Applications in the Serverless Era
Interpretation of the Best Practice Path of Cloud-Native Observability
117 posts | 9 followersFollow
Rupal_Click2Cloud - June 14, 2022
Alibaba Cloud Native - November 3, 2022
OpenAnolis - January 4, 2023
PM - C2C_Yuan - September 1, 2022
Iain Ferguson - April 28, 2022
Alibaba Cloud Community - December 27, 2022
117 posts | 9 followersFollow
Accelerate software development and delivery by integrating DevOps with the cloudLearn More
MSE provides a fully managed registration and configuration center, and gateway and microservices governance capabilities.Learn More
A unified, efficient, and secure platform that provides cloud-based O&M, access control, and operation audit.Learn More
Provides a control plane to allow users to manage Kubernetes clusters that run based on different infrastructure resourcesLearn More
More Posts by Alibaba Cloud Native