乐趣区

关于serverless:阿里云马涛什么是操作系统的云原生

简介:云原生曾经成为 IT 界最风行的一个定语,仿佛不谈云原生就 out 了,但什么才是真正的云原生?

注:本文作者马涛,阿里云智能研究员、阿里巴巴团体内核团队创始人之一、阿里云根底软件部操作系统团队负责人。先后在 ORACLE、阿里巴巴负责 Linux 以及操作系统内核相干的研发工作。十五年以上操作系统和内核相干研发教训,国内出名 Linux 内核研发人员,在文件系统、内存治理、通用块设施层等方面均有深厚的积攒,屡次受邀在国内外出名 Linux 操作系统以及内核相干会议上发表讲座。

当初咱们在各个场合能够看到各种各样的“云原生 XXX”,云原生曾经成为 IT 界最风行的一个定语,仿佛不谈云原生就 out 了。但什么才是真正的云原生?把老的技术跑在云上就能够了么?貌似不太行!用阿里云高级研究员蒋江伟的一句话来定义——“因云而生才是云原生”。简略来说,一个产品或者技术要能真正加上云原生这个定语,肯定要有因云而生的翻新和演进,所以想加上云原生这个定语可不是容易的。如果各位读者感兴趣,能够上网搜寻文章“阿里云蒋江伟:什么是真正的云原生?”

明天,我就自告奋勇来讲讲云原生操作系统。

大家可能比拟好奇,操作系统不是所有用电脑的人每天都在应用的玩意么?“操作系统原理”不是个别计算机系同学的第一门艰深的专业课么?当初最风行的操作系统 Linux 不是 1991 年就由 Linus Torvalds 大神创建了么?以上问题的答案都是必定的,那么,这么一个颇为传统的系统软件也能够云原生了么?对,操作系统也要与时俱进!所以,明天我站在操作系统的角度,来谈谈这个颇为传统的系统软件是如何因云而生、因云而变,成为“云原生操作系统”的。

在开展讲技术之前,我先简略介绍一下本人。我是从 2006 年开始与操作系统结缘的,最开始是在 Oracle 从事操作系统的开发工作,2010 年退出淘宝外围零碎做操作系统,作为阿里最早一批做操作系统的同学,从淘宝到阿里云始终坚守在操作系统畛域,一路参加和见证了操作系统在阿里因云而生的演进倒退。尽管淘宝也是一家互联网公司,然而淘宝的操作系统和传统的操作系统其实区别并不大。所有因云而生的扭转从我 2012 年从淘宝转入阿里云开始。

那个时候,阿里云的操作系统和淘宝的有区别么?主观来说区别不大。惟一的一点点区别:在淘宝,操作系统是淘宝的一个根底组件;而在阿里云,操作系统和虚拟化成为了第一代云计算的基石,这是操作系统和云的第一次密切接触。

2000 年左右,VMware 和 Xen 虚拟化技术相继呈现,操作系统通过将物理资源虚拟化达到进步资源利用率和灵便调度的目标,最终催生了云计算的诞生。晚期的 AWS、阿里云都是利用这一技术提供虚拟主机的服务。这是云原生么,是因云而生的么?当然不是。首先这些云厂商大都是在线下硬件上实现一个虚拟化层(hypervisor),把原来间接操控硬件的操作系统架到 hypervisor 上运行,而后服务器物理资源层面的形象和治理都由 hypervisor 从新实现。那么,这个事件线下能做么?相对能够,所以显然这不合乎云原生的定义。虽说这是云的开始,但这不是云原生的。

工夫来到了 2013 年,操作系统和云的第二次密切接触源于容器的诞生和倒退。与虚拟机的服务器资源虚拟化不同,容器是操作系统虚拟化,在技术栈上回升了一层——通过内核里实现的 cgroup 和 namespace 等技术为不同利用提供轻量、隔离的运行环境。2013 年 docker 的横空出世,使得利用容器的打包散发变得非常简单易用,随后 k8s 等容器编排技术的呈现,容器生态系统失去了疾速的遍及和倒退,容器也迅速成为利用打包散发和开发测试的支流状态,逐步成为云计算的次要运行单元。

这就是 CNCF 定义的云原生了,但它只是“广义”的,操作系统在这个“广义”云原生中起到了很大的作用,但其实它并不是真正意义上的“因云而生的”,也没有在云上体现任何革命性的技术革新。

不过仔细观察一下上图,咱们能够发现——容器在平安方面的有余在云上成为了一个大问题。一方面传统的操作系统对于容器之间的烦扰问题没有很好的解决方案,另一方面容器之间还存在彼此攻打,共享一些要害资源等十分重大的平安问题。机会总是留给有筹备的人,此时的操作系统终于须要因云而变、为云演进了。咱们基于操作系统实现了轻量级虚拟化和利用内核等技术,打造了一种全新的平安的容器,咱们称之为平安沙箱容器。

沙箱容器在解决容器平安隔离问题的同时,依然保留容器残缺的技术生态和体验,能够跟一般容器无缝的混合应用。这是操作系统在容器场景上因云而生的一个重要演进,至此操作系统实现了“因云而生”的丑陋转型,成为一个云原生操作系统。目前这套零碎曾经服务于阿里团体各个云原生相干业务,也通过阿里云上各种容器实例产品服务于咱们的云客户。

故事到这里还没有完结。面向未来的云原生,操作系统如何持续“因云而不同凡响”呢?这就不得不提云原生中另外一个趋势 Serverless。

2019 年,UC 伯克利大学预测 Serverless 将会逐步取代 Serverful 计算,成为云时代的新计算范式。随着云原生理念的推广以及各种云原生技术的一直倒退,Serverless 计算的趋势在减速。在这种新场景中,用户只须要专一于利用和业务逻辑,更多的通用性能、资源和零碎能力都下沉到云,用户不须要提前布局容量,不须要运维底层零碎,能够真正像用水、用电一样按需应用按需付费,Serverless 将大幅晋升云的生产效率。

背景介绍完,问题也来了—— Serverless 和操作系统有啥关系呢?我认为要构建好 Serverless 服务,操作系统肯定不能缺席。因为 Serverless 场景下服务边界的上移,对用户来说利用容器或函数代码之下的零碎就是一个整体,用户不再感知底层零碎的技术栈分层。这个变动给技术垂直整合发明了条件。咱们认为云原生的操作系统须要进行整体性的全栈优化和重塑,这样能力为 Serverless 提供更优的底层零碎能力,根底运行环境、资源弹性、高效执行等能力也将因而失去极大的开释。

如果说在容器和 K8S 时代操作系统是“因云而演进”,那么到了 Serverless 时代,咱们则要彻底发明出一个全新的云原生操作系统。通过底层零碎全栈技术的协同交融,为云原生平台和利用提供高效和翻新的云原生零碎服务。这次改革和翻新的力度对于传统操作系统而言是前所未有的,然而咱们深信,操作系统肯定会为云而扭转,为云而新生。在阿里外部,咱们给这样的云原生操作系统起了一个嘹亮的名字——“袋鼠”。

多年之后,兴许大学课程“操作系统原理”里的内容会因为这次改革而产生天翻地覆的扭转,但咱们深信,这就是云带给咱们这一代操作系统研发人员的使命:从新定义操作系统。只有通过因云而生的技术创新打造进去的操作系统,才是真正的云原生操作系统。

原文链接
本文为阿里云原创内容,未经容许不得转载。

退出移动版