1
头图

Last year I wrote an article on the cloud native technology trend of dotnet in the Year of the Ox [1], and today I will write another article on the cloud native landing technology trend in the Year of the Tiger. Last year, the cloud native landing was limited to the .NET platform. This year, I explored the cloud native landing last year. On the basis of this, let's talk about the trend of multilingual cloud native technology landing.

In 2020, the cloud-native concept has been mentioned more and more, but it is in 2021 that it really takes on an explosive form and is really widely used by all cloud vendors and users. The three major domestic cloud vendors have all released the cloud native 2.0 roadmap in 2020, and the cloud native landing of these leading vendors has reached a milestone key point. The representative event is that major Internet companies have basically completed cloud native. All business is 100% cloud-based. The availability and maturity of cloud-native core technologies such as containers, microservices, and service grids can already support the volume of the head Internet. The progress of cloud native in each industry is different. The leading Internet companies are relatively advanced, and they have basically achieved comprehensive cloud native. In the next few years, other industries will gradually follow the footsteps of the Internet to become cloud-native.
6e9c25a995b4edbad6f08556d42c3c9d.jpg

With the rise of live broadcast, 5G, IoT and other fields, businesses have higher demand for cloud forms. Everyone hopes that the cloud can be closer to the point of data generation. Therefore, there are more and more corresponding edge cloud, local cloud, and hybrid cloud. . Now, the whole cloud computing has a very important trend, that is, it presents a model of one cloud and multiple forms, and users can use the capabilities of cloud computing in various places. But this also poses a big challenge to the cloud infrastructure. Users used one cloud before, and the management complexity was acceptable, but with multiple clouds, the challenge becomes more difficult.

Cloud native technology can naturally solve the problem of unified interface management after cloud becomes multi-modal, including the complexity challenge brought by hybrid cloud. The following two pictures are a summary of my roadmap for practicing cloud native in 2021:
fa8e4b1475cfebdeff500d00a7d0c655.jpg
12d1dec7c62c8df2b0feeedf1708683f.jpg

There are a lot of open source projects in CNCF, and there are more than 1,000 projects in it. These open source projects are competing around cloud computing. The CNCF incubation project maturity model is divided into three levels, which correspond to the three target customer groups divided by the gap theory:

  • Sandbox level (Sandbox): corresponding to the group of innovators
  • Incubation level (Incubating): corresponding to the early user group
  • Graduated (Graduate): corresponds to the early majority group
    3cf4551472743888437395768e79c43d.png

The transition of the project from the incubation level to the graduate level is the most critical and needs to cross the chasm (The Chasm). During this leap, the incubation program needs to demonstrate to influential companies and organizations that the capabilities it provides can improve production processes, increase efficiency, reduce costs, and are robust enough to be used in production environments. As of February 3, 2022, 16 projects have successfully graduated from CNCF, and 27 projects have entered the incubation level. For details, please refer to CNCF's graduation and incubation projects [2].

In 2022, cloud native will enter the stage of full implementation in all walks of life. CNCF has formed several key standards in the process of promoting cloud native development:

b6b4115577eecf7a171ee332437400ae.jpg

Cloud native practice also supports Service Mesh in the technical solution of supporting multi-language. Service Mesh has been around for longer than Dapr, and it is currently in a melee stage. Istio is not in the CNCF community. Microsoft and many manufacturers proposed SMI in CNCF ( Service Mesh Interface ), the main Service Mes frameworks all implement SMI. Microsoft-led Open Service Mesh follows the SMI specification and recently released version 1.0. I wrote an experience article yesterday to experience the officially released OSM v1. Version 0.0 [5], Open Service Mesh is really lightweight compared to Istio. SMI handles all the standard service mesh functions you would expect, including using mTLS to secure communication between services, managing access control policies, service monitoring, etc. Dapr and OSM are a great combination for a practical multi-runtime architecture.

Containers first appeared, which solved the problems of application packaging standardization and application publishing standardization. Until then, the degree of standardization in ways such as virtual machines was not enough, and Docker put an end to this problem. With the continuous evolution and promotion of Docker, new problems have emerged in application orchestration, resource scheduling, etc. At that time, Docker Swarm, Mesos and Kubernetes competed with each other. In the end, Kubernetes won and brought new de facto standards for resource orchestration. . Now Kubernetes has become a de facto standard. The application layer was also a situation where a hundred schools of thought contended. Every enterprise was making its own cloud-native applications. Now there are more and more open source standards, such as OAM (Open Application Model) and SMI (Service Mesh Interface). In trying to define standards at the application layer, OAM and SMI have not yet formed the de facto standard, they have the potential to become the de facto standard.

2022 is a very critical year. In the process of landing cloud native projects, Dapr, the representative project of the OAM standard, is currently a very dazzling project in the field of multi-runtime frameworks, and there are many cases of landing. Cloud-native multilingualism is an inevitable trend. The most popular language for back-end development in China is Java. Many companies (Tencent and Byte) are already using Go as the main development language, and PHP is also widely used. The characteristics of each language are different, and many companies will choose a suitable language according to their business needs. At this time, multiple languages may appear. The business department thinks that it is better to use Java/C#, and the front-end ones want PHP or Node.js. Multiple languages are becoming more and more common within the enterprise. Developers can use whatever language they want, but operation and maintenance personnel will face great challenges, such as how to uniformly implement service governance in a multi-language environment. Java was basically dominant in Ali before, but now there are multiple languages in Ali. Ali has acquired a lot of companies, such as Ele.me, Fliggy, AutoNavi, etc., but it is impossible for all acquired companies to change their programming languages, which is very difficult. Due to company mergers and acquisitions, Ali's programming languages have become diversified. If a business is big enough, it must be multilingual. If it is a start-up company or the volume is not large enough, language unification can indeed bring convenience. Therefore, Alibaba and Microsoft led the open source project Dapr. For details, please refer to Dapr's native practice in Alibaba Cloud [3], and AutoNavi's Serverless Platform Construction and Practice [4].

758af05a1fee93e8fe6882176beab7f3.jpg

Many domestic enterprises have already used Spring Cloud in virtual machine and physical machine environments. When these enterprises turn to cloud native, if they simply deploy Spring Cloud to the kubernetes environment, many of the infrastructure capabilities of Spring Cloud overlap with those of kubernetes. To enjoy the automation capabilities brought by kubernetes, the best option is to remove Spring Cloud, and the distributed capabilities provided by Dapr allow the solution to be freely adapted in various environments, and the Spring Boot version can be upgraded independently, no longer with the Spring Cloud has compatibility issues.

a83a8736bca7def5b05150b1c4eb2baf.jpg

I have seen some companies go cloud-native for the sake of technology, which may not yield good results in the end. More often, they should first consider what to do from the perspective of business value, and then choose the corresponding technology. On the one hand, if the enterprise is business-driven, it will have enough resources to invest. On the other hand, enterprises will have enough practice when doing technology selection and implementation. In terms of the field, my suggestion to everyone is to lay the foundation first, and then improve some necessary skills for production. Container technology is the cornerstone of all, followed by some key technologies such as observability, CICD, microservices and other key technologies that are really needed for internal implementation of enterprises.


微软技术栈
423 声望997 粉丝

微软技术生态官方平台。予力众生,成就不凡!微软致力于用技术改变世界,助力企业实现数字化转型。