工控網首頁
>

應用設計

>

容器云的十大特性

容器云的十大特性

2018/6/12 9:33:37

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

 

  1.高密度 高彈性

 

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

 

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

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

 

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

 

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

 

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

 

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

 

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

 

  4.實現更快速的交付和部署

 

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

 

  5.更易于微服務架構的實現

 

  微服務采用一組服務的方式來構建一個應用,服務獨立部署在不同的進程中,不同服務通過一些輕量級交互機制來通信,例如 RPC、HTTP 等,服務可獨立擴展伸縮,每個服務定義了明確的邊界,不同的服務甚至可以采用不同的編程語言來實現,由獨立的團隊來維護。微服務通常具有相互獨立、原子化、松耦合結構等特點?;贒ocker的容器云更易于微服務架構的實現主要體現在以下幾個方面:

 

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

  2.一臺物理機器可以同時運行成百上千個容器。它的計算粒度足夠的小。

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

  4.一系列的容器編排工具,能夠快速的實現服務的組合和調度。

 

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

 

  6.更高效的虛擬化

 

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

 

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

 

  通常,如果要在一臺服務器上運行多個任務,傳統(tǒng)的方法是將其劃分為多個虛擬機,使用每個虛擬機來運行一個任務。但是虛擬機啟動很慢,因為它們必須啟動整個操作系統(tǒng),這要花上幾分鐘的時間。而且這會占用大量資源,因為每個虛擬機都需要運行一個完整的操作系統(tǒng)實例。容器則提供了某種類似的行為,但是速度更快一些,因為啟動一個容器就像啟動一個進程。

 

  8.像搭積木一樣的進行資源編排

 

  在基于Kubernetes的容器云中,可以實現Pod和Stack兩種層面的編排。

 

  1)Pod 編排

 

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

 

  2)Stack 編排

 

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

 

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

 

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

 

  10.易于擴展和遷移

 

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

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

提交

查看更多評論
其他資訊

查看更多

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

派拓網絡被Forrester評為XDR領域領導者

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

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

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