Note: Ma Tao is a researcher of Alibaba Cloud Intelligence, one of the founders of the kernel team of Alibaba Group, and the head of the operating system team of Alibaba Cloud Basic Software Department. He was responsible for the research and development of Linux and operating system kernel 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, in the file system, memory management, general block device layer and other aspects of profound accumulation, has been invited many times in the well-known domestic and foreign Linux operating system and kernel related conferences to deliver lectures.
Now we can see a variety of “cloud native XXX” in various occasions, cloud native has become the IT industry the most popular attribute, seems not to talk about the cloud native out. But what is really cloud native? Is it enough to put old technology in the cloud? Not so good! With Ali cloud senior researcher Jiang Jiangwei’s words to define – “born because of the cloud is the cloud native”. Simply speaking, a product or technology should be able to add cloud original this attributive truly, must have the innovation that is born because of cloud and evolution, want to add cloud original this attributive so is not easy. If you are interested, you can search the article “Aliyun Jiang Jiangwei: What is the real cloud native?”
Today, I will introduce myself to talk about the cloud native operating system.
You might wonder, isn’t an operating system something that everyone who uses a computer uses every day? Isn’t “operating system principle” the first difficult professional course for students of general computer department? Wasn’t Linux, today’s most popular operating system, created by Linus Torvalds back in 1991? The answer to the above questions is yes, then, such a rather traditional system software can also be cloud native? Yes, the operating system should also keep up with The Times! So, today, I’m going to talk about how this rather traditional system software is born and changed by the cloud, and become a “cloud native operating system.”
Before I get into technology, let me tell you a little bit about myself. I started to get involved with operating system in 2006. At the beginning, I was engaged in the development of operating system in Oracle. In 2010, I joined Taobao Core System as an operating system company. Participated in and witnessed the evolution and development of the operating system in Ali because of the cloud. Although Taobao is also an Internet company, but Taobao’s operating system and the traditional operating system is not a big difference. All the changes due to cloud began when I transferred from Taobao to Ali cloud in 2012.
At that time, the operating system of Ali cloud and Taobao have distinction? Not much difference objectively. The only slight difference: At Taobao, the operating system is a fundamental component of Taobao; In Ali Cloud, operating system and virtualization have become the cornerstone of the first generation of cloud computing, which is the first close contact between operating system and cloud.
Around 2000, VMware and Xen virtualization technologies emerged one after another. The operating system achieves the purpose of improving resource utilization and flexible scheduling through the virtualization of physical resources, and finally gives birth to the birth of cloud computing. Early AWS, Ali cloud are the use of this technology to provide virtual host services. Is this the origin of the cloud, or is it caused by the cloud? Of course not. First of all, most of these cloud manufacturers implement a virtualization layer (hypervisor) on offline hardware. The operating system that directly controls the hardware is built to run on the hypervisor, and then the abstraction and management of the server physical resources are re-realized by the hypervisor. So, can this be done offline? Absolutely, so it clearly doesn’t fit the definition of cloud native. Although this is the beginning of the cloud, it is not cloud-native.
Time comes to 2013, the second close contact between operating system and cloud comes from the birth and development of container. Different from the server resource virtualization of virtual machines, containers are operating system virtualization, which is a step up on the technology stack — providing a lightweight and isolated running environment for different applications through cgroup and namespace technologies realized in the kernel. The emergence of Docker in 2013 made the packaging and distribution of application containers very simple and easy to use. Subsequently, with the emergence of container arrangement technologies such as K8S, the container ecosystem gained rapid popularity and development. Containers also quickly became the mainstream form of application packaging and distribution, development and testing, and gradually became the main operating unit of cloud computing.
This is the CNCF definition of cloud native, but it is only “narrow”, the operating system in this “narrow” cloud native play a great role, but in fact, it is not a true sense of “born for the cloud”, nor does it reflect any revolutionary technical innovation in the cloud.
But a closer look at the image shows that the container’s lack of security is a big problem in 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 serious security problems among containers, such as mutual attack and sharing of some key resources. Chances are always there for those who are prepared, and this is when the operating system finally needs to change and evolve for the cloud. We have implemented lightweight virtualization and application kernel technologies based on the operating system to create a new kind of secure container, which we call the secure sandbox container.
Sandbox containers not only solve the safety isolation problem of containers, but also retain the complete technical ecology and experience of containers, which can be seamlessly mixed with ordinary containers. This is an important evolution of the operating system for the cloud in the container scenario. Thus, the operating system has completed the beautiful transformation of being “born in the cloud” and become a cloud-native operating system. At present, this system has already served various cloud primary related businesses of Ali Group, and also served our cloud customers through various container instance products on Ali Cloud.
The story does not end there. For the future of cloud nativeness, how can operating systems continue to be “different for the cloud”? This brings us to another native trend, Serverless.
In 2019, UC Berkeley predicted that Serverless will gradually replace Serverful computing as the new computing paradigm for the cloud age. With the spread of cloud-native concepts and the development of cloud-native technologies, the trend toward Serverless computing is accelerating. In this new scenario, users only need to focus on the application and business logic, more common functions, resources, and system capacity are sinking to the cloud, the user does not need to plan ahead capacity, do not need operations underlying system, can really like water, electricity, according to need to use according to pay, Serverless will significantly increase cloud’s efficiency.
With that background, here’s the question — what does Serverless have to do with the operating system? I think to build a good Serverless service, the operating system must not be absent. Due to the upward movement of service boundaries in the Serverless scenario, the system under the application container or function code is a whole to the user, and the user is no longer aware of the technology stack layering of the underlying system. This change created the conditions for 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 Serverless with better underlying system capabilities, and the basic operating environment, resource elasticity, efficient execution and other capabilities will be greatly released.
If operating systems in the container and K8S era were “evolving for the cloud,” in the Serverless era, we have to create a completely new cloud-native operating system. Through the collaborative integration of the full-stack technology of the underlying system, it provides efficient and innovative cloud native system services for the cloud native platform and applications. The scale of change and innovation is unprecedented for a traditional operating system, but we believe that the operating system will change and be reborn for the cloud. Inside Alibaba, we give such a cloud-native operating system a resounding name – “kangaroo”.
Years from now, college courses on “Principles of Operating Systems” may be transformed by this revolution, but we believe this is the mission of the cloud for our generation of operating system developers: to redefine the operating system. Only the operating system created by technological innovation arising from the cloud is the true cloud native operating system.