閱讀335 返回首頁    go 阿裏雲 go 技術社區[雲棲]


那些影響傳統PaaS平台結構的容器編排工具

作者:精靈雲

隨著PaaS平台結構的演變,可以看到容器編排給企業在平台結構的選擇上帶來的衝擊,可究竟該如何選擇,我們需要透過現象看本質。

PaaS平台的演變

傳統PaaS平台在雲計算技術的發展中經曆了幾次演變,我們先來回顧下經典的雲平台層次體係的結構。

v2-eb69810578c48bd86820dedbddc29aac_b.pn

傳統雲計算平台的分層結構

如圖所示,在經典的PaaS平台結構中,應用運行在PaaS平台所提供的容器環境中,容器在虛擬機基礎上完成了第二層次基礎設施資源的劃分,容器封裝了應用正常運行所需的運行環境和係統。然而這類PaaS平台就如同一個“黑盒”,應用完全脫離了租戶的控製,進入了完全被托管的狀態,這使得開發人員和運維人員對應用和應用運行時的環境掌控力變弱,再加上傳統PaaS通常在應用架構選擇、支持的環境服務等方麵有較強限製,導致此類雲平台層次結構運力不足,尤其是在應用出現宕機後尤為凸顯。因而在生產環境下又進化出了以IaaS+雲平台的分層結構。

v2-ac1221a7d11f08a3f5979fd219171efe_b.pn

典型的IaaS+雲平台

IaaS+雲平台的層次結構保證了運維人員對底層環境的掌控,但IaaS層不具備貼近應用的資源調度策略,為了彌補了IaaS平台脫離應用的缺陷,出現了很多高效便捷的虛擬機DevOps工具,以虛擬機鏡像為基礎可以保證生產環境、測試環境、開發環境上的嚴格一致。目前基於IaaS的雲生態環境已經具有相當高的成熟度。

當然,以上這兩種經典的雲平台分層結構依然還是目前傳統雲平台搭建意識裏的主流,直到Docker的出現。

v2-5a4267b4ae29de47f197910a1c11af90_b.pn

基於容器的雲平台

Docker的出現為雲平台帶來了一個新的分層結構:基於容器的雲平台。相比經典PaaS平台,基於容器的雲平台結構更加開放,可直接基於虛擬機或物理機搭建。基於容器鏡像的應用發布流程不僅能覆蓋整個應用生命周期,還減少了經典PaaS平台對應用架構、支持的軟件環境服務等方麵的諸多限製,將更多控製力交還給開發和運維人員。

而影響傳統平台PaaS結構的核心便是容器編排。

容器編排的演變

容器編排支持打包、部署、隔離、服務發現、擴容和滾動更新,已經在影響驅動成熟企業和初創公司采用容器上起到非常重要作用。

在基於容器的雲平台中,運用Docker容器至應用的完整生命周期中時,最困難的便是運行微服務應用程序,即如何創建、管理和自動化臨時容器集群。

解決這一挑戰的第一個主要工具是Mesos及它的編排工具Marathon,成熟度最高時間最久。下一個得到認同的編排工具是Kubernetes(以下簡稱K8s),應用最廣泛,社區支持度最高。之後Docker Swarm也加入了進來,使用覆蓋率也很驚喜。當然,目前國內還出現了自研的容器編排Newben,開發者為Ghostcloud精靈雲。

v2-f28e73d1b007ea14b499d7c9da57a8dc_b.pn

幾種容器編排的對比

事實上,如今K8s因為它的可擴展性已經成為了企業主流。它支持廣泛的編程語言、基礎設施選項,並獲得容器生態係統的巨大支持。它將應用層與基礎設施層隔離開來,從而能夠跨多個雲供應商和基礎設施設置,實現真正的可移植性。

容器編排K8s和Newben

本文重點介紹在網絡、應用遷移、應用快照、模板、負載均衡、彈性伸縮、高可用、CI/CD集成、灰度發布和回滾、鏡像集成、日誌監控等方麵同樣優秀的兩類容器編排工具Newben和K8s。Newben是Ghostcloud精靈雲全自主研發的容器調度引擎,是目前國內唯一自研引擎。(關於Newben的介紹可閱讀文章《全自主研發容器調度引擎――Newben》)K8s是目前最主流的容器編排。在此,我們簡略地列出了Newben和K8s的部分功能特性,來展示這兩種容器調度引擎在網絡、應用遷移、負載均衡、彈性伸縮、調度規則等方麵的優勢。

l網絡

K8s不支持內置虛擬網絡,網絡插件選擇眾多,學習成本更高,但從社區獲得的支持也最多。Newben內置支持虛擬網絡,支持多子網,支持公有雲、主機托管環境、二層和三層網絡以及控製網絡訪問安全。

v2-8c54153bc1442c2e5583e2b781144a91_b.pn

l應用服務和應用棧

在創建應用服務方麵,K8s需要多次執行命令工具的操作模式,Newben則采用向導式創建的方式,且支持應用服務分組創建應用棧。

v2-f135f5f13485e525aa5a69d59b328fd1_b.pn

l彈性伸縮

Newben和K8s均可以支持CPU的彈性伸縮。

v2-d26f547a0a0b5c0bc42e6e1d1f4d1282_b.pn

l負載均衡

Newben和K8s均可實現負載均衡和高可用集群。

v2-800dabc8acfcaddd4d9490cdee55adfd_b.pn

l調度規則

K8s的調度規則基於標簽選擇器,而Newben則同時基於標簽選擇和指定主機名。

v2-bf48df834a13649c8401da329f1dd479_b.pn

結語

對企業而言,編排工具是容器應用成功的關鍵,最主流的PaaS解決方案已經擁抱容器,並有新的PaaS 建立在容器編排之上實現管理平台。企業可以選擇麵向IT運維,部署核心容器編排工具,或麵向開發,使用PaaS平台。

推薦閱讀:

1、企業為什麼要使用基於Docker的PaaS/CaaS平台

2、Docker容器雲在金融行業的應用

3、自研容器調度引擎Newben會成為“中國的K8s”?

最後更新:2017-05-09 17:31:59

  上一篇:go 不和HR談一次戀愛,你都不知道有多好
  下一篇:go Spring Boot Dubbo applications.properties 配置清單