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