隨著容器技術(shù)不斷發(fā)展,其安全等級(jí)也在隨之提升,從VMware到微軟再到英特爾,大型廠商迅速進(jìn)入容器市場(chǎng)。
現(xiàn)在容器是IT行業(yè)最為熱門的話題之一。容器技術(shù)的原理非常簡(jiǎn)單:管理員可以同時(shí)創(chuàng)建多個(gè)共享相同操作系統(tǒng)的虛擬實(shí)例。這種方式能夠帶來多種好處,比如縮短啟動(dòng)時(shí)間、降低內(nèi)存消耗以及擴(kuò)展服務(wù)器性能等。
盡管容器同樣存在某些缺陷,但是這種快速發(fā)展的技術(shù)在過去的一年已經(jīng)實(shí)現(xiàn)了諸多重要改進(jìn),并且越來越多的廠商開始支持容器技術(shù)。企業(yè)的首要顧慮就是安全性:因?yàn)槎鄠€(gè)容器需要共享同一操作系統(tǒng),因此它們不會(huì)像虛擬機(jī)一樣模擬硬件資源。為了解決這種問題,許多管理員在虛擬機(jī)當(dāng)、中運(yùn)行容器,通過這種方式實(shí)現(xiàn)額外的隔離層。這樣就能夠?qū)崿F(xiàn)同一租戶的內(nèi)部隔離,提升安全性和控制能力。
但是這種安全舉措會(huì)占用大量計(jì)算資源并且降低靈活性,因此企業(yè)開始尋找thin hypervisor,比如英特爾Clear Containers和CoreOS,甚至是一些裸金屬容器產(chǎn)品。這種方式能夠?yàn)橛脩籼峁┓浅0踩⒕?jiǎn)的容器環(huán)境,將會(huì)在2017年實(shí)現(xiàn)快速發(fā)展。理想情況下,這種方式能夠在未來幾年提升容器使用率。
容器技術(shù)已經(jīng)為多種關(guān)鍵應(yīng)用——比如Web服務(wù)器——帶來了諸多好處。但是,共享網(wǎng)絡(luò)存儲(chǔ)仍然是阻礙企業(yè)將一些復(fù)雜應(yīng)用遷移到容器中的重要阻礙。ClusterHQ推出的Flocker等產(chǎn)品可以幫助解決這種問題,并且容器技術(shù)也會(huì)不斷發(fā)展。
英特爾為其核心CPU架構(gòu)開發(fā)了一系列增強(qiáng)功能,以解決虛擬化環(huán)境的跨租戶隔離問題。不幸的是,這些技術(shù)不能在容器之間分離租戶。這種問題的常見解決方案是在裸金屬機(jī)器上添加額外的hypervisor層,之后為每個(gè)租戶分配一臺(tái)或者多臺(tái)虛擬機(jī),從硬件層面實(shí)現(xiàn)虛擬機(jī)之間的隔離,而租戶可以在虛擬機(jī)中創(chuàng)建任意數(shù)量的容器。
Intel Clear Containers
盡管在hypervisor中運(yùn)行容器能夠解決安全性問題,但是額外增加的虛擬機(jī)層也會(huì)帶來復(fù)雜度和管理問題,進(jìn)而降低內(nèi)存的使用效率。Hypervisor實(shí)例相比于容器要更長(zhǎng)的啟動(dòng)時(shí)間。Intel通過Clear Containers系統(tǒng)來解決這種問題,其能夠讓容器運(yùn)行速度更快,內(nèi)存使用效率更高。
Clear Containers依然采用在虛擬機(jī)中創(chuàng)建容器的方式,但是其啟動(dòng)時(shí)間更快,并且大幅度降低hypervisor的占用資源,這些都要?dú)w功于其快速和輕量級(jí)的hypervisor——QEMU。英特爾預(yù)計(jì)Clear Containers的啟動(dòng)時(shí)間比傳統(tǒng)hypervisor要快得多,可以控制在微秒級(jí)別,這樣就可以和容器處于同一水平了。Clear Containers還針對(duì)共享內(nèi)存進(jìn)行優(yōu)化,通過合并內(nèi)核的相同頁(yè)以及直接訪問以繞過頁(yè)面緩存。Clear Containers現(xiàn)在只支持Linux主機(jī)。
越來越多的廠商開始支持容器
微軟為容器提供了良好的支持,其在2014年就已經(jīng)和Docker建立了緊密的合作關(guān)系,并且在Windows Server 2016推出了基于Hyper-V的容器。但是該產(chǎn)品也存在某些限制:比如容器并不能被加入到活動(dòng)目錄中、只支持標(biāo)準(zhǔn)網(wǎng)絡(luò)動(dòng)態(tài)尋址等。 Azure也提供了對(duì)于容器的支持,未來適用于私有云的Azure Pack產(chǎn)品也將會(huì)支持容器。
VMware進(jìn)入云行業(yè)的時(shí)間相對(duì)較晚,但是其對(duì)容器技術(shù)擁有很好的敏感性。VMware從vSphere 6.5開始支持容器。VIC(VSphere Integrated Containers)的主要作用就是解決ESXi對(duì)容器缺乏控制性的問題,同樣采用將每個(gè)容器都放置在虛擬機(jī)中的方式。
不幸的是,VIC相比于其他產(chǎn)品要復(fù)雜的多,這意味著其啟動(dòng)速度也要慢得多。
Kubernetes
作為一款在混合云環(huán)境中創(chuàng)建容器的工具,Kubernetes憑借其可移植性獲得了很多企業(yè)的青睞,并且被加入到OpenStack中,獲得IBM、Red Hat、VMware和華為等多家公司的支持。AWS(Amazon Web Services )和Azure未來也很有可能支持這種技術(shù),這樣 Kubernetes將會(huì)成為容器世界的通用語(yǔ)言。
其他容器環(huán)境
還有很多適合于混合云和私有云的工具。Mesosphere Marathon和Apache Mesos可以用在Azure中,并且擁有很好的口碑。此外,CoreOS Fleet 和Cloud Foundry Diego也是不錯(cuò)的替代選擇。由于容器技術(shù)的快速發(fā)展,這些工具的特性也會(huì)不斷發(fā)生變化。因此在最終確定生產(chǎn)環(huán)境使用哪種工具之前最好完成一系列實(shí)際測(cè)試。
完成其他任務(wù)的工具
管理員可以使用Docker Hub和VMware Harbor創(chuàng)建容器鏡像,而VMware Admiral能夠被用來自動(dòng)分發(fā)更新,保證所有虛擬實(shí)例同步。最好將鏡像文件分層,將操作系統(tǒng)、配置文件、runtime工具和應(yīng)用程序分離,這樣可以簡(jiǎn)化更新過程。
最后,需要記住的是企業(yè)使用容器的目的在于降低成本、輕量化當(dāng)前環(huán)境以及實(shí)現(xiàn)更加豐富的功能。確保一個(gè)容器中只運(yùn)行一個(gè)應(yīng)用程序,并且其中不會(huì)包含無關(guān)工具和其他垃圾內(nèi)容。
容器和云
主要云服務(wù)提供商都已經(jīng)開始使用容器技術(shù)。在內(nèi)部運(yùn)行容器可以幫助服務(wù)提供商提升效率,而持續(xù)的價(jià)格戰(zhàn)也會(huì)讓客戶最終受益。
如果企業(yè)想要嘗試使用容器技術(shù),那么公有云無疑是入門的最佳選擇,因?yàn)槌杀竞惋L(fēng)險(xiǎn)性都相對(duì)較低。AWS、微軟和谷歌等公司都已經(jīng)對(duì)容器提供了非常良好的支持。AWS推出了ESC(EC2 Container Services ),其中包含了一整套工具,比如CloudFormation、EC2 Container Registry和Docker等,并且ECS還支持持續(xù)交付。