容器化,原子化發行版以及 Linux 的未來
自從 Linus Torvalds 在 1991 年發布 Linux 以來,Linux 已歷經漫長的歲月。它已經成為企業級領域的主流操作系統。同時,我們看到桌面級領域出現了很多改進和調整,但在過去的 25 年來,主流 Linux 發行版的模式很大程度上沒有變化。基於軟體包管理的傳統模式依然統治著桌面級和伺服器級市場。
但隨著 Google 發布了基於 Linux 的 Chrome OS,情況出現了微妙的轉變,Chrome OS 採用鏡像模式。Core OS (目前歸屬於 Red Hat) 受 Google 啟發推出了一款操作系統 Container Linux,主要面向企業級用戶。
Container Linux 改變了操作系統更新的方式,也改變了應用分發和更新的方式。這會是 Linux 發行版的未來嗎?這是否會取代基於軟體包的傳統發行版模式呢?
三種模式
SLE (SUSE Linux Enterprise) 的產品管理總監 Matthias Eckermann 認為目前存在 3 種模式,而不是 2 種。Eckermann 提到:「除了傳統模式(RHEL/SLE)和鏡像模式(RedHat 的 Atomic Host),還存在第三種模型:事務模式。SUSE CaaS 平台 及 SUSE MicroOS 就採用這種模式。」
差異有哪些
Linux 用戶對傳統模式非常熟悉,它由獨立的軟體包和共享庫組成。這種模式有獨特的優勢,讓應用開發者無需將共享庫捆綁在應用中。由於庫不會多次引入,使得系統簡潔和輕便。這也讓用戶無需下載很多軟體包,節省了帶寬。發行版對軟體包全權負責,通過推送系統級別的更新,可以輕鬆地解決安全隱患。
RHEL (Red Hat Enterprise Linux)的產品管理總監 Ron Pacheco 表示,「傳統的打包方式繼續為我們提供精心構建和優化操作系統的機會,以便支持需要經過時間考驗的任務關鍵型工作負載。」
但傳統模式也有一些弊端。應用開發者受限使用發行版包含的庫,使其無法從發行版不支持的新軟體中獲益。這也可能導致不同版本之間相互衝突。最終,傳統模式給管理員增加了挑戰,使其難以讓軟體包一直處於最新版本狀態。
鏡像模式
鏡像模式應運而生。Eckermann 表示,「鏡像模式解決了傳統模式遇到的問題,它在每次迭代更新時替換整個操作系統,而不是單個的軟體包」。
Pacheco 表示,「當我們用鏡像作為操作系統的代名詞進行討論時,我們真正關心的是可編程式的開發和部署以及更好的集成式生命周期管理」,基於 RHEL 搭建的 OpenShift 被他用作示例。
Pacheco 認為基於鏡像的操作系統是一種延續,從手工打造並部署鏡像,到可大規模管理的高度自動化基礎設施;無論客戶使用哪種類型,都需要運行同樣的應用。他說,「你肯定不希望使用一個完全不同的部署模式,這需要重做很多工作」。
鏡像模式用新的庫和軟體包替代來整個操作系統,但也面臨一系列問題。在鏡像模式中,需要重建鏡像才能適應特殊環境的需求。例如,用戶有特殊需求,需要安裝特定硬體的驅動或安裝底層監控功能,鏡像模式無法滿足,需要重新設計功能以實現細粒度操作。
事務模式
第三種模式採用事務更新,基於傳統的軟體包更新,但將全部的軟體包視為一個鏡像,就像鏡像那樣在一次操作中更新全部軟體包。
Eckermann 表示,「由於安裝或回滾時操作對象是打包在一起的單一軟體包,用戶在需要時能夠做相應的調整,這就是差別所在。結合傳統模式和鏡像模式的優點,避免兩種模式的缺點,事務模式給用戶提供了額外的靈活性。」
Pacheco 表示,將精心構造的工作負載部署成鏡像的做法越來越成為主流,因為這種部署方式具有一致性和可靠性,而且可以彈性部署。「這正是我們用戶目前的做法,部署環境包括在預置設備或公有/私有雲上創建並部署的虛擬機,或在傳統的裸機上。」
Pacheco 建議我們將這幾種模式視為操作系統角色的進化和擴展,而不是僅僅「使用場景的比較和對比」。
原子化更新的問世
Google 的 Chrome OS 和 Core OS 為我們普及了事務更新的概念,該模型也被 Red Hat 和 SUSE 採用。
Eckermann 表示,「我們必須認識到,用於容器主機的操作系統已經不再是關注點 —— 至少不是管理員的關注點。RedHat Atomic 主機和 SUSE CaaS 平台都解決了該問題,實現方式在用戶看來很相似。」
SUSE CaaS 平台、Red Hat Atomic Host和 Container Linux (前身是 Core OS)提供的 不可變基礎設施 推廣了事務更新的使用。Red Hat 高級技術產品經理 Ben Breard 表示,「在事務模式中,主機總是會變更到已確認正確的新狀態,這讓我們更有信心執行更新,進而實現更快速的功能流、安全優勢以及易於採用的操作模式。」
這些新型操作系統使用 Linux 容器將應用與底層系統隔離,解除了傳統模式中基礎設施更新的諸多限制。
Breard 補充道,「當編排層可以智能處理更新、部署,甚至最終實現無縫操作時,我們才會真正意識到該模式的威力和好處」。
展望未來
Linux 的未來會是什麼樣子?不同的人會給出不同的回答。容器支持者認為未來屬於容器化的操作系統,但依然擁有龐大市場的 Linux 供應商顯然不這麼認為。
當被問到原子化發行版是否會在很久以後將替換傳統發行版時,Eckermann 表示,「如果我回答肯定的,那麼表示我順應潮流;如果回答是否定的,意味著我還是站在傳統陣營。然而,我的回答是否定的,即 atomic 發行版在很久以後也不會替換傳統發行版,傳統負載和容器化負載將在數據中心、私有雲以及公有雲環境中共存。」
Pacheco 認為,從 Linux 的部署增長情況來看,一般情況下很難想像一種模式替換另一種模式。與其將多種模式視為相互競爭的關係,不如將原子化發行版視為操作系統進化和部署的一部分。
此外,在一些使用案例中,我們需要同時使用多種 Linux 發行版。Eckermann 表示,「想一想銀行和保險公司中大量的 PL/1 和 Cobol 系統。再想一想內存資料庫和核心數據匯流排系統。」
這些應用大多數無法進行容器化。就我們目前來看,容器化不是解決所有問題的萬金油。總是會同時存在多種不同的技術。
Eckermann 相信,隨著時間的推移,大量新的開發和部署將採用容器化,但仍然有不錯的理由,促使我們在企業級環境中保留傳統的部署方式和應用。
Pacheco 認為,「用戶需要經歷業務、設計和文化的轉型,才能最大化基於容器的部署帶來的優勢。好消息是業界已經認識到並開始大規模轉變,就像歷史上大型機轉變成 UNIX,UNIX 轉變成 x86,x86 轉變成虛擬化那樣」。
結論
很明顯,未來容器化負載的使用量會持續增長,也就意味著原子化發行版的需求量持續增長。與此同時,仍會有不少工作負載運行在傳統發行版中。重要的是,這兩類用戶都在新模式上大規模投入,以便市場改變時可以做相應的策略改變。從外部觀察者的視角來看,未來屬於事務/原子化模式。我們已經見證了數據中心的發展,我們花了很長時間完成了從每個伺服器一個應用到「函數即服務」模型的轉變。Linux 發行版進入原子化時代的日子也不會太遠了。
via: https://www.linux.com/blog/2018/4/containerization-atomic-distributions-and-future-linux
作者:SWAPNIL BHARTIYA 選題:lujun9972 譯者:pinewall 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive