IT專(zhuān)業(yè)人員越來(lái)越多地轉(zhuǎn)向Chef和Puppet開(kāi)源云自動(dòng)化和編排。但是其他選項(xiàng),如TOSCA,也值得我們探索。
部署軟件不是一件簡(jiǎn)單的事,而在面向服務(wù)架構(gòu)、web服務(wù)、微服務(wù)和云的時(shí)代則更為復(fù)雜。虛擬化提出了新的挑戰(zhàn),賦予應(yīng)用程序和服務(wù)器新的角色?;镜能浖僮鞴ぞ哒谵D(zhuǎn)變成自動(dòng)化和流程編排工具,而開(kāi)源軟件則充當(dāng)了引路人的角色,特別是Chef和Puppet。
現(xiàn)今用來(lái)部署應(yīng)用的軟件工具源自早期的一些工具,這些工具允許開(kāi)發(fā)者將操作指南創(chuàng)建到應(yīng)用中以達(dá)到簡(jiǎn)化部署的目的。這個(gè)概念,即所謂的DevOps,目標(biāo)是準(zhǔn)確和快速部署,但達(dá)到目標(biāo)的不同方法很快分成了兩種不同的派別。
Chef和Puppet二分天下
最簡(jiǎn)單的自動(dòng)化部署方式是通過(guò)腳本。手動(dòng)部署軟件就是使用操作系統(tǒng)或云管理系統(tǒng)的工具啟動(dòng)命令,而腳本是一種可以靈活的將命令寫(xiě)到一個(gè)文件里然后快速執(zhí)行的方式。當(dāng)今市場(chǎng)上有兩個(gè)很流行的開(kāi)源自動(dòng)化工具,Chef和Puppet。
Chef模型被認(rèn)為是命令式或規(guī)定式,因?yàn)樗沁^(guò)程化的 ,明確地描述了如何部署和連接云應(yīng)用程序組件。Chef以一種對(duì)程序員友好的方式來(lái)創(chuàng)建 菜譜 和 烹飪手冊(cè) 。每個(gè)部署的步驟可以獨(dú)立進(jìn)行描述,這些獨(dú)立的菜譜匯集到一起創(chuàng)建一個(gè)可重復(fù)的應(yīng)用程序部署過(guò)程。由于每個(gè)操作步驟都可以在一個(gè)菜譜中描述,所有只要可以手動(dòng)部署的步驟,Chef都可以自動(dòng)化。
然而同樣的程序員友好模式對(duì)某些用戶(hù)來(lái)說(shuō)并不是他們想要的。對(duì)這些用戶(hù)來(lái)說(shuō),部署應(yīng)用程序的合理方式是按照模型部署的最終狀態(tài)來(lái)描述。該開(kāi)源DevOps工具對(duì)模型進(jìn)行處理來(lái)創(chuàng)建最終的狀態(tài)。這個(gè)過(guò)程通常被稱(chēng)為聲明式或基于目標(biāo)的DevOps,也是另一種流行工具Puppet的基礎(chǔ)。
如果Chef是對(duì)程序員友好的,那Puppet則最初源于運(yùn)營(yíng)人員,比起詳細(xì)的如何操作的步驟,他們更熟悉如何描述他們最終想要的狀態(tài)。就像高級(jí)語(yǔ)言讓編程更加簡(jiǎn)單一樣,Puppet模型能夠簡(jiǎn)化部署描述。此外,由于最終狀態(tài)的這種方法可以用來(lái)描述在應(yīng)用生命周期管理(ALM)中的任何步驟,Puppet自然可以接納一個(gè)完整的ALM功能,這也是Puppet的粉絲所喜歡的。
Puppet的問(wèn)題是你只能部署那些可以被模型化的步驟。隨著新的部署問(wèn)題的出現(xiàn),Puppet建模的過(guò)程開(kāi)始變得同命令式腳本開(kāi)發(fā)相似,而事實(shí)上,云的發(fā)展已經(jīng)開(kāi)始彌合這一鴻溝。Chef和Puppet似乎變得更接近彼此,而一些新的DevOps工具則跨過(guò)聲明式/命令式的分隔線(xiàn)。不過(guò),新的部署和配置管理的主候選工具全都支持聲明模型;沒(méi)有哪個(gè)是純命令模式的。
云端的選擇
云也迫使了部署和配置管理工具的發(fā)展。由于云部署需要處理虛擬化的兩個(gè)層次,使得所有的部署和配置自動(dòng)化變得更加復(fù)雜,而DevOps不得不同時(shí)面對(duì)部署和生命周期管理的問(wèn)題。這反映在一個(gè)新的云名詞上:編排。這反映了將復(fù)雜的步驟進(jìn)行統(tǒng)一的需求。
編排連接了聲明式和命令式的模型,但聲明式編排似乎是更受歡迎的方法;描述一樣?xùn)|西當(dāng)前和期望的狀態(tài)是一種不錯(cuò)的生命周期管理的方法。兩個(gè)新的純聲明式模型CFEngine和Juju,同Chef,Puppet一起正在獲得更多關(guān)注。這些工具側(cè)重于模型構(gòu)造并提供政策和庫(kù)的支持。此外,同時(shí)支持聲明式和命令式的流程控制工具Ansible和SaltStack,正開(kāi)始挑戰(zhàn)過(guò)去的那種兩極化方式。
目前為止提到的工具是從DevOps和傳統(tǒng)部署演變而來(lái)。那么那些專(zhuān)門(mén)為云而生的工具的進(jìn)展怎樣了呢?國(guó)際標(biāo)準(zhǔn)化組織結(jié)構(gòu)化信息標(biāo)準(zhǔn)推進(jìn)組織(OASIS)開(kāi)發(fā)了一個(gè)名為拓?fù)浜蜆I(yè)務(wù)流程規(guī)范云應(yīng)用的聲明性模型的方法。TOSCA解決了應(yīng)用程序部署的最終狀態(tài)定義以及虛擬資源和資源池的具體建模。TOSCA還集成了管理定義以支持生命周期自動(dòng)化。
最適合你的云編排方式是什么?這里有一些技巧:
支持包括Chef在內(nèi)的命令模型的工具是最強(qiáng)大的,在任何云中支持幾乎任何種類(lèi)的應(yīng)用。但對(duì)于非程序員來(lái)說(shuō)學(xué)起來(lái)更困難。
如果你計(jì)劃依賴(lài)云端打包好的應(yīng)用,那么檢查該廠商是否擁有一個(gè)優(yōu)選的編排方式,如果有的話(huà),請(qǐng)?jiān)谀愕膽?yīng)用中也認(rèn)真考慮采取這種方式。
TOSCA是云自己的模型,但也是最不成熟的。如果你當(dāng)前無(wú)法做到,則可以考慮聲明式云編排工具,這樣過(guò)渡到TOSCA會(huì)更容易些。
如果你已經(jīng)對(duì)數(shù)據(jù)中心部署的某個(gè)DevOps工具很熟悉,不要僅僅因?yàn)橐w移到云了就棄之不用了。所有的DevOps工具都在變得更加云友好。
盡管對(duì)編排這塊來(lái)說(shuō)還相對(duì)較新,但各式各樣的開(kāi)源,甚至一些商業(yè)的軟件包,都支持TOSCA。一些流行的基于TOSCA的云編排工具包括Cloudify,OpenStack Heat,Alien4Cloud,以及ARIA和OpenTOSCA,這兩個(gè)都是規(guī)范的參考實(shí)現(xiàn)。除此之外,TOSCA被接受的原因還包括網(wǎng)絡(luò)功能虛擬化和軟件定義網(wǎng)絡(luò)。很多人認(rèn)為T(mén)OSCA在這些領(lǐng)域的成功代表著這就是編排的未來(lái)。
編排對(duì)于應(yīng)用的未來(lái)很關(guān)鍵。這是一種可以同時(shí)處理敏捷應(yīng)用和敏捷虛擬資源的DevOps的形式。無(wú)論你用什么方法來(lái)編排,都應(yīng)該隨著應(yīng)用和虛擬化發(fā)展的同時(shí)不斷審查和修改細(xì)節(jié)。
文章編輯:CobiNet(寧波),本公司專(zhuān)注于電訊配件,銅纜綜合布線(xiàn)系列領(lǐng)域產(chǎn)品研發(fā)生產(chǎn)超五類(lèi),六類(lèi),七類(lèi)屏蔽網(wǎng)線(xiàn)/屏蔽模塊及相關(guān)模塊配件,歡迎來(lái)電咨詢(xún)0574 88168918,網(wǎng)址jsxlzg.com
我們是萬(wàn)兆屏蔽模塊,10G屏蔽模塊,屏蔽線(xiàn)生產(chǎn)廠家。
?2016-2019寧波科博通信技術(shù)有限公司版權(quán)所有浙ICP備16026074號(hào)