关于nginx:为数十万台设备更新内部Linux发行版Google如何做到

0次阅读

共计 1304 个字符,预计需要花费 4 分钟才能阅读完成。

谷歌外部应用了许多不同的操作系统平台,其中包含 Linux。15 多年前,谷歌抉择基于 Ubuntu LTS 构建外部 Linux 发行版 Goobuntu,次要是看中了 Ubuntu 具备用户敌对、易于应用的个性,以及提供了许多优良性能。谷歌外部应用了许多不同的操作系统平台,其中包含 Linux。15 多年前,谷歌抉择基于 Ubuntu LTS 构建外部 Linux 发行版 Goobuntu,次要是看中了 Ubuntu 具备用户敌对、易于应用的个性,以及提供了许多优良性能。此外,LTS 会取得 Canonical 提供 2 年以上的安全更新。依据官网介绍,Goobuntu 是谷歌长期以来始终应用的 Linux 发行版。不过 Ubuntu LTS 的两年更新周期意味着谷歌必须在操作系统 EOL 之前,对超过 10 万台设施中的每台机器进行降级。这是一项十分艰难且耗时的工作,毕竟每两年让所有工程师从头开始配置他们的工作空间,这对生产力是重大的打击,并且从经济角度来看也是一个不负责任的选项。在每个操作系统应用周期内,谷歌还面临软件包重大版本升级的挑战,因为这可能须要对软件配置进行重大扭转。为了让这个过程自动化,谷歌工程师编写了一个无人值守的降级工具来解决很多常见的问题。这种“自动化降级”意味着大多数谷歌员工无需通过重新安装机器,并从新创立所有配置来手动降级。不过为了实现这一点,谷歌须要对降级过程进行全面测试,并查看所有已更改的次要软件包是否持续运行(在 Ubuntu 中,次要版本之间的降级可能多达数千个软件包)。有时,在产生软件包弃用且工程师必须决定如何推动的状况下,很难提供自动化。据称,谷歌实现所有 Goobuntu 的降级通常要花费一年的工夫,整个过程对于团队来说是一个微小的压力。而且很多时候他们遇到的一些 bug 曾经在上游被修复了,但这些改良却从未被合并到所应用的 LTS 版本。因而谷歌转向了滚动更新发行版,不过它没有抉择出名的滚动更新发行版 Arch Linux,而是基于 Debian 测试分支构建了 gLinux Rodete (Rolling Debian Testing)。

抉择 Debian 是因为它有着宏大的社区和软件库,还能够应用 Debian 格局的现有外部软件包和工具。而且 Ubuntu 也是基于 Debian,迁徙过来更容易顺畅。Debian 稳固分支也是差不多两年公布一次大更新,但其测试分支是滚动更新的。滚动更新意味着须要尽可能避免新版本对现有工作流程造成毁坏,为了治理从源代码构建所有上游软件包的所有这些简单工作,谷歌构建了一个名为 Sieve 的工作流零碎。通过运行一个虚拟化测试套件,确保外围组件和开发者工作流程都不会被新版本软件包毁坏。谷歌示意,Goobuntu 最初一个版本基于 Ubuntu 14.04 LTS(代号 Trusty)。Rodete 的开发始于 2015 年,2017 年,谷歌开始将机器迁徙到 Rodete,并在 2018 年底实现所有迁徙。2019 年初敞开了最初一批运行 Goobuntu 的机器。2020 年中,Rodete 齐全跟上了 Debian Bullseye 的公布工夫。将来谷歌打算与上游 Debian 更严密地单干,并奉献更多的外部补丁来保护 Debian 软件包生态。

正文完
 0