一宪摧、領域澄清
首先明確我們在講什么粒竖,也就是本文描述的應用編排颅崩,資源編排是什么東西。
在云上編排的含義一般有兩種:
1.云平臺上自動化創(chuàng)建云服務蕊苗,并部署應用沿后。叫做資源編排or應用編排or服務編排。
2. 容器應用朽砰,根據(jù)資源要求尖滚,調度到哪個節(jié)點上。叫做容器編排or資源調度瞧柔。
本文描述范圍漆弄,為第1種。
二造锅、公有云編排服務介紹
AWS?Cloudformation
Cloudformation文檔地址:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html
AWS的Cloudformation基本屬于云上自動化(編排)這個領域的領頭羊撼唾,功能完備,支持的自動化場景豐富哥蔚。
在整體生態(tài)打造的也很成功倒谷,Cloudformation模板,與ServiceCatalog服務目錄糙箍,與Marketplace應用市場渤愁,一條線從上到下都打通了。
谷歌CDM:(CloudDeployment Manager)
谷歌CDM文檔地址:
https://cloud.google.com/deployment-manager/docs/
使用Jinja2語法(Yaml類)和Python語法深夯,實現(xiàn)較為討巧抖格。大部分操作,主推通過命令行完成咕晋。雖然控制臺界面也有雹拄,但功能主要在命令行里(意思是界面比較low)。
谷歌CDM支持編排資源列表:
https://cloud.google.com/deployment-manager/docs/configuration/supported-resource-types
微軟Azure-RM:(ResourceManager)
Azure-RM文檔地址:
https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview
使用Json語法捡需。且整體模板語法偏復雜办桨,使用門檻比較其他家的還高一點。
有兩個比較有特點的功能:
1.支持根據(jù)用戶已經(jīng)在Azure上創(chuàng)建好的資源信息站辉,導出模板呢撞。實現(xiàn)類似的“備份”or“快照”的功能。
2.支持任意對象饰剥,指定重復創(chuàng)建次數(shù)殊霞。實現(xiàn)批量復制的能力。
Azure-RM編排提供的內置函數(shù)非常豐富:
https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions
阿里ROS
ROS文檔地址:
https://www.alibabacloud.com/help/zh/doc-detail/28852.htm
整體能力跟隨AWS Cloudformation汰蓉,但是還略有距離绷蹲。可視化模板編輯器,目前并不是很穩(wěn)定祝钢,使用體驗一般比规。
ROS支持編排的資源列表:
https://www.alibabacloud.com/help/zh/doc-detail/48893.htm
OpenStack?Heat
Heat文檔地址:
https://docs.openstack.org/heat/latest/template_guide/hot_spec.html
整體能力跟隨AWS Cloudformation,搞了一些Cloudformation語法兼容的活拦英,連cfn-tools都照著AWS來蜒什。但是目前還略有距離。
也沒有圖形化設計器疤估。
Heat可以編排的資源列表:
https://docs.openstack.org/heat/latest/template_guide/openstack.html#
華為AOS
AOS文檔地址:
https://support.huaweicloud.com/usermanual-aos/aos_01_0000.html
使用以應用視角為中心的編排灾常,支持Kubernetes集群中的對象編排,并圍繞應用支持編排基礎資源+服務铃拇。與AWS的Cloudformation相比钞瀑,發(fā)力角度從虛機應用轉向容器應用。
圖形化的模板設計器慷荔,體驗很好雕什。特別是智能輔助對于編寫模板確實很便捷∨±龋可以稱作領域標桿监徘。
AOS支持編排對象列表:
https://support.huaweicloud.com/tr-aos/aos_01_4013.html
K8S Helm
Helm文檔地址:
Helm其實自己定位并不是編排晋修,而是一個K8S的manifest包管理工具吧碾。不過它有自動化部署K8S對象的能力,所以加入比較墓卦。
特點是只認識K8S集群里面的對象倦春,基礎的云服務不支持編排。使用范圍有限落剪。
青云RO
RO(Resources Orchestration)文檔地址:
https://docs.qingcloud.com/product/operation/topology
青云的資源編排特點是睁本,不開放模板語法,只提供圖形化設計器忠怖。
并且這個圖形化設計器體驗還不錯呢堰,有所見即所得的感覺。
但是由于沒有開放模板語法凡泣,只靠圖形化設計器枉疼,復雜場景編排能力不足。
RedHat?Ansible
Red Hat在2015年收購Ansible鞋拟,并用在OpenShift里面作為編排服務骂维。
Ansible定位是基于虛機的自動化運維管理工具,類似的系統(tǒng)還有Chef和Puppet贺纲。不過Ansible的特點是無需在目標機器上安裝Agent航闺,僅使用SSH遠程執(zhí)行命令就可以完成目標機器的軟件安裝配置,所以很容易在已有環(huán)境中使用。它的本質上是一個工具潦刃,而不是一個服務侮措,因為它使用本地目錄+文件的方式來管理“模板”。
語法使用Yaml語言乖杠,可以和Jinja2配合萝毛,方便表達出復雜的邏輯。
不過Ansible只支持任務按順序單個依次執(zhí)行滑黔,也就是無法設置復雜的有向無環(huán)圖(DAG)依賴關系笆包。
所以對流程的編排能力弱了點,但好在支持的對象數(shù)量非常豐富略荡,有超過400多種插件庵佣。
騰訊無
云上自動化能力是一個云平臺的剛需,這里一首涼涼送給騰訊云汛兜。巴粪。。
三粥谬、公有云編排服務對比
我們直接給出分析結果肛根,省去啰嗦的文字。(文字時效原因漏策,如果有不正確的派哲,及時聯(lián)系更正哈)
編排能力對比
?√表示“強/做得好”,O表示“一般/待增強”掺喻,X表示“沒有此特性”芭届。?
設計器能力對比
?√表示“強/做得好”,O表示“一般/待增強”感耙,X表示“沒有此特性”褂乍。
一張圖對比
四、總結
亞馬遜CFN與阿里ROS
阿里的ROS的定位與AWS的CFN是一致的即硼,功能上也是瞄著CFN追趕逃片。當前情況為:ROS在虛機應用的支持能力遠不及AWS-CFN。不過這個cfn-tools也是AWS的殺手锏只酥,各大云廠商都沒有褥实。只有Heat做了一些努力去兼容。
ROS的設計器能力需要增強层皱。目前功能較弱性锭,且在使用中有偶現(xiàn)異常。
亞馬遜CFN與華為AOS
????從功能&語法層面叫胖,CFN與AOS基本屬于第一陣營草冈,各自互有領先。比如AOS在設計器上領先CFN。不過CFN在虛機應用怎棱,及復雜多服務組合場景下哩俭,領先AOS。所以AOS需要在后續(xù)用更多的場景去進一步催熟拳恋。
阿里ROS與華為AOS
ROS在虛機應用部署凡资,及可編排服務的多樣性上優(yōu)于AOS。而AOS在容器應用相關的能力上優(yōu)于ROS谬运。圖形化模板編輯器能力則是AOS大幅度領先隙赁。
青云
設計器所見即所得的方式,大幅降低使用門檻梆暖,用戶體驗很好伞访。建議將模板語法盡快開放出來,因為編排僅靠圖形化設計器轰驳,支持的場景有限厚掷。
騰訊云
云平臺上居然沒有編排服務,畢竟目前為止级解,所有公有云都有的剛需服務冒黑。希望騰訊云的技術專家回家好好反省,并盡快補齊這個必備的能力勤哗。(比如挖一些華為AOS的專家抡爹,你看天下武功出少林,中國容器看華為俺陋,都一家人嘛)
微軟Azure
微軟的模板使用Json語法豁延,函數(shù)的使用是混雜在Json內部昙篙,并不像aws-cfn那么簡潔腊状,整體體驗并不好。感覺把復雜度都提高了很多苔可。
當然缴挖,天然的Visual Studio編輯器支持,是編寫模板一個便捷之處焚辅。Infrastructureas Code嘛映屋,寫代碼當然有好的IDE才行。
谷歌CDM
CDM(CloudDeployment Manager)使用了jinja2和Python作為模板語法同蜻,使得模板覆蓋復雜場景的能力大大增強棚点,算一種優(yōu)勢吧。
然而沒有合適的UI界面湾蔓,我想你太不懂國人了瘫析。
Helm
語法層面的能力OK,足夠支撐在單個K8S集群中,各種k8s對象的復雜編排場景贬循。自身定位為K8S上的管理工具咸包,一般不作為公有云獨立服務,僅為容器服務的附屬功能杖虾。
沒有圖形化設計器烂瘫,也不能將基礎資源與K8S對象混合編排。目前進入CNCF的孵化項目奇适,作為K8S生態(tài)一環(huán)坟比。
OpenStack Heat
定位是與AWS的Cloudformation一致的,實際編排能力與效果與ROS相似嚷往,也就是與CFN還有些差距温算。根據(jù)CFN語法和能力做了很多兼容工作。
沒有圖形化設計器间影,主要側重OpneStack對象or生態(tài)的編排注竿,其他服務支持一般。屬于OpenStack生態(tài)一環(huán)魂贬。