Author | Zhang Lei, Ali cloud platform container senior technical experts, CNCF official ambassador
“The future of software must be grown on the cloud,” This is the core concept of native cloud hypothesis. The so-called “cloud native”, is actually in a defined path can make the best use of the cloud to maximize capacity utilization, maximize the value of the cloud. On this path, away from the “Apply” the carrier, “he says native” out of the question; container technology, this idea sucked floor, one of the important means to deliver software revolution continues to go on.
A brief history of native cloud technology development
2004 – Year 2007, Google has been using this technology on a large scale like Cgroups container inside;
In 2008, Google will Cgroups merged into the main Linux kernel;
2013, Docker project officially released.
2014, Kubernetes project also officially released. The reason is very easy to understand, because Docker container and after, you need to have a way to help you easily and quickly, gracefully manage these vessels, which is the original intention Kubernetes project. After Google and Redhat released Kubernetes, the pace of development of this project very quickly.
2015 by Google, Redhat and Microsoft and other large cloud computing vendors and open source companies to co-lead the establishment of cloud CNCF native Foundation. CNCF beginning of the establishment, there are 22 founding members, and Kubernetes also become CNCF hosted the first open source project. After that, CNCF pace of development is very rapid;
2017, CNCF reach 170 members and 14 funds projects;
2018, CNCF third anniversary with 195 members, 19 and 11 projects Foundation incubator project, so fast pace of development in the entire cloud computing are very rare.
The ecological status of native cloud technology
So, now the native cloud technology ecosystem we are talking about is a huge collection of technologies. CNCF with a cloud native panorama (https://github.com/cncf/landscape), in this panorama there are already more than 200 projects and products, and these projects and products are also of the view and CNCF fit . So if this panorama as a background, you will find them to think, native cloud we are discussing today is actually mainly discussed the following points:
Cloud Native Foundation – CNCF;
Native cloud technology community, such as more than 20 projects CNCF now officially hosted together form the cornerstone of modern cloud computing ecosystem, where projects like Kubernetes has become the world’s fourth active open source projects;
In addition to the previous two, now the world’s major public cloud vendors have supported Kubernetes. In addition, there are more than 100 technology start-up companies also continued to invest. Alibaba now also talk about a comprehensive cloud, and the cloud to get on the cloud native, and this is an example of the major technology companies to embrace native cloud.
We are at a critical node of the times
2019 is the key node in the cloud era native, why do you say? We are here for everyone simple comb. From 2013 to begin Docker project release, issued Docker project makes the whole operating system semantics sandbox technology at your fingertips, enabling users to better, more complete package their applications so that developers can easily obtain an application the smallest run unit without the need to rely on any PaaS capabilities. This classic PaaS industry is actually a “dimensionality reduction combat.” 2014, when, Kubernetes project release in the sense that Google would Borg / Omega systems thinking inside by means of the open source community to achieve a “rebirth”, and put forward the idea of ”container design mode”. While Google chose open source Kubernetes indirectly rather than directly Borg open source project, in fact, the reason behind it is relatively easy to understand: Borg / Omega Such a system is too complicated, there is no way available to people outside Google uses, but Borg / Omega this design ideas are so that we can make use of Kubernetes come into contact with, and this is important background Kubernetes of open source. Such 2015 to 2016, went to the era of container arrangement “Three hegemony”, when Docker, Swarm, Mesos, Kubernetes will start competing in the container arrangement field, because they are competing in fact, easier to understand, and that is Docker or containers Although large value in itself, but if you want to let the business value or the value of the cloud, it will certainly need to occupy a favorable position in the schedule above. Swarm and Mesos characteristics, that is their only strong in ecology and technology, which, Swarm more biased in favor of ecology, technology and Mesos stronger. In contrast, Kubernetes the advantages of both the two, culminating in the 2017 “Three hegemony” in the situation to win and become the standard layout container was until now. This process is representative event Docker announced built Kubernetes services in the core product, and gradually stop Swarm project maintenance. To 2018, when the native cloud technology concept began to sprout, it is because the Kubernetes and containers have become established standards cloud vendors, and gradually form a “cloud” as the core software development ideas. By 2019 the situation seemed to turn some changes.
What is “cloud native”? Cloud Native how to fall?
Cloud native definition
Many people will ask, “in the end what is the cloud native?” In fact, cloud native is the best path or best practices. In more detail, cloud native to the user specifies a lower burden of mental, agile, the best path can be scalable, reproducible way to maximize the use of cloud capabilities, maximize the value of the cloud. Therefore, the cloud is actually a native guide software architecture design ideas. According to this idea and designed the software: First of all, it is natural “born in the cloud, in the cloud long”; secondly, to maximize their capacities cloud allows us to develop software and “cloud” can be naturally integrated together, play the greatest value of the “cloud”. Therefore, cloud native maximum value and vision, is to think that future software will grow from it since its birth in the cloud, and follow a new software development, publishing and operation and maintenance mode, so that the software can play to maximize cloud Ability. Speaking here, we can think about why the vessel revolutionary technology?
In fact, the revolutionary technology of the container and container technology very similar, namely: a container having a defined application techniques such way “self-contained” in. Therefore, such an application in order to agile, scalable manner reproducible posted on the cloud, the ability to play the cloud. This is the cloud container technology play a revolutionary impact lies, so that cloud core technology is the container chassis native technology.
Native cloud technology category
Native cloud technology areas include several of the following aspects:
The first part is defined with cloud application development process. This includes the application definition and image creation, configuration CI / CD, and Streaming and message database.
The second part is the choreography and management processes of cloud applications. This is also part of Kubernetes of concern, including the application layout and scheduling, service discovery management, remote calls, API Gateway and Service Mesh.
The third part is the monitoring and observability. This part of the emphasis is on how to monitor cloud applications, log collection, Tracing and how destructive testing on the cloud, that is, the concept of chaos project.
The fourth part is the cloud native underlying technology, such as the vessel is running, native cloud storage technology, network technology original cloud.
The fifth part is cloud native toolset on the front of these core technical point, there are many supporting ecological or around the need to use tools, such as process automation and configuration management, container image storage, cloud security technology and native cloud password management.
Finally, there is Serverless. Serverless morphogenesis of a PaaS is special, and it defines a more “extreme abstraction” applications written in a way, including concepts such as FaaS and BaaS. Whether it FaaS or BaaS, its most typical feature is based on actual usage billing (Pay as you go), and therefore Serverless billing is also important knowledge and concepts.
Two theories cloud native thought
After complete understanding of the technical scope of native cloud you will find that it contains technical content is still a lot, but the technical nature of the content is similar. The nature of native cloud technology are two theoretical basis.
The first theory is based on: Immutable infrastructure. This is currently achieved by mirroring the vessel, its meaning is infrastructure applications should be immutable, it is a self-contained, self-describing something completely migrated in different environments;
The second rationale is this: a cloud application orchestration theory. The current implementation is referred to Google by the “container design mode”, which is what you need to explain the major part of the series of Kubernetes course.
Infrastructure Shi Xiangyun evolutionary process
First to introduce the “immutable infrastructure” concept. In fact, the applications depend infrastructure is also undergoing a process of evolution to the cloud, for example, to the traditional application infrastructure, in fact, is often variable.
You may often do such a thing, such as a need to publish or update software, process roughly like this, the first connected to the server via SSH, and then manually upgrade or downgrade package individually adjust the configuration file on the server, and the new code is deployed directly onto the existing server. Therefore, this infrastructure will continue to be adjusted and modified. But in the cloud, “cloud” friendly application infrastructure is immutable.
And the update process in this scenario would do: Once the application is deployed, then this application infrastructure will not change it. If you need to update, you need to change the public image now to build a new direct service to replace the old service. And we have been able to achieve a direct replacement, because the container provides a self-contained environment (includes all depend on the desired application is running). So for applications, totally do not care about what happened container change, just need to modify the container itself mirrored off it. Thus, for cloud-friendly infrastructure is ready to be replaced and the replacement, this is because the container has a capacity of agility and consistency, which is the era of cloud application infrastructure. So, in conclusion, the era of cloud infrastructure like alternative to the “animals”, can be replaced at any time; and the traditional infrastructure is unique “pet”, need careful care, which reflects the non-cloud era variable advantage of infrastructure.
Evolution of infrastructure Shi Xiangyun significance
So, like the infrastructure to process “immutable” evolution, it provides us with two very important advantages.
1, consistency and reliability of the infrastructure. Also a mirror, both in the US Open, in China open, or open all the same in India. And wherein the OS environment for the application is the same. For applications, it does not need to run the vessel concerned where this infrastructure is the consistency of a very important feature.
2, this image itself is self-contained, which contains all the dependencies needed to run the application, and therefore may shift to any position on the cloud.
In addition, native cloud infrastructure also provides a simple, predictable deployment and operation and maintenance capabilities. Because now have images, application or self-describing, by mirroring the entire container can actually run up like Kubernetes technology as the Operator will be made from its operation and maintenance, the entire application itself is self-contained act, so that it can migrating to the cloud on any one location. It also makes automation of the entire process becomes very easy.
应用本身也可以更好地扩容，从 1 个实例变成 100 个实例，进而变成 1 万个实例，这个过程对于容器化后的应用没有任何特殊的。最后，我们这时也能够通过不可变的基础设施来地快速周围的管控系统和支撑组件。因为，这些组件本身也是容器化的，是符合不可变基础设施这样一套理论的组件。
2019 – the first year the popularity of cloud-native technology
Why 2019 is likely to be a key node in it? We believe that 2019 is the first year the popularity of native cloud technology. First, we can see that in the 2019, Alibaba announced a comprehensive cloud, and that “the cloud to get on the cloud native.” We can also see that the “cloud” as the core software development ideas, is becoming the default option for all developers. Like Kubernetes and other native cloud technology is becoming a required course for technical staff, a large number of jobs are emerging.
Against this background, “will Kubernetes” is no longer enough, “understand Kubernetes”, “will cloud the native architecture” of the importance of becoming increasingly prominent. From the beginning of 2019, the native cloud technology will be mass adoption, which is an important reason why people invest and native cloud technology should be learning at this point in time.
“Cloud native technology open class” is a kind of course?
Based on technology trends mentioned above, so Ali Baba and CNCF jointly opened a native cloud technology open class. Then this public course in the end talking about what content?
Open class syllabus
The first phase of cloud syllabus native open class, mainly in the application container and Kubernetes as the core courses in later phase will continue on-line Service Mesh, Serverless so on. In the first phase of the open class, we first course is divided into two parts – the basics section and advanced knowledge part:
First of all, we hope that through the course of the first part of the explanation to help you lay a solid foundation. Then, for higher order content more in-depth analysis of the code level. We want to help them to learn the native cloud technology by such a gradual approach;
Second, our instructor will set the corresponding self-test after school exams behind each course, these exam questions in this section is actually the most effective course of induction, we hope to be able to help you summarize knowledge by way of after-school evaluation , create their own cloud native knowledge systems;
Finally, our instructor behind each knowledge point are designed cloud practice, the so-called “practice makes perfect”, learn computer-related still need to get started to actually operate can. Therefore, in the practical part of the clouds, instructor will provide detailed practical steps for all after-school self contact. And in this session, Ali cloud will be presented quantitative Ali cloud vouchers to help you better practice in the cloud.
More than three parts constitute the teaching content and CNCF jointly launched Ali cloud cloud-native technology open class.
Open class lesson plans (first phase)
CNCF and Alibaba jointly issued 29 hours. Behind each knowledge provides after-school self-test. For the lecturer lineup, it is also the second most cited part of the open class proud of. Our class will open for you on the main CNCF senior members of the community with the project maintainers, many courses are instructor container Ali cloud platform team of expert engineers. At the same time, we will also invite external experts and senior lecturer cloud native communities as we explain in part. So the lesson is in progress, we will occasionally arrange large coffee broadcast, answering courses and landing practice cases. We hope that these contents are integrated together, as we present a Chinese most complete, most authoritative and most influential native cloud technology open class.
We may there is a doubt, I want to learn what is required prior knowledge of the basics of native cloud before it? In fact, generally require prior knowledge of three parts:
- 容器的使用基础：希望大家具有容器的简单使用经验，比如 docker run 以及 docker build 等，最好有一定 Docker 化应用开发的经验。当然，我们在课程中也会讲解相关的基础知识。
Linux operating system knowledge: mainly through some basic knowledge of, preferably with some experience in the development of Linux;
Basic computer and programming: This is the entry-engineer or senior undergraduate level is sufficient;