基础软件黄金时代,百度智能云为什么选择了openEuler?

作者 | 蔡芳芳

采访嘉宾 | 王耀

6 月 10 日,openEuler Developer Day 2021 在北京召开。会上,百度智能云杰出研发架构师王耀宣布,百度已经加入 openEuler 社区,基于 openEuler 打造的百度 Linux 智能云操作系统将在近期正式上线百度智能云,成为百度智能云计算实例的公共镜像,目前该系统正在做最后阶段的测试工作。此外,未来百度智能云也会将更多 AI 技术沉淀贡献给 openEuler 社区。

作为首家加入 openEuler 社区的头部互联网大厂,百度智能云为什么“相中”openEuler?在操作系统层面百度正在做哪些工作?对于 openEuler 未来的发展,百度智能云还有什么样的期待?带着这些问题,InfoQ 独家采访了百度智能云杰出研发架构师王耀,请他跟我们聊聊百度智能云与 openEuler 的故事。

开源与开放

自 2010 年加入百度之后,王耀一直从事基础架构相关工作,不仅见证了开源大潮在国内的兴起,也亲身经历了百度在开源战略上的转变。目前,开源软件在百度内部技术栈中已经有相当广泛的使用。在选用第三方开源软件时,百度主要基于自有的《第三方开源软件引入规范》来判断,该规范的核心是两个鼓励、两个禁止——鼓励使用开源软件,尤其是各语言指导委员会推荐的开发库;鼓励使用各种语言的标准包管理方式来使用开源软件;禁止使用安全部列明的高危开源软件;禁止直接拷贝代码到业务的代码库。

与此同时,百度也积极对外贡献了很多优秀的开源项目,当前最流行的Web 可视化库之一 Apache ECharts、分布式 OLAP 存储 Doris、深度学习平台飞浆 PaddlePaddle、自动驾驶平台 Apollo 等都是其中的佼佼者。在王耀看来,国内开源社区正在发生一些好的变化,即摒弃了原先国内公司可能因为自身利益而拒绝使用另一家公司开源的组件这种做法,前提是这个开源项目做得足够好且足够开放。

而这次百度与 openEuler 社区的合作,再一次印证了这个变化。

百度与 openEuler 的故事

百度智能云的工程师每天都要面对一些客户的 Guest 问题,这些 Guest 问题涉及各种各样的发行版。作为云厂商,百度智能云一直想要构建一套自己的发行版,一方面可以降低维护代价,另一方面可以更灵活的引入一些 PV 优化来实现更好的虚拟化性能。但这项工作一直没能开展起来,随着 Red Hat 宣布停止维护 CentOS 8 的消息叠加外部信创的潮流,促使百度智能云下定决心启动构建自己的操作系统。

经过深思熟虑之后,百度智能云团队决定还是要背靠一个开放的社区,基于社区版本做一些定制优化、推出自己的发行版操作系统。王耀表示,现在有越来越多的工作负载跑在云上并且与 AI 相关,百度智能云团队想要做一款操作系统,依托于百度智能云,更多面向云环境、虚拟化环境和 AI 负载做针对性优化,这是做百度智能云 OS 的初衷。

那到底要选择哪一个开放社区呢?

百度智能云团队与 openEuler 最初的结缘颇有些巧合成分。在决定要做百度智能云 OS 之后,团队开始调研各大操作系统社区。最初,团队对于openEuler 社区的开放性还是有一些顾虑的,但经过深入了解后,百度智能云团队打消了顾虑。

王耀认为,openEuler 社区确实做到了足够开放,openEuler 支持多种不同的内核、芯片和体系架构,社区中既有像飞腾、安培、兆芯等芯片厂商,也有像麒麟、统信等操作系统厂商,早在 2020 年 12 月发布的 openEuler 20.09 版本中就已经做到来自华为以外的贡献比例接近 40%,这些都印证了 openEuler 社区生态的开放性和活跃度,“扭转了我认为它可能有太多华为烙印的偏见”。

其次,openEuler 在技术自主方面也做得足够好,它是基于软件的 up stream 最新版本直接 build 并构建整个操作系统,这跟早些年 Linux From Scratch 从源码编译一个操作系统异曲同工,“这是一件非常酷、非常了不起的事情”。王耀表示,开放和自主是百度智能云选择 openEuler 非常核心的两个原因。

与此同时,结合国内软件发展趋势,加入 openEuler 这个国内最大的操作系统开放社区、基于 openEuler 来构建百度自己的发行版操作系统,对于长远发展来说也是一个更好的选择。openEuler 在新芯片支持和新内核特性支持上做了非常多的工作,为其大范围的推广奠定了基础。

目前百度智能云团队与 openEuler 的合作只是刚刚开始,现阶段双方正在合力构建百度智能云自己的发行版。当前还在做一些比较细致的测试和调优,主要是为了把百度的很多测试项优化点都做进去,最终目标要让这个发行版操作系统在每个方面都优于 CentOS 8。

根据百度智能云团队的规划,基于 openEuler 构建的百度 Linux 智能云操作系统不仅会用在百度智能云的计算实例上,也会在百度内部推广使用。未来百度智能云 OS 主要会应用于以下三个场景:

  • 第一个场景是针对云上的虚拟化场景,百度会做一些 Guest 和Host 协同的虚拟化优化工作,同时将虚拟化的 Cost 做得越来越小,甚至接近于 0 损耗,目标是使上了虚拟化之后比以前跑在物理机上性能更好;
  • 第二个场景是针对 AI 工作负载的场景,百度会将在 AI 方面的技术沉淀都集成到这个操作系统里去。对于很多 AI 开发者来说,构建 AI 开发环境是一项步骤极其繁琐且非常耗时的工作,但通常又不得不做。百度希望能把诸如驱动安装、各种开发库安装、管理软件安装等工作都内置到新的发行版中完成,优化 AI 开发者的开发体验,使他们可以更轻松地启动 AI 工作负载;
  • 第三种场景是百度自用场景,即部署在百度 IDC 服务器上使用,实现 CentOS 替代。

在百度 Linux 智能云操作系统正式发布之后,百度智能云团队的同学计划加入到 openEuler 社区的内核、AI、虚拟化等 SIG 组中,并承担一些软件包的维护工作,未来也会把更多百度在 AI 方面的能力逐步贡献到 openEuler 社区中,其中包括百度即将开源的云原生机器学习核心 Paddle Flow。

基础软件的黄金时代

近几年,在产业发展、政策等多方面因素的助推之下,我们见证了国内基础软件领域的快速崛起。在王耀看来,现在是基础软件的黄金时代,也是体系结构和 AI 应用的黄金时代。AI 应用、产业互联网和开源已经发展到一个相对比较成熟的阶段,正是从事基础软件研发的优秀人才可以大展身手的时候。王耀相信,未来中国一定会涌现出自己的 Oracle、MongoDB 和 ElasticSearch,在基础软件层面会成长出更多市值十亿美金甚至百亿美金的创业公司,而开源将在其中发挥非常重要的作用。

再回到开源项目本身,如果一个开源项目要持续、稳定的运营下去,并被更多开发者和企业所采纳,王耀认为有两点非常关键。首先这个开源项目一定是面向某一个场景的,能够解决这个场景的某个问题,有比较大的社会价值,这应该是做开源项目的出发点;其次这个开源项目要足够开放,能够吸引大量个人开发者、企业开发者加入社区共同努力,单一或少数几家公司面临的场景和投入的资源都是有限的,如果要让开源项目的社会价值发挥到最大,就需要有更多组织一起参与一起贡献。

对于 openEuler 社区未来的发展,王耀有很高的期望:

我希望 openEuler 能够成长为一个国际知名的操作系统社区,就像CentOS 一样,将视野拉到全球层面,才能发挥更大的社会价值。

百度是首个加入 openEuler 社区的互联网公司,王耀希望未来 openEuler能够吸引更多国内互联网公司、运营商加入,甚至逐步吸引一些国外企业也加入到社区里,如此一来,openEuler 才有可能真正成为全球知名的操作系统社区。王耀也非常期待,百度这次与 openEuler 社区的合作能够在国内开源社区起到一个比较好的示范作用。

开源需要大家共建,而不是你玩你的、我玩我的,大家一起玩才能把社区做大。早些年国内很多企业只有竞争没有合作,但最近情况正在发生变化,企业之间很多时候既有竞争又有合作,甚至在开源社区中慢慢开始合作大于竞争,这是一个好兆头。对于未来国内基础软件和开源软件的发展来说,无疑是一件好事。


点个在看少个 bug 👇