谷歌数据中心转向并设立新项目
最近,Google推出了ProjectIcebreaker内核项目,目的是解决两个问题:紧跟主线内核,允许Google为产品引入的新功能更容易地提交给上游内核;可以在内核生产环境下运行任何Google程序,确认上游更改后再更改Prodkernel内核版本。
谷歌数据中心转向并设立新项目
数据中心是谷歌使用的计算机软件和大型硬件资源等技术基础结构,用于提供服务。在美国共有13个;在欧洲有6个;在亚洲有2个;南美洲有1个。
googuxkernel是由Google数据中心产品系统运行的内核,其基础是老版本的Linuxkernel,google提供了大约9000个补丁,其中包括各种内部API、硬件支持、性能优化和其他必需的微调。大约每两年,这些补丁就被移植到Linuxkernel的更新版本中。
介绍项目Icebreaker
google发现这种工作模式面临着越来越大的挑战,原因包括:内核在两年内发生了巨大变化,追踪bug非常耗时。但是Google也不能直接使用主干内核,因为主线内核中不存在其工作负载所需的一个特性。更糟糕的是,Google为其产品开发的每个功能都由Prodkernel开发并测试。Prodkernel和主干内核之间的巨大差异使开发变得更加困难。
为此,两名谷歌工程师AndrewDelgadillo和DylanHatch共同参加了2021年北美开放源码峰会,讨论了一个项目,即破冰项目ProjectIcebreaker。
ProjectIcebreaker的主要目的是:
第一,离上游内核很近。这一构想的目的是为每个主要的上游内核发布一个新的内核,使Google为产品引入的新功能更容易地进入上游内核。
其次,可以在该内核的生产环境中运行任意谷歌二进制代码,这将成为一个“真正的产品内核”,在Prodkernel更改内核之前验证上游更改。
这两个目标非常重要,因为团队需要上游更好的参与。
结构
在研究Icebreaker的工作结构时,工程师说,要考虑两个因素:
一方是如何开发功能,以便在Icebreaker内核中部署它们。
另外一方面,这些补丁要如何升级才能将其放入下一个Icebreaker版本的新主线内核。
工程人员哈奇认为,Icebreaker比目前的prokernel方案更适合上游。Icebreaker特性分支是在最近一次以主干内核上进行测试的,因此测试结果更适合于上游。这样开发人员就可以更轻松地为主线提供功能。
风险
Icebreaker还有一些风险:
更大的问题之一是需要进行很多功能分支测试。
而且,功能间的依赖性对Icebreaker也有风险。
此外,Icebreaker的集中度比Prodkernel过程低得多。
另一种风险是,Icebreaker的功能必须接近上游,否则就会再次退化为Prodkernel。但是,当越来越多的补丁加入Icebreaker,并且没有减少合并的补丁,团队就不能保持主线。
现在和将来
山东济南汉码未来了解到当前的Icebreaker基于5.13kernel,最新的内核版本是5.14,而5.15内核仍在发布候选中。
Icebreaker计划在5.15或者5.16的上游抓得紧,这会成为项目的转折点。到那个时候,工程师们就会“乘风破浪”了。其中一个问题就是功能维护者必须每隔三、四个星期重新调整和修正冲突。在Prodkernel模型中,这一现象每两年发生一次。当项目赶上进度时,仅需每十周左右调整一次,且符合主线规划。