容器技術(shù)目前在計(jì)算領(lǐng)域可謂炙手可熱。它們能夠以高效而切實(shí)的方式幫助我們完成應(yīng)用程序部署工作。不過當(dāng)復(fù)雜性較高的應(yīng)用程序被拆分至多種容器當(dāng)中時(shí),情況將因此而變得更加復(fù)雜。面對這種情況,容器機(jī)制往往需要能夠更為有效地彼此協(xié)作,而這也正是容器編排方案的誕生意義。編排機(jī)制能夠簡化容器體系的管理難度,從而確保不同容器之間能夠順暢對接并以適當(dāng)?shù)姆绞綄?shí)現(xiàn)協(xié)作,從而最終達(dá)成我們?yōu)槠滟x予的功能預(yù)期。
云環(huán)境之下的容器編排類工具可謂多種多樣,那么問題來了——管理員應(yīng)該如何從中挑選出最適合自己的解決方案?Gigaspaces公司創(chuàng)始人兼CTO Nati Shalom和他的幾位同事就這一話題展開了探討,希望能夠幫助管理員們通過本次OpenStack溫哥華峰會(huì)找到上述問題的答案。他們的對話將主要圍繞幾款不同容器編排工具之間的差異而展開,其中包括Kubernetes、Heat、Fleet、MaestroNG以及TOSCA。除此之外,他們還將提供適用于不同用例的、能夠切實(shí)幫助各位挑選出理想解決方案的最佳實(shí)踐。
Nati將在本次OpenStack溫哥華峰會(huì)上以主題演講的形式帶來更多信息,我們的關(guān)注重點(diǎn)則集中在他如何看待容器、編排機(jī)制以及OpenStack的未來發(fā)展方向?qū)用妗?/p>
Q:如何從最簡潔的表達(dá)出發(fā),您希望各位與會(huì)者能夠在此次OpenStack峰會(huì)當(dāng)中獲得怎樣的啟示?
A:本次對話主要關(guān)注各類熱門編排方案,旨在勾勒出各方案之間的主要差異以及潛在協(xié)同疚——而后深入剖析最佳實(shí)踐,探討如何針對特定任務(wù)選擇正確的工具。由于我們的時(shí)間有限,因此我們恐怕無法為每款工具提供現(xiàn)場示例或者從整體用戶體驗(yàn)層面作出比較,不過專注于解決各類編排方案之間、經(jīng)常導(dǎo)致語義區(qū)別的差異之處。
為了回答這個(gè)問題——云管理員需要首先整理出幾個(gè)關(guān)鍵性的待驗(yàn)證問題。其中每一個(gè)問題可能都會(huì)為當(dāng)前任務(wù)帶來某種最佳工具/解決方案。我會(huì)根據(jù)大家的具體環(huán)境將這些問題進(jìn)行分類,而后參考大家在管理這些環(huán)境時(shí)所使用的具體工具,最后是考量各位需要的編排機(jī)制屬于哪種層級——到底是面向特定項(xiàng)目的一次性方案還是面向長期或者全局的通用型方案,再將其與應(yīng)用程序堆棧結(jié)合并進(jìn)行綜合評估。
因此作為第一步,大家需要考慮自己的運(yùn)行環(huán)境到底屬于純OpenStack、純?nèi)萜鬟€是可能包含有傳統(tǒng)基礎(chǔ)設(shè)施的混合型模式(例如vSphere或者物理硬件)。
如果大家選擇的是純OpenStack環(huán)境,那么各位的第一選項(xiàng)肯定是Heat。將其與其它互補(bǔ)性堆棧相結(jié)合能夠很好地完成軟件配置、監(jiān)控、任務(wù)流程以及管理政策等日常工作。其中一部分可能由OpenStack下轄的項(xiàng)目直接提供,而某些情況下大家可能應(yīng)該更傾向于使用其它相關(guān)開源項(xiàng)目。如果各位有計(jì)劃遷移至純?nèi)萜鳝h(huán)境,那么首選方案很可能會(huì)是Docker。就目前的情況看,我們需要整合一大堆互補(bǔ)性堆棧才能實(shí)現(xiàn)常見的日志、監(jiān)控以及任務(wù)流程管理工作——舉例來講,Kubernetes能夠提供一套專門面向微服務(wù)架構(gòu)的高級編排方案。如果大家的環(huán)境屬于包含有容器、配置管理工具(例如Puppet、Chef以及SaltStack)、私有云(例如OpenStack以及VMware)或者公有云(例如Amazon以及谷歌)的混合型體系,那么最理想的選擇應(yīng)該是基于TOSCA的編排方案——其同時(shí)不會(huì)對基礎(chǔ)設(shè)施以及工具鏈的具體類型提出任何限制。很明顯,上述結(jié)論并不包括已經(jīng)在Chef或者Puppet等工具身上投入了重金的現(xiàn)有客戶,在這種情況下我們的最佳方案是選擇那些能夠以內(nèi)置方式支持此類框架的編排工具——毫無疑問。
接下來的問題在于,大家到底是希望這套編排方案僅僅針對單一產(chǎn)品/項(xiàng)目,還是要選擇一套適用于多數(shù)應(yīng)用程序的通用型機(jī)制,而后者的具體效果當(dāng)然會(huì)更好一些。
很多產(chǎn)品本身就自帶編排方案,而且其針對該應(yīng)用程序的特定用例進(jìn)行了量身訂做——最明顯的例子就是Cloud Foundry/Bosh以及Hadoop/Yarn這兩套組合。其它編排工具則通常屬于通用型解決方案,其中內(nèi)置在面向各類應(yīng)用程序的模板,它們在某些情況下也能帶來良好的表現(xiàn)。舉例來說,一部分編排工具專門針對NFV等網(wǎng)絡(luò)應(yīng)用程序進(jìn)行了優(yōu)化與調(diào)整,其它一些則主要面向大數(shù)據(jù)類用例,因此在這方面即使我個(gè)人更傾向于選擇省力省心的通用型編排工具、但必須承認(rèn)專用方案才最破例我自己的目標(biāo)工作負(fù)載。
另一大重要考量標(biāo)準(zhǔn)就是可嵌入能力,將編排工具作為另一款產(chǎn)品的組成部分可不像為自己的數(shù)據(jù)中心運(yùn)營體系選擇編排工具那么簡單。在這種情況下,我一般會(huì)考慮那些能夠?qū)⑦\(yùn)行時(shí)負(fù)擔(dān)控制在最低程度的輕量級解決方案,其往往只屬于一套代碼庫。大家也許還需要決定自己到底是要選擇一套能夠面向整個(gè)生命周期內(nèi)各個(gè)后部署層面(包括監(jiān)控、自我修復(fù)以及自動(dòng)規(guī)模伸縮)的編排工具,還是單純強(qiáng)調(diào)安裝或者配置流程。
一部分編排工具將自身限定為了主要用于處理安裝流程,但也有一些編排工具能夠涵蓋應(yīng)用程序整個(gè)生命周期當(dāng)中更為廣泛的后部署管理任務(wù)——其中包括監(jiān)控、更新政策、規(guī)模伸縮以及自我修復(fù)等等。
最后,很重要的一點(diǎn)就是了解自己的堆棧在網(wǎng)絡(luò)、DevOps工具鏈、監(jiān)控以及語言等層面到底表現(xiàn)出什么樣的面貌。很多DevOps環(huán)境都是由一系列開源項(xiàng)目所構(gòu)成,這些項(xiàng)目各自負(fù)責(zé)日志、監(jiān)控以及生命周期中的其它各方面工作。這類工具組合的發(fā)展變化速度很快。一部分編排工具當(dāng)中內(nèi)置有用于此類工具的整合機(jī)制,但其實(shí)際效果在將新型工具納入整個(gè)體系時(shí)仍然比較有限。這種情況在此類工具恰好屬于其自有集群的一部分時(shí)表現(xiàn)得尤為突出,因此我們需要在應(yīng)用程序編排與特定工具編排之間找到更為明確且可行的高級關(guān)系??紤]到這一情況,我們最終需要編排領(lǐng)域中的編排工具——最明顯的例子就是應(yīng)用程序編排與網(wǎng)絡(luò)編排,或者應(yīng)用程序編排與大數(shù)據(jù)編排,其中應(yīng)用程序編排機(jī)制需要與工具編排進(jìn)行交互并將一部分職責(zé)分配給后者。
Q:您認(rèn)為不同格式之間正在出現(xiàn)匯聚趨勢?或者說,其中一到兩種最終是否會(huì)在云環(huán)境下壓倒其它備選方案?
A:從我的角度來看,我敢說未來很可能形成三大陣營并立的局面:
1.純Docker(或者大部分由Docker構(gòu)成)——此類工具將由Go語言編寫而成,且將作為現(xiàn)有Docker項(xiàng)目的擴(kuò)展成果出現(xiàn)。在這一陣營中,大部分占主導(dǎo)地位的框架可能都將由Docker自身所提供(例如Swarm、Compose或者M(jìn)achine等)。
2.特定基礎(chǔ)設(shè)施——這些工具將大部分負(fù)責(zé)提供映射至特定基礎(chǔ)設(shè)施的核心功能,此陣營的主要目標(biāo)面向那些有意將應(yīng)用程序單純部署在特定環(huán)境下的受眾群體。Amazon Cloud Formation以及OpenStack Heat正是這一類別中的典型代表。
3.混合型——對于各類環(huán)境而言,其編排機(jī)制天然擁有混合屬性,其中包含有大量除Docker之外的其它技術(shù)堆棧,例如Chef、Puppet或者Ansible,又或者VMware、OpenStack以及AWS等云方案。我認(rèn)為在這一陣營當(dāng)中,TOSCA很有可能成為其最為重要的特定編排選項(xiàng),這也是由其內(nèi)置中立性所決定的。
Q:縱觀這次涉及范疇極廣的OpenStack溫哥華峰會(huì),其中最令您感到興奮的內(nèi)容是什么?您認(rèn)為未來我們面前又會(huì)出現(xiàn)哪些重大的發(fā)展議題?
A:在NFV(即網(wǎng)絡(luò)功能虛擬化)以及客戶用例范疇,我們了解到客戶們?nèi)绾螌?shí)際使用OpenStack,這一點(diǎn)非常令人興奮。我當(dāng)然也希望聽到更多與OpenStack發(fā)展路線圖相關(guān)的消息——只有對未來版本內(nèi)正處于規(guī)劃中的內(nèi)容有所了解,才能作出更有針對性的探討。最后一個(gè)問題的答案是,網(wǎng)絡(luò):峰會(huì)一直是與開發(fā)人員及決策制定者們進(jìn)行交流的一片獨(dú)特舞臺(tái),我們也能在這里了解到與人們接觸并為OpenStack項(xiàng)目作出貢獻(xiàn)相關(guān)的令人振奮的消息。
Q:作為OpenStack這樣一個(gè)項(xiàng)目,在未來的發(fā)展過程中需要關(guān)注哪些重點(diǎn)內(nèi)容?Liberty版本會(huì)帶來哪些新特性,特別是在編排方面?
A:我個(gè)人認(rèn)為,OpenStack如果能夠能夠找到正確的途徑、引導(dǎo)更多云服務(wù)供應(yīng)商為其提供或者添加支持,那么這一項(xiàng)目的未來成功將更有保障,其中包括那些被廣泛視為OpenStack競爭對手的AWS、谷歌以及微軟Azure。同樣的,如果OpenStack項(xiàng)目能夠以類似于其它高人氣開源項(xiàng)目的方式激勵(lì)人們?yōu)槠涮峁┰С?,那么其未來同樣?huì)更加光芒四射。
我認(rèn)為到目前為止,人們的大多數(shù)關(guān)注重點(diǎn)還集中在OpenStack作為Amazon替代方案的可能性層面。就我個(gè)人看來,這樣的戰(zhàn)略思路可能會(huì)導(dǎo)致OpenStack在大多數(shù)實(shí)踐項(xiàng)目中缺乏施展空間。我覺得VMware為OpenStack提供支持就是個(gè)很好的例子,它證明了潛在競爭對手的基礎(chǔ)設(shè)施同樣可以與OpenStack相對接、相兼容。如果我們能夠簡化其中的流程及難度,引導(dǎo)其它基礎(chǔ)設(shè)施供應(yīng)商將OpenStack兼容能力并入OpenStack API,那么我們所獲得的成就將遠(yuǎn)遠(yuǎn)超過單純將OpenStack作為一套可行的競爭性替代方案。基本上,我認(rèn)為包容性而非排他性才是至關(guān)重要的,這也正是開源的基本原則。
如果從編排機(jī)制的角度思考,我認(rèn)為最好的方式就是讓Heat能夠成為其它編排框架與OpenStack相融合的集成點(diǎn),也就是我們之前談到過的那些框架方案。在這種情況下,將TOSCA支持能力添加到Heat當(dāng)中也將成為正確的發(fā)展步調(diào),從而通過Heat翻譯器項(xiàng)目為OpenStack帶來明確的下一步發(fā)展方向。
在我看來,OpenStack Kilo與Liberty所帶來的各類令人興奮的功能特性都是在納入眾多最適合私有云環(huán)境或者NFV的獨(dú)特能力。其中包括對裸機(jī)的支持能力(Ironic),即將推出的共享文件系統(tǒng)(Manila)再加上允許用戶對資源利用進(jìn)行進(jìn)一步控制的高級調(diào)度規(guī)則等。我個(gè)人覺得,Ironic出現(xiàn)在容器體系當(dāng)中將把性能表現(xiàn)與資源利用水平提升到新的量級,而且這樣一來企業(yè)客戶在針對OpenStack項(xiàng)目進(jìn)行投資回報(bào)討論時(shí)、也能得到更有說服力的分析結(jié)論。
必須強(qiáng)調(diào)的是,我認(rèn)為Kilo發(fā)布所透露的核心消息在于,如今OpenStack已經(jīng)沒那么多新消息可曝光了。很明顯,這一跡象證明了OpenStack項(xiàng)目已經(jīng)最終走向穩(wěn)定,其目前追求的是核心業(yè)務(wù)的完整性、而非不斷向其它新型領(lǐng)域擴(kuò)展。
Q:您還有什么要補(bǔ)充的內(nèi)容嗎?
A:由于這次對話的主題可以非常寬泛,因此我歡迎大家通過評論觀點(diǎn)或者建議告訴我們更多探討哪些各位感興趣的領(lǐng)域。我也樂于看到大家在使用過程中就OpenStack本身或者相關(guān)工具所總結(jié)出的經(jīng)驗(yàn),各位可以點(diǎn)擊此處訪問我的Twitter。總而言之,我希望自己的對話能夠盡可能多地涵蓋聽眾朋友們感興趣的內(nèi)容。
除此之外,我也要借此機(jī)會(huì)提醒各位,接下來世界范圍內(nèi)還將陸續(xù)召開一系列其它OpenStack活動(dòng),因此沒能來到溫哥華的朋友們也不必灰心。而且我強(qiáng)烈建議各位沒能到場的朋友點(diǎn)擊此處查看相關(guān)日程安排,就在本次峰會(huì)結(jié)束后一場激動(dòng)人心的OpenStack Days秀也將馬上開始自己的歐洲、非洲與中東地區(qū)旅程。我個(gè)人將參與到OpenStack以色列大會(huì)中去,在那里將有來自世界各地的宣講人分享自己的真知灼見——其中最值得一提的就是來自德國電信公司的Axel Clauberg,在我心目中他所主持的OpenStack項(xiàng)目可謂迄今為止最具野心的發(fā)展成果。