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