谷歌講述從Goobuntu轉向gLinux內部桌面發行版的心路歷程


位於加州山景城的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 桌面發行版。


相關推薦

2024-03-01

版仍在繼續開發中,在過去的一個月裡,它在打包GNOME45桌面組件、使用systemd開發無狀態系統支持和其他功能方面取得進展。今天晚上,Ikey發佈關於SerpentOS的最新月度狀態更新,概述二月份的亮點。這個獨立 Linux 發行版的一些

2024-05-10

洛基 Linux 9 用戶可以通過終端或 GNOME 軟件、KDE Discover 等桌面工具使用 dnf update 更新到 9.4 版。來自其他基於 Enterprise Linux 9 的發行版的用戶可以使用 migrate2rocky 腳本過渡到 Rocky Linux 9.4。有關今天發佈的 Rocky Linux 9.4 的下載和更多

2023-03-09

應用程序,如前所述,它配備純凈版的GNOME--如果你是該桌面環境的粉絲,那就再適合不過。解更多:https://vanillaos.org/2023/03/07/vanilla-os-2.0-orchid-initial-work.html

2023-11-26

andrivaLinux發行版的定點發行版,也是在二月份發佈Plasma6.0桌面之前使用Plasma5桌面的最後一個版本。升級到 OpenMandriva Lx 5.0 意味著獲得 Linux 6.0 LTS 內核、Mesa 23.3-rc4 圖形驅動程序、最新的 KDE Plasma 5 和 KDE Frameworks 5 組件以及其他各

2024-03-12

LinuxMint正在開發一款新的IRC客戶端(但不要叫它IRC客戶端)。基於Ubuntu的發行版目前的默認軟件集包括Hexchat。IRC並不像Discord或Telegram那樣時髦,但它是一種自由、開放的標準,沒有單一實體控制,帶寬相對較低、可互操作且高

2024-03-25

軟的WindowsSubsystemforLinux(WSL)讓任何人都能直接運行Linux發行版。有WSA,計算機就不需要雙啟動Linux或創建虛擬機,但該功能僅限於Windows終端。微軟明白有些人可能不習慣使用命令行,因此正在創建一個用於管理Linux發行版的圖

2024-03-11

,而 Ubuntu 則是每六個月發佈一個新版本,更新到最新的桌面、內核和基礎架構。除 Ubuntu 6.06 版本,Canonical 20 年來一直保持著這一節奏。從一開始,Canonical 的使命就是大膽的:創建一個與專有操作系統一樣功能豐富、用戶友好

2022-07-31

LinuxMint21已經正式發佈,作為流行的桌面Linux發行版的最新版本,它建立在Ubuntu之上。最值得一提的是,LinuxMint21將其基礎從Ubuntu20.04LTS過渡到今年早些時候發佈的Ubuntu22.04LTS。隨著向兩年前的Ubuntu軟件包的轉移,這個Linux發行版擁

2024-07-17

據透露,這次2024雷軍年度演講將會完整呈現小米造車的心路歷程。雷軍在2023年的演講中分享過去30多年經歷的幾次關鍵成長和感悟,並說很多金句,如“一個人能力再強,也是有限的,找互補的朋友一起幹,更容易成功。”“

2024-07-17

化透露,這次2024雷軍年度演講將會完整呈現小米造車的心路歷程。據悉,在2023年的演講中,雷軍分享過去30多年經歷的幾次關鍵成長和感悟。同時也說很多金句,比如一個人能力再強,也是有限的,找互補的朋友一起幹,更容

2022-08-20

Linux7.x系列的第2個重大維護更新,基於Debian並搭載KDEPlasma桌面環境。NeptuneLinux7.5代號為“Ada”,基於Debian11.4“Bullseye”系列,並采用來自DebianBackports庫的Linux5.18.2。Download Neptune 7.5上個版本 Neptune 7.0 於 8 個月前發佈,是首個基於

2024-03-05

覽器、操作系統和搜索引擎市場份額的網站,它報告說,桌面Linux的市場份額首次超過4%(Statcounter將ChromeOS記錄為一個獨立的操作系統,盡管它是基於Linux的)。Statcounter沒有解釋市場份額增加的原因,但我們可以推測其中的原因

2022-08-02

x發行版,開發者隻需構建一次,就能夠在任何Linux發行版桌面環境運行。能夠做到這一點,是由於它具備穩定且獨立的運行環境,應用可自行控制依賴與系統獨立;同時也提供包含安全隔離的沙箱容器 ,玲瓏應用運行在獨立的

2022-08-17

給出明年該遷移到較新的RHEL9、RockyLinux、AlmaLinux、Ubuntu等發行版的建議。每一年,VFX 參考平臺都會發佈一份軟件建議列表,例如針對 Windows / macOS / Linux 等操作系統的編譯器版本,macOS、Qt / Python / Numpy / OpenEXR / OpenVDB 等組件的最