img

随着云计算的发展,以及Linux平台的不断发展和生态系统的不断完善,越来越多的企业、云服务提供商都将Linux作为其数据中心的首选操作系统。

不过,作为云基础设施的底座,针对云上产品和环境进行定制、优化的需求大幅增长。基于此,阿里巴巴操作系统团队开发了 Alibaba Cloud Linux,以连接阿里云各类产品与客户应用,更好发挥云端的能力。

在近日的“长沙1024程序员节”期间,CSDN 「人物志」栏目采访了阿里云研究员、基础软件部操作系统团队负责人马涛,他介绍了在5G、云计算等技术的冲击下,云操作系统面临的挑战和机遇。

马涛也是阿里巴巴集团内核团队创始人之一。他曾先后在ORACLE,阿里巴巴负责Linux以及操作系统内核相关的研发工作,已在Linux内核主线有超过300个提交,同时对分布式文件系统,分布式存储等领域有多年深入研究。

以下为采访内容,由CSDN整理:

CSDN:随着5G、云计算等新技术的发展,新硬件架构层出不穷,这对底层的操作系统提出了哪些挑战?阿里的开源云操作系统在技术上要如何做出调整以适应这种变化?

马涛:确实,云计算及互联网场景对于操作系统的需求和传统时代有了很大的变化,稳定性、性能等方面都有了新的挑战。

首先云计算是规模经济,所以云基础设施的固定成本十分庞大。而当这些基础设施建成后,进行进一步扩张所需要的边际成本则相对较小,所以随着云服务提供者规模的扩大,其平均成本将会呈现迅速下降的趋势。

在如此大规模部署的情况下,稳定性就显得至关重要,再加上云上业务的复杂性和系统的高负载,这都对操作系统的稳定性提出了更高的要求。在阿里云我们有上百万规模的部署,所有对稳定性的挑战是非常巨大的。

另外,随着云计算规模的扩大,每一点的优化和性能的提升都会带来可观的经济收益。但云架构中单单某一层优化很难有可观的性能收益,这需要从硬件平台到系统软件,再到应用层全栈协同。

而这里操作系统恰恰处于中间的最为关键的点,它向下抽象物理IT资源,并利用抽象的资源向上支持应用。所以如何优化云计算操作系统提供全栈的集成和优化能力,这就成为了云操作系统的新机会,也是云平台的核心竞争力。

CSDN:像华为等巨头也入局并提出了新的操作系统,那么,阿里在开源操作系统上做出的调整与其他巨头有什么不同?

马涛:这里就要提到我认为云时代操作系统的第二个挑战,就是异构平台及特性的快速引入需求。

随着智能化对云计算能力需求的增长和IT产业的变革,推动了多CPU架构的快速演进,我认为将来任何一朵云都不会运行在单一的计算架构之上。所以这需要操作系统能够发展开放的硬件生态,完善的支持跨平台架构,同时,每一个硬件平台的迭代和能力的演进在不断加速,但传统的一些操作系统发行版的版本升级速度偏慢,没有办法把新硬件平台的能力及时带给云上丰富的应用。

大家经常会发现,一个硬件的特性可能已经存在1-2年甚至更长的时间,一些集成了这些特性的操作系统从才会姗姗来迟,这让应用无法及时的利用这些硬件的红利,让云平台的资源被浪费,让新硬件迭代的速度也大大降低。所以我们希望能够通过云平台的操作系统让客户更快的体验到各种各样的新硬件带来的技术红利。

从这一点上来说,我们做操作系统和Intel这些硬件厂商做操作系统的诉求是不一样的,他们更看重的是自己的硬件生态,比如CPU。而我们则需要考虑云客户的需求如何得到更好的快速满足。

CSDN:你们在开源操作系统上的下一个着力点是什么?

马涛:除了前面提到的稳定性、性能、异构性之外,云原生也是我们发力的一个重点。云原生加速了应用和基础设施的解耦,充分释放了云的弹性。云原生让开发者更加关注自身的业务应用,基础设施自身的复杂性则完全下沉到用户不可见的领域。同时对于云原生基础设施而言,它对应用的服务边界在上移,其系统软件栈在不断下移,这对云原生系统层提出的不少新的要求和挑战。

第一,资源粒度会更加细致。相较于传统的虚拟机时代的业务类型,云原生应用对于资源的需求类型有了变化,从传统机器虚拟化的资源即虚拟机形态,到虚拟OS的资源(即容器形态),再到虚拟运行时的资源(比如类似于函数计算形态的FaaS),应用对于资源的抽象层级要求更高以及粒度要求更细。

第二,弹性速度需要更快。云原生业务天然伴随着对快速弹性的需求以及短时运行等特征,要求云基础设施能够在短时间内,快速地提供资源,并且能够承受资源频繁的创建、销毁所带来的压力。

第三,性能要求更高。在云原生场景中,用户更专注于应用逻辑,更多的系统技术栈则下沉到基础设施,同时系统服务边界在上移。这样就给底层系统更多的施展空间,因为原有一些分层边界可以被打破,可以融合和垂直优化。

第四,安全隔离更强。随着云原生加速朝着Serverless计算架构演进,应用与基础设施彻底解耦合,用户只需关心自己的应用,而云原生系统不断下移。容器作为云原生的支撑技术,区别于之前的虚拟机计算架构,Serverless计算架构中云上的多租户安全成了一个全新的挑战。

针对这些云原生系统的新要求和新挑战,我们的操作系统也要做相应的变化,并做大幅度的革新才能满足快速增长的云原生应用需求。

CSDN:生态也是构建开源操作系统的非常重要的部分,阿里是怎么搭建相应的生态和社区的?

马涛:操作系统处于一个至关重要的中间层,它向上对接业务,向下对接硬件,所以我们希望围绕Alibaba Cloud Linux开源操作系统来构建一个支持多架构的、开放的操作系统生态。

我们希望和IHV合作伙伴一起,把新硬件平台能力带给应用,充分挖掘平台性能,推动硬件平台的快速演进和迭代;希望和OSV一起提供更优质的,适用于云计算的操作系统服务;希望和ISV让一起让应用更好的长在云上,提升端到端的性能,推动业务的敏捷性;希望和开发者和用户一起,打造更适合云计算的开源操作系统,构建云原生系统底座,推动云原生的发展。

CSDN:从阿里做开源操作系统的经验出发,阿里在做这些开源基础软件时踩过的坑有哪些?

马涛:开源基础软件面临的最大问题主要是两个,一个是生态建设。从2010年开始,阿里集团淘宝部门的内核团队就开始做操作系统内核的开源工作,之前我们的工作虽然在国内外取得了很大的成绩, 但是由于其他厂商无法深度参与,所以发展的一直不温不火。痛定思痛,我们觉得一定要做好生态,才能保证基础软件社区的健康发展。

CSDN:你也曾在Oracle工作过,相比国内外做开源操作系统,目前国内操作系统的发展又哪些优点和不足?

马涛:我在Oracle工作过4年多,从事操作系统相关的研发工作。相比而言,国内在操作系统领域的人才储备相对薄弱,无论是从业人员的数量还是职业技能方面都还处于劣势。当然我也非常欣喜的看到最近这些年包括阿里、腾讯等在内的很多国内企业都开始加大了在操作系统领域的投入,我们正在迎头赶上。

CSDN:有哪些建议提供给国内做开源基础软件的公司?

马涛:基础软件相对而言是入门是比较困难的,如何吸引更多的开发者参与开发是非常重要的。如果没有大量的开发者,我们就无法聚集群体智慧,没有办法做到长期稳定的发展。这里Linux Kernel通过一些非常简单的入门级别的修复来吸引新开发者的加入,非常值得国内开源基础软件的学习。

CSDN:从开发者的角度,操作系统作为三大基础软件之一,想要入局必须具备深厚的基本功,你对操作系统之路上的开发者们的技术成长上,是否可以分享一些经验?

马涛:这个话题很有意思。我以前是从Oracle开始做操作系统的,当时主要是给Linux内核贡献一些OCFS2(Oracle Cluster File System V2)的代码。我的第一个内核patch发生在2007年,当时我发现了内核代码的一段函数有一个变量是没用的,所以就写了个移除这个变量的patch发送到内核社区,并很快就被接受了。这件事情让我意识到Linux操作系统社区对于新人是非常友好的,而我也有能力去为操作系统做一些事情,也促成了我后面在操作系统十几年的持续耕耘。

有意思的是,由于是第一次写patch,所以我还把自己的名字写错了,在committer一栏写成了Tao Mao。所以如果你想进入操作系统研发,第一步并不是那么难,只要你有意愿,也一定能从一些一些小事做起并最终成就自己。

有了一个好的开始之后,第二个非常重要的是兴趣。我始终觉得兴趣是驱动我们不断学习,不断进步的基础。我非常清楚的记得,自从进入Linux操作系统的内核研发之后,基本上每个春节我都是在写代码中渡过的,因为那段时间自由度比较高,另一方面可以和国外工作的同事更好的交流。

回想起来,从代码中体会到参与感和幸福感是我能持续坚持做操作系统研发非常大的驱动力。

CSDN:你怎么看近年来“国产”基础软件的开源热度?国内开发者面临的挑战和机遇有哪些?

马涛:随着云计算的发展,IT基础设施在面临一场新的变革。在这场变革的浪潮中,无论是公共云还是混合云,以阿里为代表的新兴云计算厂商,在全球云计算的激烈竞争中表现亮眼。云计算带来了业务场景的新变化,带来了底层硬件的新需求,云原生意味着编程模型的革命,这些都对于我们基础软件是新机遇、新挑战,目前我们和国际顶尖厂商正在同台竞技,力争定义出适应下一代云计算发展的基础软件。

CSDN:如果要推动中国开源操作系统或者开源生态发展的话,你最希望与国内开发者一起推动什么样的共识和行动?与CSDN这样的开发者社区合作的话,你希望双方为开发者做些什么?

马涛:操作系统是基础软件的核心之一,也是核心竞争力之一。过去由于国内在底层硬件技术方面长期和国际顶尖水平有一定的差距,导致我们的操作系统研发一直有些落后。但是随着云计算最近几年的蓬勃发展,我们正处在一个快速变革的时代,云上操作系统应该长成什么样其实是一个非常崭新的话题,对我们是一个巨大的机会。

我期待能够和国内开发者一起定义出云时代的操作系统标准,也希望能够和CSDN一起培养出云时代的操作系统研发人员,并通过云时代的操作系统影响云时代上层应用软件生态的发展。

img