×
Community Blog Build Modernized Applications Using Cloud-Native Technologies

Build Modernized Applications Using Cloud-Native Technologies

This article recaps a recent speech about building modernized applications using cloud-native technologies.

By Yuqi

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.

Introduction

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.

A Typical Case of an Atypical Enterprise: Enterprises after Cloud Migration

Let's take a metaphysical approach from an individual perspective to see a typical enterprise case.

1

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.

About Cloud Migration: "Anxious before and after Cloud Migration"

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.

2

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:

  • How can they shorten the R&D cycle to support rapid business development?
  • How can they improve the overall O&M efficiency and give their IT departments strong control over the process?
  • How can they reduce the overall IT application costs and the complexity of software and improve the high availability of the entire system during and after cloud migration?

Most of these questions focus on the non-functional features of applications.

1. The Root of Anxiety

All these anxieties can be analyzed in depth from the application perspective.

3

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.

2. Fast Solution and Deep Solution

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.

4

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.

Key Features of Cloud-Native

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.

5

  • Cloud-Native Technology: Today, closed-source and open-source cloud-native technologies exist. Closed-source technologies are usually reflected in the infrastructure of cloud vendors that are relatively transparent to applications. Similarly, a large number of open-source technologies have a close relation to applications because all applications are framed on these open-source cloud-native technology stacks. However, if these applications need to make good use of the underlying cloud-native technologies, we suggest that the applications in these scenarios use a large number of cloud-native products.
  • Cloud-Native Products: Some customers have technology stacks built based on open-source technology stacks. Although open-source technology stacks have no technology, function, or stability problems, their maintainability and coordination with underlying infrastructure may be affected. Therefore, we recommend building applications using cloud-native products.
  • Cloud-Native Idea: Technology and products alone cannot solve the problems of all aspects of the application mentioned above. Technology and products are production tools, and changes in production tools often lead to changes in the IT culture of the entire enterprise (also known as the production relation.)

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.

1. Cloud-Native Is the Upgrade of Cloud Computing

Cloud-native helps users better build, use, and manage the cloud. It is also an upgrade to cloud computing.

6

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.

2. What Are Modernized Applications?

What are modernized applications, and what are their differences from traditional applications?

7

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?

Cloud-Native Architecture

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.

8

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.

1. Principles for Cloud-Native Architectures

9

We have extracted the seven most important principles for cloud-native architectures:

  1. Service Principle: Microservice granularity can meet the characteristics of customer applications better.
  2. Elasticity Principle: The VM, container, and application layers have different elasticities.
  3. Resilience Principle: Applications can provide continuous service for customers in various situations by improving the high availability principle.
  4. Observability Principle: Unlike monitoring, an observability model can provide a large amount of effective information from logs to tracing in advance so it can actively identify potential risks in the system.
  5. Automation Principle: We hope the great improvements in the underlying hardware, software, and components with the automation principle can help us perform O&M more effectively and reduce O&M costs.
  6. Zero-Trust Principle: Cloud-native architectures can run on different architectures, posing a new security requirement that all applications are untrusted regardless of the environment and must check the validity of each request.
  7. Continuous Evolution Principle: Based on the characteristics of an enterprise, appropriate evolution goals can be adopted at each stage. After long-term iteration, each goal will eventually evolve into modernized applications.

2. Main Architecture Modes of Cloud-Native

There are many architecture modes of cloud-native, as shown in the following figure.

10

3. Cloud-Native Architecture Method of Alibaba Cloud

11

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.

4. Closed Loop of Alibaba Cloud's Cloud-Native Architecture

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.

12

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.

5. How Can We Measure the Maturity of Cloud-Native Architectures?

We proposed a model to measure the maturity of cloud-native architectures in ACNA. The model has six key dimensions, which are called SESORA.

13

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.

Case

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.

14

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.

15

0 1 0
Share on

Alibaba Cloud Native

202 posts | 12 followers

You may also like

Comments