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