從CoreOS到Nano:微操作系統全面降臨容器平臺
譯文一堵新近構建的微型磚墻。
CoreOS、紅帽、Ubuntu、VMware、Rancher以及微軟等廠商都在以自家獨有的方式打造分拆式、面向容器的云規模操作系統。
時至今日,一場面向云技術領域的操作系統王者之戰已經全面展開。但您猜怎么著?沒有任何一套傳統操作系統方案能夠在競爭當中直接勝出!
之所以傳統操作系統無法在這片戰場上取勝,是因為它們在設計當中并未納入云考量要素——換言之,它們太過臃腫。因此,一系列超級精簡且只滿足最低限度需求的新型操作系統正陸續出爐,并將在云領域為現有廠商重新排個座次。
備注:我們會把這些只包含最低限度功能的操作系統稱為微操作系統。大家可能也遇到過將其稱為容器操作系統的情況——這也沒錯,畢竟其設計目標是運行在容器環境當中。
為了具備現實意義,云環境擁有三大考量重點——密度、彈性以及安全性。很明顯,云計算當中涉及諸多重要元素,但密度、彈性與安全性無疑是其中最為核心的特質所在。
也正是這三項要素預示著傳統操作系統將在云環境下失去統治地位,而微操作系統則在這里成為冉冉升起的新星。
微操作系統到底是什么?
概括地講,微操作系統其實是一款專門針對一種目標——即服務器工作負載——且只針對這一種目標設計而成的操作系統。其中沒有任何額外的點綴性內容,例如華麗的圖形用戶界面、桌面生產力應用程序甚至是服務器服務等等,這一切對于微操作系統都是不必要的負擔。沒錯,微操作系統就是這樣一套拆分式、盡可能精簡且不帶任何非必要元素的操作系統。
微操作系統的一大核心宗旨在于以更低的自身體積實現更高功能密度以及更出色的安全性水平?;蛘邚牧硪环N方式來看,由更低自身體積帶來更少復雜性元素、更少安全漏洞、更低補丁需求、更少重啟次數以及更短的啟動時間……總體而言,就是盡可能降低資源浪費。
而且雖然這一切都立足于Linux世界,但這場云環境當中的系統王者之爭已經趨于白熱化,甚至影響到了Windows領域。每個人都希望能夠在這場決定新時代霸主人選的角逐中脫穎而出。
在今天的文章中,我們將評測目前這場令人血脈賁張的微操作系統競爭當中最為重要且極具吸引力的幾位參賽選手。
CoreOS
首先,任何圍繞現代微操作系統議題所展開的討論往往都會以CoreOS作為起點。而在我看來,將CoreOS稱為當下云環境中第一款具有切實影響力的微操作系統也絕非言過其實。
從高層角度來看,CoreOS其實是一款拆分式Linux發行版,其設計目的在于同容器技術相協作——其最初使用Docker容器引擎,但最近開始使用自家打造的rkt容器引擎。(備注:rkt的發音應為‘rocket’,即火箭。)無論配合哪種容器技術,這種對容器機制的高度傾斜使得CoreOS能夠擺脫軟件包管理器以及其它不再必要的載入內容,從而將自身的體積控制在相當體貼的161 MB水平(這一體積為截稿時最新穩定版本的實際大小)。
有鑒于此,CoreOS體積非常小巧且專門面向容器進行設計。不過CoreOS Linux發行版還僅僅屬于CoreOS公司預期成果的組成部分之一。該公司的預期目標可以歸納成以下兩項重點:
- 保護云及互聯網安全
- 為公眾帶來谷歌式的基礎設施方案
說起保護云及互聯網安全這信議題,盡可能簡化更新機制絕對進CoreOS的核心價值取向之一。這款操作系統的更新以鏡像為基礎,這意味著用戶可以隨時對其進行更新,而完整的系統鏡像也將由此實現更新。相較于對多個獨立軟件包及服務進行升級,CoreOS選擇了直接對系統鏡像以及容器進行整體更新的辦法。事實證明這是一種非常理想的系統更新方案,而且使得管理員能夠在必要時更輕松地實時回滾。
而在谷歌式基礎設施方面,CoreOS提供一整套服務套件、用于編排可擴展性容器生態系統并提供覆蓋網絡——具體包括etcd、fleet以及flannel等技術方案。
總體而言,CoreOS是一款歷史最為悠久的微操作系統,其設計目標符合容器以及當前云工作負載的實際要求。此外,它還擁有小巧的體積并支持基于鏡像的原子式更新機制。
#p#
Atomic項目
不甘于人后的紅帽公司也拿出了自己的社區項目,名為Atomic項目。該項目的主旨在于打造出針對云及容器環境進行過優化的Fedora、RHEL以及CentOS版本:
- Fedora Atomic Host
- RHEL Atomic Host
- CentOS Atomic Host
Fedora Atomic Host是一切新鮮創意被轉化為現實的前沿性實驗平臺。RHEL Atomic Host則從Fedora Atomic Host當中提取自己需要的元素,并將其封裝在一套企業級綁定集當中。CentOS Atomic Host則屬于由社區支持的RHEL Atomic Host版本。
與CoreOS類似,Atomic Host同樣屬于以容器為核心、面向云環境進行優化的64位服務器。不過“Atomic”,也就是原子,這一用詞顯然與該服務器的實際體積并無關聯??紤]到這一事實,我們發現Atomic Host在與其它微操作系統進行比拼時,在體積方面恐怕略微處于劣勢。一套CentOS Atomic Host的鏡像在壓縮后一般在數百MB區間,而未壓縮版本的體積則約為1GB。
很明顯,“Atomic”一詞來自于其更新方式。與CoreOS類似,Atomic Host支持基于鏡像的更新機制。
總體而言,Atomic項目提供面向云以及容器環境進行優化的Fedora Linux、RHEL以及CentOS版本,其采用Docker容器引擎并支持基于鏡像的更新機制。
Snappy Ubuntu Core
就在全世界剛剛開始為云計算如癡如狂時,這款新型微操作系統恰好應時而生,Canonical公司(也就是Ubuntu Linux的持有方)的工作人員努力希望為智能手機及平板設備打造一款Ubuntu精簡版本。而接下來的故事卻峰回路轉……當Ubuntu意識到自身需要面向云及容器環境拿出一套經過優化的微操作系統方案時,才發現自己早已出于不同理由而做好了充分的準備。
讓咱們長話短說,這就是Snappy Ubuntu Core的來歷。從技術角度看,這是一套經過拆分的Ubuntu Server版本,其壓縮后的鏡像體積約在100MB左右。不出所料,Snappy使用的是Docker容器引擎,同時支持基于鏡像的更新機制。
說到這里,我們似乎看到了微操作系統的固有發展模式。
VMware的Photon項目
作為一家專業打造趨勢性、穩定可靠的企業級產品的廠商,VMware公司也已經加入到這場微操作系統混戰中來,其產品代號為Photon項目。Photon目前尚處于技術預覽階段,只提供社區支持。
Photon項目是一套拆分式Linux發行版,通過優化運行于VMware vSphere之上并利用VMware生態系統實現補丁安裝與更新,同時具備基于身份的訪問管理機制。其安裝選項由體積為260MB的“微型”鏡像到1.7GB的完整安裝項目不一而足。
除了Docker之外,Photon還能夠支持rkt與Garden容器引擎,后者為Pivotal公司Cloud Foundry所采用的容器格式。Photon不僅支持基于鏡像的更新機制,同時也包含有更為傳統的yum類軟件包管理器。
事實上,Photon項目專門針對vSphere運行進行了優化(包括相關驅動程序以及經過調整的內核),其效果也相當值得稱道。不過Photon項目真正的殺手級功能在于其背后強大的VMware支持以及與vSphere生態系統的集成能力。
如果大家所在企業已經是VMware公司的客戶且保持有較為謹慎的新型技術引入態度,那么Photon項目可能會是大家跟進容器發展趨勢的最佳平臺。
RancherOS
好了,現在開始說點別的……
RancherOS(來自Rancher實驗室)的知名度顯然無法與前面幾位選手相提并論,但其將云與窗口集成水平帶入了新的高度。
首先,它的體積實在小巧到令人喜出望外——只有20MB左右,這對于一款云優化型服務器平臺來說簡直值得大加贊賞。不過這還不是其最酷的方面……真正的亮點在于RancherOS集成Docker的具體方式。
讓我們先做一番回顧。前面提到的CoreOS、Atomic Host、Snappy Ubuntu Core以及Photon項目都采用Linux內核,配備一系列系統服務而后在此基礎上部署容器運行時環境。但RancherOS所另辟了一條蹊徑。在啟動Linux內核之后,它會生成一套被稱為system-docker的特定Docker實例,并將所有系統服務以容器方式加以運行。沒錯,大家沒有看錯。在RancherOS當中,Linux內核只是一種引導機制,并隨后生成一個system-docker進程。該system-docker進程獲取PID 1并負責將所有與系統相關的進程以容器方式啟動——類似于udev以及syslog。
毫無疑問,RancherOS是一款非常有趣而且極具創新特性的解決方案,它構建起的云優化型操作系統開創了屬于自己的解決思路。更不用說它是我們目前見到過的體積最為小巧的微操作系統,同時擁有最為緊密的容器引擎集成效果(Docker)。因此從個人角度來講,我強烈建議大家對這套方案加以認真審視。
Windows Nano Server
最后但同樣重要的就是微軟拿出的解決方案了。由于不想放任Linux在云以及容器生態系統當中一家獨大,微軟公司最近發布了其自主開發的微操作系統,名為Windows Nano Server(目前的規劃是在2016年年內推出通用版本)。
由于意識到Windows Server Core已經在正確的方向上邁出了重要一步——雖然只是小小的一步——微軟公司開始以Nano Server為平臺將精簡水平提升到新的高度。Nano據稱屬于Windows Server的一套拆分版本,而且微軟官方承諾稱其“VHD體積縮小了93%,重要公告減少92%,而重啟次數亦降低了80%。”
作為實現這一系列體積壓縮的必要犧牲品,Nano Server顯然不提供GUI方案。事實上,它甚至不提供本地CLI或者PowerShell機制——所有管理工作都需要通過WMI、PowerShell Remote或者即將推出的Web管理工具以遠程方式實現。軟件包安裝與更新則由DISM負責處理,也就是微軟公司的鏡像管理工具。
我們還可以期待Nano Server針對各類容器作出優化——微軟公司此前已經公布了相關技術,但目前仍未正式推出。
綜合以上幾點,Nano Server的最終成果似乎已經可以預見。而微軟方面這次似乎是把可資利用的一切都投入到了云與容器技術領域。
#p#
至精至簡的云設備
就目前來看,最可能出現的結果就是未來的云體系都將由輕量化服務器以及容器化應用程序所支撐,而微操作系統與容器則在其中居于核心位置。考慮到這一點,讓我們快速瀏覽由此帶來的潛在影響。
首先,這些微操作系統的小巧體積自然會使其受攻擊面亦相應減小——也就是易受惡意軟件侵襲的目標代碼更少。這同時意味著需要安裝補丁的代碼比例更低,重啟次數更少且啟動速度更快。這應該也會讓操作系統的運營狀態更加穩定。畢竟一套體積僅為100MB的代碼庫,其維護及故障排查難度要遠低于高達1GB級別的大型操作系統。
其次,基于鏡像的更新機制又是另一項巨大進步。在漫長復雜的過程中不斷面對各種變更、對個別軟件包進行調整并遭遇可怕的潛在系統穩定性影響的傳統操作系統更新方式已經徹底成為歷史。基于鏡像的更新機制會允許我們對操作系統進行整體更新——包括所有系統相關軟件包——而且整個過程一步到位。這就消除了應用更新時可能出現的各種復雜性因素,同時也簡化了大規模回滾的實施過程。
回滾的簡化效果分兩個分區——第一分區用于保存更新后的系統鏡像,另一分區則存儲著現有運行良好的配置方案。在應用一項更新之后,當我們下一次重新啟動該操作系統時,它會利用更新后的分區進行備份。如果遇到問題,操作系統可以立即回滾到原本能夠正常運作的分區。基于鏡像的更新機制不僅有助于簡化更新及回滾流程,同時也能幫助我們在大型集群當中保證所有設備處于一致性狀態之下——這就讓大規模集群的更新工作變得更易于打理。
而在容器方面,大家應當考慮相關系統方案支持哪一種容器運行時。截至撰稿之時,一部分微操作系統仍然穩坐Docker陣營當中,但也有一部分同時支持Docker與CoreOS rkt。大家應當謹慎分析,考慮哪種容器運行時最適合自己的業務流程與應用程序。
最后,我們需要認真了解這些微操作系統的管理方式——畢竟這是一個全新的領域。RancherOS的管理工作從本質上講其實就是在管理Docker容器。CoreOS公司則樂于幫助客戶負擔起這些操作系統的管理工作——也就是操作系統即服務這一業務范疇。即使是在Windows Nano Server——在這里,全部配置工作都需要以遠程方式實現——我們也完全能夠以更簡單、更加自動化的方式處理部署與配置任務。當然,無論是由CoreOS負責管理我們的操作系統,還是由我們自己親手負責相關工作,大家都可以由此省出更多時間和精力,并將其投入到應用程序當中。
原文標題:From CoreOS to Nano: Micro OSes strip down for containers