單單使用容器是不夠的,提供商們認為你需要一個容器專用的Linux發(fā)行版本。
我們可以讓容器在不同的操作系統(tǒng)上運行,不同的操作系統(tǒng)都有自己的虛擬化服務(wù),如:Solaris Zones、BSD Jails、Linux Docker(Windows現(xiàn)在也支持Docker了)、Linux OpenVZ等等。特別是在Docker和容器技術(shù)突然流行開來,操作系統(tǒng)公司正在采取不同的策略。他們認為,大部分容器,應(yīng)該用瘦操作系統(tǒng)制作。
為什么?(當然,除了給他們一個新的收入來源)
Alex Polvi,CoreOS的CEO,第一個發(fā)行了針對輕量級、容器友好的Linux系統(tǒng)的Linux公司,解釋道:”我們認為我們可以進一步讓容器達到操作系統(tǒng)無關(guān)“
如何辦到?Polvi意識到容器可以將應(yīng)用程序與操作系統(tǒng)隔離,使宿主操作系統(tǒng)切換不影響應(yīng)用程序正常運行。為了讓容器更有效的運行,你會希望宿主操作系統(tǒng)只提供滿足容器運行的最少服務(wù)。
然后,從谷歌是如何更新Chrome OS中可以借鑒(請注意,CoreOS一開始就是fork自Chrome OS的),Polvi認為容器服務(wù)器也可以自動更新,相應(yīng)的,也會極大提升操作系統(tǒng)打補丁的速度。
所以,Polvi繼續(xù)說道,”如果所有這些都能自動更新,你再也不用擔心?CoreOS就像一個有組織的團體,幫你維護操作系統(tǒng),你只需要關(guān)注應(yīng)用程序的正常運行。
所以,CoreOS所做的,或者其他操作系統(tǒng)現(xiàn)在或者將來要做的,就是維護一個非常小的操作系統(tǒng)內(nèi)核,只提供最基礎(chǔ)的服務(wù)。在這種模式下,無需操作系統(tǒng)更新升級。取而代之的是,等待服務(wù)器關(guān)閉,由于在云端,總會有其他的服務(wù)器接管容器,等接管完成后,可以將舊的OS替換成新的版本。
這種方式可以快速提供最新的更新,用戶感知不到任何停機時間的。有了這個機制,你也可以提供一個跨整個數(shù)據(jù)中心或云的一致的操作系統(tǒng),不存在集群中有系統(tǒng)沒打補丁,或者補丁不一致.
這種方法的另一個優(yōu)點是,如果新版本出現(xiàn)了什么問題,你可以隨時回滾到一個先前的、安全的版本。正如Red Hat公司產(chǎn)品技術(shù)總裁Paul Cormier在最近的博客文章中說,"Linux的容器,擴充和依賴取決于操作系統(tǒng)的一致性。"
這個想法已經(jīng)深入民心像打得火熱?,F(xiàn)在,除了CoreOS,紅帽Red Hat Enterprise Linux 7 Atomic Host (RHELAH)、Canonical公司Ubuntu Core,驚人的是,VMware也將發(fā)行它的第一個Linux發(fā)行版Photon。
此外,如果有人只想試用Docker容器可以使用boot2docker。這個微小的Linux發(fā)行版僅有27Megabytes大小。它是基于Tiny Core Linux,并且是專門為運行Docker容器定制的。
容器友好的操作系統(tǒng)有一個共同點,對于Docker來說:
通過事務(wù)升級/回滾語義來保證穩(wěn)定性;
傳統(tǒng)的包管理器不存在,且可以通過新的打包系統(tǒng)(Snappy)或自定義鏡像構(gòu)建(Atomic)所取代;
安全性是通過各種隔離機制來保證;
Systemd提供了系統(tǒng)啟動和管理。
那么,他們彼此又是如何的不同?這仍然需要一些時日去發(fā)展。即使是其中最古老的操作系統(tǒng)CoreOS,也還沒有達到它的第二個生日呢。以下是迄今為止我們所知道。
[page]CoreOS
Polvi在接受采訪時說, "CoreOS從一開始就設(shè)計為“可自動更新的服務(wù)器,這和人們之前所認識的服務(wù)器很不同。如果一切正常,我們認為我們可能解鎖了很多價值,它擁有安全性、可靠性、性能,所有最新版本軟件所具有的一切。“
CoreOS設(shè)法使用FastPatch做到這一點。這樣,更新的時候是直接更新完整的系統(tǒng),而不是一個又一個的升級補丁。
至于容器,CoreOS開始作為Docker的最好的朋友。但隨后,Polvi說,“Docker開始成為一個平臺,在其本身,因此它會與現(xiàn)有的平臺競爭。這很好。我明白,如果他們想建立一個平臺,作為一個公司,這有很大的商業(yè)意義。問題是,對于構(gòu)建平臺,我們?nèi)匀恍枰氖且粋€簡單的組件。“
在2014年十二月Polvi解釋說:“我們以為Docker會成為一個簡單的單元,我們都同意。不幸的是,一個簡單的可重復(fù)使用的組件變得越來越復(fù)雜?,F(xiàn)在Docker正在開發(fā)啟動云服務(wù)的工具,用于云計算的服務(wù)器,系統(tǒng)集群和很多其他的功能:構(gòu)建鏡像、運行鏡像、上傳、下載,并最終甚至覆蓋網(wǎng)絡(luò),所有編譯成一個整體的二進制程序作為root權(quán)限運行在服務(wù)器上...這不是我們曾設(shè)想的像使用組合積木一樣簡單。“因此,CoreOS開發(fā)了自己的容器Rocket。
CoreOS仍然還是支持Docker的,但是很快的Rocket將成為其主要的容器。
RHELAH
紅帽還看到了一支精干的技術(shù)優(yōu)勢,是指Linux操作系統(tǒng)。他們開始做這個工作,那就是 項目Atom。這個開源的操作系統(tǒng),目前可以選擇是基于Fedora、CentOS,或者是RHEL。
在此基礎(chǔ)上,紅帽開發(fā)了RHELAH。這個操作系統(tǒng)是基于在RHEL7。它具有像鏡像一樣原子更新和回滾的功能。紅帽為Docker貢獻了自己的容器技術(shù)。
據(jù)紅帽所公布的資料,RHELAH擁有超過其競爭對手的許多優(yōu)點。這包括能夠“直接運行在硬件以及公共或私人虛擬化基礎(chǔ)架構(gòu)。”此外,紅帽添加了對SELinux的支持,提高了系統(tǒng)安全性。
Ubuntu Core
Canonical,創(chuàng)建Ubuntu的公司,正在嘗試與CoreOS和Red Hat不同的方法。當然它也有寫部分與其他的是相似的。 Canonical公司聲稱:“Ubuntu Core是最小的、負載最低的Ubuntu,完美適合超高密度容器云計算,Docker的應(yīng)用程序部署或平臺即服務(wù)(PaaS)的云環(huán)境。Ubuntu Core是專們?yōu)樾仕_發(fā),具有最小的運行時占用空間,擁有同行業(yè)中最好的安全配置文件:這是一個引擎、底盤和車輪,沒有奢侈品,正是您所需要的大規(guī)模并行系統(tǒng)。“
雖然你可以通過鏡像更新Ubuntu core和“Snappy”的應(yīng)用程序,Canonical的Snappy包管理系統(tǒng)使用元數(shù)據(jù)文件和構(gòu)建工具來創(chuàng)建一個新的Snappy的應(yīng)用程序。” 據(jù)Ubuntu的創(chuàng)始人Mark Shuttleworth所說,“這個短小精悍的系統(tǒng)使Ubuntu的各部分保持獨立,只讀文件,并且每個應(yīng)用程序都是如此。這樣,開發(fā)人員可以確信所有他們應(yīng)用程序所需要的,將完全按照他們所預(yù)想一樣正常運行,我們可以采取措施來保持各種應(yīng)用程序彼此隔離,并確保更新總是完美的。
此外,Ubuntu使用AppArmor的內(nèi)核系統(tǒng)來保證安全性。理想情況下,在snappy版本的Ubuntu中,應(yīng)用程序是完全彼此隔離的。
VMware Photon
還記得VMware的聯(lián)合創(chuàng)始人Mendel Rosenblum曾表示,操作系統(tǒng)早在2007年已經(jīng)過時?我也這么認為。然而事情發(fā)生了變化。Rosenblum說對了一半,虛擬化技術(shù)正在改變世界 - 沒有它我們不會有云服務(wù),但操作系統(tǒng)仍和以前一樣重要。所以,也許這并不奇怪,面對容器浪潮,VMware已經(jīng)采用了這兩種容器技術(shù),并發(fā)布了自己的第一個Alpha版本Linux操作系統(tǒng)Photon。
當然VMware并沒有放棄它的虛擬機(VM)的方式——Photon目前只能運行在VMware vSphere和VMware vCloud Air??傊?,VMware的認為,應(yīng)該在虛擬機上運行容器,而不是在原生操作系統(tǒng)上運行容器,這是未來的發(fā)展方向。那么,考慮到其商業(yè)模式,當然 VMware的一樣。
該公司是兩面下注,加入到容器技術(shù)。 VMware正在支持Docker、CoreOS Rocket和Pivotal's Garden容器格式。
VMware還發(fā)布了Lightwave,一種容器的身份和訪問管理方案。
那么,哪一個會勝出?你會選擇哪一種容器?
我也不知道。
我確實不知道。
CoreOS顯然已比別人有更多的經(jīng)驗。他們也是迄今為止體積最小、最年輕的公司。紅帽帶來了可觀的資源來提高我們的服務(wù),但Canonical公司并沒有懈怠。至于VMware的,他們才剛開始加入容器技術(shù),但他們非常了解虛擬化技術(shù)的前世今生。
這些都是在一個新的領(lǐng)域的新項目。我會去嘗試所有這些這項,看我自己的IT需求,然后決定其中哪些是值得一試的程序。那是什么?你想要立即在你們公司內(nèi)部應(yīng)用?我不這么認為!這些技術(shù)都不太成熟。