3类6种,主流容器操作系统全比较
戳藍(lán)字“CSDN云計(jì)算”關(guān)注我們哦!
作者 | Frank Brown
來(lái)源?|?RancherLabs
介? 紹
容器已迅速成為現(xiàn)代數(shù)據(jù)中心的必要組成部分。容器可以構(gòu)建在各類操作系統(tǒng)中,那么企業(yè)該如何選擇最合適的操作系統(tǒng)來(lái)運(yùn)行自己的容器?
在容器部署時(shí),研發(fā)的負(fù)責(zé)人需要知道操作系統(tǒng)的哪些特性和功能對(duì)于正在發(fā)布的應(yīng)用程序至關(guān)重要,以及是否存在需要額外考慮的其他因素(如可管理性和配置靈活性),不同企業(yè)的情況與需求不同,選擇自然也不盡相同。
不同的操作系統(tǒng),如何在特性和基本功能方面進(jìn)行比較?這些差異如何影響它們支持應(yīng)用程序的方式?這些都是我們必須考量的重要問(wèn)題。本文中我們將比較三類具有代表性的操作系統(tǒng):
傳統(tǒng)的全功能操作系統(tǒng)
通用的精簡(jiǎn)操作系統(tǒng)
專用于容器的操作系統(tǒng)
在每個(gè)類別中,我們都會(huì)選擇兩個(gè)代表性的產(chǎn)品,這些產(chǎn)品能代表這一大類中的其他全產(chǎn)品或發(fā)行版。
通過(guò)本文,大家將能更清楚地了解不同操作系統(tǒng)類型之間的差異。IT負(fù)責(zé)人們也將更好地了解到,為什么開發(fā)人員可以為容器化應(yīng)用程序選擇一個(gè)操作系統(tǒng)而不是另一個(gè),以及為什么他們可能支持或質(zhì)疑這些選擇。
全功能操作系統(tǒng)
“全功能操作系統(tǒng)”是什么意思?為什么在容器部署的情況下,完整功能會(huì)很重要?本節(jié)將介紹為什么在傳統(tǒng)服務(wù)器部署中使用的操作系統(tǒng),也可能是為容器平臺(tái)選擇操作系統(tǒng)時(shí)的最佳答案。
首先要知道的是,這類操作系統(tǒng)的功能無(wú)疑是最齊全的。如果某個(gè)應(yīng)用程序需要某個(gè)特定的特性或功能,全功能操作系統(tǒng)或許都能滿足它。不過(guò)這種“齊全”也是有一定代價(jià)的:在存儲(chǔ)、內(nèi)存和CPU資源方面,這類操作系統(tǒng)對(duì)系統(tǒng)的要求最高。同時(shí),這些功能還會(huì)增加操作系統(tǒng)的攻擊面,為潛在的攻擊者提供更多的角落和縫隙進(jìn)行攻擊。不論是價(jià)格成本還是安全風(fēng)險(xiǎn),如果操作系統(tǒng)的這些功能都是應(yīng)用程序需要的,那么這些成本也就很容易承擔(dān)了;但如果只需要少量功能,相較之下性價(jià)比就略低。
這些功能齊全的操作系統(tǒng),最適合的用例,是企業(yè)需要在單個(gè)OS實(shí)例之上的容器中部署多個(gè)不同應(yīng)用程序。在這些情況下,操作系統(tǒng)的功能的多而全,可能是支持應(yīng)用程序隊(duì)列的最經(jīng)濟(jì)的方式。
Ubuntu
Ubuntu已經(jīng)成為許多企業(yè)在服務(wù)器、云甚至桌面上的默認(rèn)操作系統(tǒng)。Canonical公司為Ubuntu提供了非常好的支持,Ubuntu提供各種可下載格式,包括支持物聯(lián)網(wǎng)、容器、服務(wù)器或云的部署所需的實(shí)用程序包、shell、功能和功能集。
如今,Ubuntu已經(jīng)開始瓜分曾經(jīng)由Red Hat Linux一家獨(dú)大的領(lǐng)域:Ubuntu一貫良好的聲譽(yù)和企業(yè)級(jí)的支持,使得對(duì)于企業(yè)部署而言,它成為了一個(gè)穩(wěn)妥的、“合理的”選擇。不過(guò),大家仍需記住的、很重要的一點(diǎn)是,不論在什么情況下,“合理的”都不意味著一定是“最好的”——它的功能齊全也意味著它的龐大,企業(yè)需要思考這種重與大是否適合自己。
CentOS
在全功能操作系統(tǒng)這一大類中,Ubuntu已經(jīng)成為企業(yè)的一大主流選擇,除此之外,CentOS則是另一個(gè)流行的、由社區(qū)驅(qū)動(dòng)的開源操作系統(tǒng),它是由Red Hat Enterprise Linux依照開放源代碼規(guī)定釋出的源代碼所編譯而成。
CentOS強(qiáng)調(diào)社區(qū)對(duì)特性和功能的貢獻(xiàn)及支持,同時(shí)仍然建立在其Red Hat基礎(chǔ)的穩(wěn)定性上。開源不意味著CentOS不被大型組織使用——美國(guó)國(guó)家實(shí)驗(yàn)室和幾大主流云提供商的服務(wù)器上都用著CentOS。但是Ubuntu自稱擁有比CentOS更快速的更新,其中包括那些更老、但經(jīng)過(guò)良好測(cè)試的軟件包。
精簡(jiǎn)的操作系統(tǒng)
容器,盡可能地將少而精的功能匯集在一起,創(chuàng)建完整的應(yīng)用程序。那么,這類精簡(jiǎn)的操作系統(tǒng)缺少“完整”Linux發(fā)行版中的哪些功能——這對(duì)您的應(yīng)用程序是否重要?從另一視角來(lái)看,將應(yīng)用程序部署在那些將功能剝離到極限的精簡(jiǎn)操作系統(tǒng)上,優(yōu)勢(shì)是什么?
問(wèn)題的答案在于,你的應(yīng)用程序究竟對(duì)操作系統(tǒng)有什么要求,而精簡(jiǎn)的操作系統(tǒng)是否能滿足這些基礎(chǔ)要求。如果沒(méi)有周全的準(zhǔn)備,在使用過(guò)程中還需要人為添加應(yīng)用程序所需的各種功能和小程序,那選擇這類精簡(jiǎn)操作系統(tǒng)可以說(shuō)是失敗的,因?yàn)樗诖笮『秃?jiǎn)單性方面的優(yōu)勢(shì)所剩無(wú)幾。
本章節(jié)將介紹兩個(gè)發(fā)行版,BusyBox和Alpine Linux,以及它們?cè)谶m當(dāng)?shù)沫h(huán)境中可以帶來(lái)的優(yōu)勢(shì)。這兩個(gè)操作系統(tǒng)是相關(guān)的——Alpine是基于BusyBox的,但是二者也存在一些關(guān)鍵的差異,使用戶會(huì)在這二者之間做出不同選擇。這些差異不僅涉及具體功能及特性,還涉及支持社區(qū)和生態(tài)系統(tǒng)。
BusyBox
BusyBox很適合容器部署,恰巧因?yàn)樗谠O(shè)計(jì)時(shí)沒(méi)有刻意考慮容器。BusyBox被其開發(fā)人員稱為“嵌入式Linux的瑞士軍刀”,它作為一個(gè)單一的小型可執(zhí)行文件,包含大多數(shù)嵌入式應(yīng)用程序所需的所有功能。這也“迫使”它在容器技術(shù)出現(xiàn)之前,就可以開始采用類似容器的方法進(jìn)行部署了。
BusyBox可以使用Linux或其他POSIX操作系統(tǒng)作為其基礎(chǔ)進(jìn)行部署,并將它們與許多常見的Linux實(shí)用程序捆綁在一起。如此一來(lái),它成為了一個(gè)緊湊的單文件可執(zhí)行文件,其中包含“完整”Linux發(fā)行版的許多功能——盡管這些完整版本中的不少其他功能選項(xiàng),都以節(jié)省空間的名義,被從BusyBox中刪除了。
Alpine Linux
如前所述,Alpine Linux基于BusyBox,但不論是目標(biāo)還是細(xì)節(jié),它都建立在更早期的Linux發(fā)行版上。BusyBox是因?yàn)槭菃我豢蓤?zhí)行文件而體積很小, 而Alpine Linux則是使用強(qiáng)化的內(nèi)核,為其前身BusyBox的緊湊、簡(jiǎn)單的目標(biāo)增加安全性。
相較于BusyBox,Alpine Linux能讓開發(fā)人員更容易添加功能。它的發(fā)行版基于BusyBox和musl庫(kù)之上,因此在添加功能的方便性或結(jié)構(gòu)緊湊度的這些維度上,Alpine Linux一枝獨(dú)秀。
Alpine Linux這是一個(gè)極限精簡(jiǎn)的操作系統(tǒng),能夠生成非常小的容器鏡像以進(jìn)行部署,而且加固的內(nèi)核使其更適用于生產(chǎn)以及開發(fā)、部署。
容器操作系統(tǒng)
容器操作系統(tǒng)開箱即用,擁有內(nèi)置的自動(dòng)化和容器編排工具。它們被設(shè)計(jì)和構(gòu)建為“主機(jī)”操作系統(tǒng)——托管Alpine和BusyBox等容器操作系統(tǒng)的操作系統(tǒng)。既然如此,為什么它們不是每個(gè)容器部署的自動(dòng)選擇呢?
容器操作系統(tǒng)的特征在于,它不僅僅是一個(gè)支持容器的軟件,而是使用容器技術(shù)部署的軟件。“容器一直向下”的體系結(jié)構(gòu)意味部署的自定義程序更高、更靈活,從而比傳統(tǒng)的OS部署復(fù)雜得多。另一方面,對(duì)于早期轉(zhuǎn)向容器的組織,或者對(duì)于那些不一定適合容器架構(gòu)的應(yīng)用程序部署中,“全容器”架構(gòu)并非那么容易。
對(duì)于那些尋找容器操作系統(tǒng)的企業(yè)而言,Rancher OS和Container Linux是兩個(gè)主流的選擇。本章節(jié)將介紹它們各自的優(yōu)勢(shì),幫助開發(fā)人員根據(jù)自身情況做進(jìn)一步選擇。
RancherOS
RancherOS中的每個(gè)進(jìn)程都在Docker管理的單獨(dú)容器中運(yùn)行。對(duì)Docker的優(yōu)化和依賴讓RancherOS可以做到體積極小、啟動(dòng)極快。
除了基本的性能優(yōu)勢(shì)之外,RancherOS系統(tǒng)服務(wù)由Docker Compose定義和配置。這種依賴意味著只加載和部署應(yīng)用程序所需的服務(wù),從而進(jìn)一步加速和簡(jiǎn)化部署。通過(guò)與cloud-init集成,再次簡(jiǎn)化了部署,從而實(shí)現(xiàn)了廣泛和高速的自動(dòng)配置和部署。
Container Linux
CoreOS的Container Linux專為基于云的容器部署而設(shè)計(jì)。Container Linux已被Red Hat收購(gòu),針對(duì)公有云或私有云基礎(chǔ)架構(gòu)的集群部署進(jìn)行了優(yōu)化。
Container Linux和內(nèi)核以及必要的實(shí)用程序一起,部署在單個(gè)可執(zhí)行文件中,其他的實(shí)用程序和功能都部署在容器中。
Container Linux長(zhǎng)期以來(lái)一直被廣泛使用,可以在大多數(shù)公有云上部署。被Red Hat收購(gòu)并沒(méi)有減緩它的采用速度。Container Linux與開源許可一起分發(fā),并擁有一個(gè)活躍的開發(fā)人員社區(qū)。
結(jié)? 語(yǔ)
三大類可用于容器部署操作系統(tǒng),開發(fā)團(tuán)隊(duì)?wèi)?yīng)該選擇哪種?
如果某個(gè)特定服務(wù)器的唯一目的是托管容器,那么像RancherOS和Container Linux這樣的容器操作系統(tǒng)非常適合。這類操作系統(tǒng)的自動(dòng)化、部署速度和一致的容器架構(gòu),使其成為那些希望優(yōu)化容器托管環(huán)境的人的最佳選擇。
如果要同時(shí)考慮容器和非容器應(yīng)用程序,那么毫無(wú)疑問(wèn),像Ubuntu和CentOS這樣的傳統(tǒng)Linux部署也可以用作容器平臺(tái)。它們的體系結(jié)構(gòu)、實(shí)用程序、功能列表將使它們啟動(dòng)速度變慢并且需要更多系統(tǒng)資源,但如果啟動(dòng)速度和最小資源消耗不是關(guān)鍵考慮因素,那么這類操作系統(tǒng)是不錯(cuò)的選擇。
還值得關(guān)注的是位于上述二者之間的BusyBox和Alpine Linux這樣的極精簡(jiǎn)操作系統(tǒng)。單從容器部署的角度出發(fā),這類操作系統(tǒng)可以滿足需求;不過(guò)如果企業(yè)存在資源受限的非容器應(yīng)用程序(例如物聯(lián)網(wǎng)的應(yīng)用程序),這些應(yīng)用程序也應(yīng)該作為整個(gè)應(yīng)用程序環(huán)境的一部分被考慮進(jìn)來(lái)。
了解不同類型操作系統(tǒng)的功能和限制之間的差異,對(duì)于任何用于生產(chǎn)的OS平臺(tái)的討論都至關(guān)重要。使用現(xiàn)代操作系統(tǒng),真正的考量不應(yīng)該滿足于哪個(gè)操作系統(tǒng)可以工作,而是需要圍繞哪個(gè)操作系統(tǒng)能最有效和最高效地完成工作。
福利
掃描添加小編微信,備注“姓名+公司職位”,加入【云計(jì)算學(xué)習(xí)交流群】,和志同道合的朋友們共同打卡學(xué)習(xí)!
推薦閱讀:
這位博士跑贏“地震波”:提前 10 秒預(yù)警宜賓地震!
同樣是消息隊(duì)列,Kafka憑什么速度那么快
如何給老婆解釋什么是微服務(wù)?
任正非:華為 100% 沒(méi)有后門
阿里巴巴楊群:高并發(fā)場(chǎng)景下Python的性能挑戰(zhàn)
那些去德國(guó)的程序員后來(lái)怎么樣了?
新技術(shù)“紅”不過(guò)十年,半監(jiān)督學(xué)習(xí)為什么是個(gè)例外?
獨(dú)家對(duì)話V神! 質(zhì)疑之下的以太坊路在何方?
真香,朕在看了
總結(jié)
以上是生活随笔為你收集整理的3类6种,主流容器操作系统全比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Boost:bimap双图的struct
- 下一篇: 1rads等于多少hz?