Note: The author of this article is Tao Ma, a researcher of Alibaba Cloud Intelligence, one of the founders of Alibaba Group's kernel team, and the head of the operating system team of Alibaba Cloud Basic Software Department. Responsible for Linux and operating system kernel related research and development work in ORACLE and Alibaba successively. More than 15 years of operating system and kernel related research and development experience, domestic well-known Linux kernel research and development personnel, have deep accumulation in file system, memory management, general block device layer, etc., and have been invited many times in well-known Linux operating systems at home and abroad. Delivered lectures at core-related conferences.
Now we can see all kinds of "cloud native XXX" on various occasions. Cloud native has become the most popular attribute in the IT industry. It seems that it is out without talking about cloud native. But what is true cloud native? Is it enough to run the old technology on the cloud? It doesn't seem to work well! To define it with a sentence from Jiang Jiangwei, a senior researcher at Alibaba Cloud-"Born from cloud is cloud native". To put it simply, if a product or technology can truly add the attributive cloud-native, must have cloud-born innovation and evolution , so it is not easy to add the attributive cloud-native. If you are interested, you can search the article " Aliyun Jiangwei: What is the real cloud native? "
Today, I will talk about the cloud native operating system on my own recommendation.
You may be more curious, isn't the operating system something that all people who use computers use every day? Isn't "Operating System Principles" the first difficult professional course for ordinary computer students? The most popular operating system, Linux, was not founded by Linus Torvalds in 1991? The answers to the above questions are all yes. So, can such a fairly traditional system software also be cloud-native? Yes, the operating system must keep pace with the times! So, today I stand from the perspective of the operating system and talk about how this rather traditional system software was born and changed because of the cloud, becoming a "cloud-native operating system".
Before starting to talk about technology, let me briefly introduce myself. I started working with the operating system in 2006. I started working on operating system development at Oracle. In 2010, I joined Taobao’s core system as an operating system. As Ali’s first batch of students working on operating systems, from Taobao to Alibaba Cloud I have been sticking to the field of operating systems, participating and witnessing the evolution and development of the operating system in Alibaba because of the cloud. Although Taobao is also an Internet company, Taobao's operating system is not much different from traditional operating systems. All the changes due to cloud started when I switched from Taobao to Alibaba Cloud in 2012.
At that time, was there any difference between Alibaba Cloud's operating system and Taobao's? Objectively speaking, there is not much difference. The only difference is that in Taobao, the operating system is a basic component of Taobao; in Alibaba Cloud, the operating system and virtualization have become the cornerstones of the first generation of cloud computing. This is the first close contact between the operating system and the cloud.
Around 2000, VMware and Xen virtualization technologies appeared one after another. The operating system physical resources to improve resource utilization and flexible scheduling , which eventually gave birth to the birth of cloud computing. Early AWS and Alibaba Cloud used this technology to provide virtual hosting services. Is this cloud native? Is it born from cloud? of course not. First of all, most of these cloud vendors implement a virtualization layer (hypervisor) on offline hardware, and put the operating system that directly controls the hardware to run on the hypervisor, and then the abstraction and management of the server's physical resources are re-implemented by the hypervisor. So, can this thing be done offline? Absolutely, so obviously this does not meet the definition of cloud native. Although this is the beginning of cloud, it is not cloud native.
The time has come to 2013. The second close contact between the operating system and the cloud originated from the birth and development of the container . is different from the server resource virtualization of virtual machines. Containers are operating system virtualization, which raises a level on the technology stack-providing a lightweight and isolated operating environment for different applications through technologies such as cgroup and namespace implemented in the kernel. With the emergence of docker in 2013, made the packaging and distribution of application containers very simple and easy to use , followed by the emergence of container orchestration technologies such as k8s, the container ecosystem has been rapidly popularized and developed, and containers have quickly become application packaging and distribution The mainstream form of development and testing has gradually become the main operating unit of cloud computing.
This is the cloud native defined by CNCF, but it is only in the "narrow sense". The operating system plays a big role in this "narrow" cloud native, but in fact it is not "born from the cloud" in the true sense. , Nor does it reflect any revolutionary technological innovation on the cloud.
But a closer look at the above picture, we can find that-the lack of security of containers has become a big problem on the cloud. On the one hand, traditional operating systems do not have a good solution to the problem of interference between containers. On the other hand, there are still serious security problems such as attacks between containers and sharing some key resources. Opportunities are always reserved for those who are prepared. At this time, the operating system finally needs to change and evolve for the cloud. Based on the operating system, we have implemented lightweight virtualization and application kernel technologies to create a brand-new secure container, which we call secure sandbox container .
While the sandbox container solves the problem of container security isolation, it still retains the complete technical ecology and experience of the container, and can be seamlessly mixed with ordinary containers. This is an important evolution of the operating system in the container scene because of the cloud. So far, the operating system has completed the beautiful transformation of "born from the cloud", becoming a cloud-native operating system . At present, this system has served various cloud-native related businesses of Alibaba Group, and also serves our cloud customers through various container instance products on Alibaba Cloud.
The story is not over here. For future-oriented cloud natives, how can the operating system continue to be "different from the cloud"? This has to mention another trend in cloud native, Serverless .
In 2019, UC Berkeley University predicts that Serverless will gradually replace Serverful computing and become a new computing paradigm in the cloud era. With the promotion of cloud-native concepts and the continuous development of various cloud-native technologies, the trend of serverless computing is accelerating. In this new scenario, users only need to focus on application and business logic, and more general functions, resources, and system capabilities are sinking to the cloud. Users do not need to plan capacity in advance, and do not need to operate and maintain the underlying system, which can truly be like Water and electricity are the same as on-demand and pay-as-you-go. Serverless will greatly improve the efficiency of cloud production.
After the background introduction, the question also comes-what is the relationship between Serverless and the operating system? I think that to build a good serverless service, the operating system must not be absent. Due to the upward shift of the service boundary in the serverless scenario, the system under the application container or function code is a whole for the user, and the user no longer perceives the layering of the technology stack of the underlying system. This change has created conditions for the vertical integration of technology. We believe that the cloud-native operating system needs to be optimized and reshaped as a whole, so as to provide better underlying system capabilities for Serverless. The basic operating environment, resource elasticity, and efficient execution capabilities will also be greatly released. .
If the operating system in the container and K8S era is "evolving due to the cloud," then in the serverless era, we must completely create a new cloud-native operating system. Provide efficient and innovative cloud-native system services for cloud-native platforms and applications through the collaborative integration of the full-stack technology of the underlying system. The intensity of this change and innovation is unprecedented for traditional operating systems, but we firmly believe that the operating system will be changed for the cloud and reborn for the cloud. , we gave such a cloud-native operating system a resounding name-160d4034db117e "Kangaroo" .
Many years later, perhaps the content of the university course "Operating System Principles" will be radically changed because of this change, but we firmly believe that this is the mission that the cloud brings to our generation of operating system developers: redefining the operating system. Only an operating system created through technological innovation born from true cloud-native operating system .
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。