位于加州山景城的 Google 總部辦公室,遍布着 Windows、Chromebook、Mac 等設備。但除了依靠 Linux 服務器之外,這家科技巨頭其實還擁有自己的 Linux 桌面發行版。盡管外界知之甚少,但 Google 一直在積極醞釀。而首個版本,就是基于 Ubuntu 改造出來的 Goobuntu 。
(來自:Google Cloud Blog)
2018 年,Google 又将其内部 Linux 桌面,從 Goobuntu 遷移到了基于 Debian 的 gLinux 發行版。
該公司解釋稱:
Ubuntu LTS 的兩年期限,意味着我們必須在操作系統支持周期結束前,對超過 10 萬 的設備進行升級。
而 Goobuntu 艦隊的完整升級工作,需要耗費一年中的大部分時間,意味着窗口期隻剩下一年。
再加上對工程 PC 的完全定制所需的耗時,這麼做實在過于昂貴和痛苦。更難受的是,在下一個 LTS 輪回中,Goobuntu 團隊還得重新再過一遍。
整個過程對我們來說是一個巨大的壓力因素,除了要搞定成百上千的問題,還得努力幫助解決各種極端狀況。
在受夠了這一切之後,我們也不難理解為何 Google 要從 Ubuntu 轉向 Debian Linux 了。
需要指出的是,該公司打造了一個特殊的 Debian 滾動發行版 —— 它就是 GLinux Rolling Debian Testing(Rodete)。
其設想是為用戶和開發者帶來最佳體驗,在創建并認為已準備好投入生産環境時盡快為他們提供最新的補丁和更新。
同屬此類的發行版,還包括了 Arch Linux、Debian Testing 和 openSUSE Tumbleweed 。
不過對于 Google 來說,此時最迫切的目标是擺脫兩年的升級周期限制。
正如向持續集成 / 部署(CI / CD)轉變所表明的那樣,這些增量更改運行很是良好。即便遇到問題,也能夠更加輕松地控制和回滾。
為了讓所有這些工作不耗費大量時間和精力,Google 甚至打造了一套全新的 Sieve 工作流系統。
每當發現一個新版 Debian 軟件包時,它就會開始一個新的構建。此外考慮到通常單獨的包必須一起升級,這些包也被成組放置。
接下來便是使用完整的系統安裝、引導和本地測試套件,分别對每組包進行測試 —— 包構建可在幾分鐘内完成,但測試可能需耗費一小時。
完成後,所有新軟件包都将與最新的 gLinux 軟件包池合并。然後當 Google 決定将其發布到生産環境時,團隊就會啟用該池的快照。
最後才是向整個艦隊推送新版本,但不僅僅是将其轉儲給用戶,而是基于站點可靠性工程(SRE)原則來逐步推進(比如 incremental Canarying 增量嘗鮮),以避免遭遇重大失誤。
多年來,Google 在這方面一直做得很好。且得益于 Sieve,今天整個 gLinux 開發團隊,都由一個在成員之間輪值的發布工程師來擔當。
即使想要對所有機器進行升級,也無需使出多大的力氣去推動 —— 因為它砍去了從 alpha、beta 到通用發布(GA)的多個階段。
更棒的是,由于采用了滾動發布計劃,Google 可以快速修補整個艦隊的安全漏洞、而不至于影響整體的穩定性。
而在此之前,安全工程師們必須仔細檢查每個 Debian 安全公告(DSA),以确保所有修複都已囊括其中。
此外 Google 改進了測試套件和運行關鍵開發人員系統的關鍵集成測試,合作夥伴團隊會評估其最新 Linux 内核 / 發行版所提供的穩定體驗。
我們對自動化管道中的一切強烈渴望,已經顯著減少了團隊的工作量和壓力。
現在還可上報錯誤、以及與其它庫版本的不兼容性,同時确保 Google 工具在 Linux 生态系統中更好地工作。
展望未來,Google 團隊還将通過與上遊 Debian 展開更緊密的合作、貢獻更多的内部補丁,來幫助維護 Debian 軟件包的生态系統。
這一切聽起來都很棒,但 Computer World還是有兩點要指出:
,首先,對于某些組織來說,LTS 長期支持版本仍有其存在的意義。如果你所在的企業并不需要最新、最閃耀的程序,Ubuntu 或 Red Hat LTS Linux 仍是個不錯的選擇。
其次,CW 并不認為 Google 已經發展到了能夠讓整條滾動發行版的自動化生産管道,精進到隻需一名工程師便可維護超過 10 萬用戶的 Linux 桌面。
更重要的是,如果 Google 有足夠的自信,那不妨直接将 Sieve 代碼分享出來,以便大家都可輕松上手滾動更新的 Linux 桌面發行版。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!