容器云的十大特性

2018/6/12 9:33:37

隨著以Docker為代表的容器技術(shù)在國內(nèi)的迅速發(fā)展,容器云也逐漸被廣大開發(fā)者所熟知,但容器云(CaaS)相比傳統(tǒng)的云主機(jī)(IaaS)在實(shí)際應(yīng)用中還存在著一些鴻溝。本文以通俗精煉的語言向廣大開發(fā)者介紹容器的特點(diǎn),應(yīng)用場景以及優(yōu)勢等。

 

  1.高密度 高彈性

 

  現(xiàn)有的云計(jì)算平臺在面對大規(guī)模、高彈性計(jì)算的需求時往往會遇到一些瓶頸:

 

  1.難以在短時間內(nèi)啟動大規(guī)模計(jì)算資源來應(yīng)對高并發(fā)的需求;

  2.傳統(tǒng)IaaS的彈性計(jì)算性價比低,每個虛擬機(jī)都要消耗額外的系統(tǒng)資源。

 

  由于Docker容器的啟動一般在秒級實(shí)現(xiàn),這相比傳統(tǒng)的虛擬機(jī)方式要快得多。 另外 Docker 對系統(tǒng)資源的利用率很高,一臺主機(jī)上可以同時運(yùn)行數(shù)千個 Docker 容器。容器除了運(yùn)行其中的應(yīng)用外,基本不需要消耗額外的系統(tǒng)資源,使得應(yīng)用的性能很高,同時系統(tǒng)的開銷很小?;谔摂M機(jī)的技術(shù)決定了它的啟動速度分鐘級(或數(shù)秒級),而Docker基于輕量級的LXC,它的啟動速度是毫秒級(秒級)的。這就使得容器云具備高密度,高彈性的特性,在面對突發(fā)訪問量時也能輕松應(yīng)對。另外它通過提升應(yīng)用對系統(tǒng)資源的利用率,使得相比虛擬機(jī)的性價比大大的提高了。

 

  2.兼具IaaS的靈活和PaaS的便利

 

  基于Docker的容器云是一個用于開發(fā)、交付和運(yùn)行應(yīng)用的平臺,Docker 設(shè)計(jì)用來更快的交付應(yīng)用程序。Docker 可以將你的應(yīng)用程序和基礎(chǔ)設(shè)施層隔離,并且還可以將基礎(chǔ)設(shè)施當(dāng)作程序一樣進(jìn)行管理。Docker 可以實(shí)現(xiàn)更快地打包代碼、測試以及部署,并且大大縮短從開發(fā)到運(yùn)行上線的周期。容器云的本質(zhì)是一個輕量級的容器虛擬化平臺,以及一套標(biāo)準(zhǔn)的開發(fā),構(gòu)建,部署,運(yùn)行的流程,并且可以集成各類工具,比如持續(xù)集成,數(shù)據(jù)庫與緩存,大數(shù)據(jù)等,以及一些PaaS類的服務(wù)。容器云在計(jì)算資源調(diào)度上具備IaaS的靈活性,以及PaaS的便利,彈性伸縮,日志監(jiān)控,滾動升級,持續(xù)集成/部署等系統(tǒng)級的PaaS服務(wù)已成為容器云的標(biāo)配,并逐漸會往上層發(fā)展,比如部署數(shù)據(jù)庫與緩存,大數(shù)據(jù),安全監(jiān)控等服務(wù),以及集成各類SaaS服務(wù)。

 

  3.容器化應(yīng)用是基石,一切都封裝在鏡像里

 

  Docker 提供了一種在安全隔離的容器中運(yùn)行幾乎所有應(yīng)用的方式,這種隔離性和安全性允許你在同一主機(jī)上同時運(yùn)行多個容器,而容器的這種輕量級特性,意味著你可以節(jié)省更多的系統(tǒng)資源,因?yàn)槟悴槐叵倪\(yùn)行 hypervisor 所需要的額外負(fù)載。對于容器云而言,所有的應(yīng)用都需要容器化以后才能發(fā)布,即將應(yīng)用程序打包進(jìn)Docker容器,以鏡像的方式運(yùn)行。容器化應(yīng)用未來將會成為云端應(yīng)用交付的標(biāo)準(zhǔn)。

 

  4.實(shí)現(xiàn)更快速的交付和部署

 

  對于開發(fā)者來說,往往希望能夠一次構(gòu)建,隨處運(yùn)行。試想一下,如果你的team里10個開發(fā)者,按傳統(tǒng)的方式,每個新來的人往往需要在自己的環(huán)境里重復(fù)搭建一套開發(fā)測試環(huán)境,而通常因?yàn)橄到y(tǒng)的不一致(有的人玩Windows,有的玩Ubuntu,抑或是Mac),導(dǎo)致出錯率大大提高以及效率的降低。而使用Docker之后,開發(fā)者可以使用一個標(biāo)準(zhǔn)的鏡像來構(gòu)建一套開發(fā)環(huán)境,開發(fā)完成之后,運(yùn)維人員可以直接使用這個容器來部署代碼。 Docker 可以快速創(chuàng)建容器,快速迭代應(yīng)用程序,并讓整個過程全程可見,使團(tuán)隊(duì)中的其他成員更容易理解應(yīng)用程序是如何創(chuàng)建和工作的。

 

  5.更易于微服務(wù)架構(gòu)的實(shí)現(xiàn)

 

  微服務(wù)采用一組服務(wù)的方式來構(gòu)建一個應(yīng)用,服務(wù)獨(dú)立部署在不同的進(jìn)程中,不同服務(wù)通過一些輕量級交互機(jī)制來通信,例如 RPC、HTTP 等,服務(wù)可獨(dú)立擴(kuò)展伸縮,每個服務(wù)定義了明確的邊界,不同的服務(wù)甚至可以采用不同的編程語言來實(shí)現(xiàn),由獨(dú)立的團(tuán)隊(duì)來維護(hù)。微服務(wù)通常具有相互獨(dú)立、原子化、松耦合結(jié)構(gòu)等特點(diǎn)?;贒ocker的容器云更易于微服務(wù)架構(gòu)的實(shí)現(xiàn)主要體現(xiàn)在以下幾個方面:

 

  1.一個容器即是一個完整的執(zhí)行環(huán)境,不依賴外部任何的東西。

  2.一臺物理機(jī)器可以同時運(yùn)行成百上千個容器。它的計(jì)算粒度足夠的小。

  3.容器通常是秒級創(chuàng)建和銷毀,所以非常適合服務(wù)的構(gòu)建和重組。

  4.一系列的容器編排工具,能夠快速的實(shí)現(xiàn)服務(wù)的組合和調(diào)度。

 

  比如在時速云的容器編排里,可以支持Pod和Stack兩種級別的編排。Pod俗稱容器組,直譯為豌豆莢,也就是以多個容器為一個調(diào)度單元,容器之間共享網(wǎng)絡(luò)、存儲等,它們的關(guān)系是同生共死。Stack即是彼此之間相互獨(dú)立的容器之間的組合。

 

  6.更高效的虛擬化

 

  由于Docker輕量并且快速,因此相對于基于Hypervisor的虛擬機(jī)的部署方式,Docker提供了一種更可行和劃算的替代方案,這對于高密度部署環(huán)境尤其有用,例如在構(gòu)建私有云或PaaS。當(dāng)然,當(dāng)你想在有限的資源里部署更多的應(yīng)用時,Docker對于中小型的部署也非常有用。Docker 容器的運(yùn)行不需要額外的 hypervisor 支持,它是內(nèi)核級的虛擬化,因此可以實(shí)現(xiàn)更高的性能和效率。

 

  7.容器的啟動是(毫)秒級的

 

  通常,如果要在一臺服務(wù)器上運(yùn)行多個任務(wù),傳統(tǒng)的方法是將其劃分為多個虛擬機(jī),使用每個虛擬機(jī)來運(yùn)行一個任務(wù)。但是虛擬機(jī)啟動很慢,因?yàn)樗鼈儽仨殕诱麄€操作系統(tǒng),這要花上幾分鐘的時間。而且這會占用大量資源,因?yàn)槊總€虛擬機(jī)都需要運(yùn)行一個完整的操作系統(tǒng)實(shí)例。容器則提供了某種類似的行為,但是速度更快一些,因?yàn)閱右粋€容器就像啟動一個進(jìn)程。

 

  8.像搭積木一樣的進(jìn)行資源編排

 

  在基于Kubernetes的容器云中,可以實(shí)現(xiàn)Pod和Stack兩種層面的編排。

 

  1)Pod 編排

 

  適用于緊耦合的服務(wù)組,保證一組服務(wù)始終部署在同一節(jié)點(diǎn),并可以共享網(wǎng)絡(luò)空間和存儲卷。也就是同一個Pod 內(nèi)的容器可以通過 localhost 訪問彼此服務(wù),共享網(wǎng)絡(luò)空間,容器的端口不能互相沖突;對于同一個存儲卷,可以被同一個Pod 的多個容器操作。通過 Pod 編排,使我們不需要重新構(gòu)建鏡像,就可以把多個服務(wù)進(jìn)行整合。如果一個容器推薦僅包含一個進(jìn)程,那么Pod更像是可以容納多個進(jìn)程的虛擬機(jī)。

 

  2)Stack 編排

 

  設(shè)計(jì)上與 Docker Compose 相似,但可以支持跨物理節(jié)點(diǎn)的服務(wù)之間通過 API 進(jìn)行網(wǎng)絡(luò)通信。以上兩種編排均支持用 yaml 文件描述多個容器及其之間的關(guān)系,定制各個容器的屬性,并可一鍵部署運(yùn)行。

 

  9.更簡單的管理,負(fù)載均衡、彈性伸縮、日志監(jiān)控、滾動升級等舉手可得

 

  對于容器云,通常只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發(fā)和更新,從而實(shí)現(xiàn)自動化并且高效的管理。而以前需要耗費(fèi)額外的工作去開發(fā)的一些管理運(yùn)維的工作,比如負(fù)載均衡,全自動/半自動彈性伸縮,日志監(jiān)控,滾動升級等都往往成為了容器云的“標(biāo)配”,你無需再為這些事情而操心。

 

  10.易于擴(kuò)展和遷移

 

  容器云的Docker 容器幾乎可以在任意的平臺上運(yùn)行,包括物理機(jī)、虛擬機(jī)、公有云、私有云、個人電腦、服務(wù)器等。 這種兼容性可以讓用戶把一個應(yīng)用程序從一個平臺直接遷移到另外一個。容器云的這種特性類似于Java的JVM,Java程序可以運(yùn)行在任意的安裝了JVM的設(shè)備上,在遷移和擴(kuò)展方面變得更加容易。

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會

派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者

智能工控,存儲強(qiáng)基 | ??低晭砭手黝}演講

展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會

中國聯(lián)通首個量子通信產(chǎn)品“量子密信”亮相!