Chef:恰如其名,Chef把基礎(chǔ)設(shè)施配置、部署 和管理等工作都集成在一起,可讓任何運(yùn)行Chef客戶(hù)端的系統(tǒng)解釋。當(dāng)然,在后端還是存在著一些服務(wù)器復(fù)雜性的,但是,正如我在SearchAWS發(fā)布的“在AWS中使用Chef”一文中所詳細(xì)介紹的那樣,Chef可以管理云計(jì)算應(yīng)用程序部署的所有工作,它可以在云計(jì)算本身內(nèi)運(yùn)行(即Chef服務(wù)器、開(kāi)發(fā)人員工作站、系統(tǒng)節(jié)點(diǎn)和分析引擎等都可以作為IaaS實(shí)例運(yùn)行)。Chef支持的主要云計(jì)算服務(wù)包括:AWS、Azure、Google、VMware(vCloud Air)、IBM公司的Softlayer以及SmartCloud Orchestrator 和 Rackspace/OpenStack。
Puppet:Puppet被稱(chēng)為是協(xié)調(diào)軟件的開(kāi)山鼻祖,該產(chǎn)品不僅自身成熟而且還受到了廣泛支持。Puppet擁有一個(gè)基于類(lèi)的領(lǐng)域特定語(yǔ)言(DSL),其設(shè)計(jì)靈感來(lái)自于Nagios配置文件格式,它類(lèi)似于JSON。雖然它擁有一個(gè)Web用戶(hù)界面,但是其高級(jí)配置需要編程和使用一個(gè)CLI。Puppet Razor是一個(gè)最新發(fā)布的工具,它可以自動(dòng)發(fā)現(xiàn)和庫(kù)存基礎(chǔ)設(shè)施,并動(dòng)態(tài)地為裸機(jī)管理選擇一個(gè)首選的系統(tǒng)映像。
Ansible: 這是一個(gè)開(kāi)源平臺(tái),其商業(yè)版已于近期被Red Hat公司收購(gòu),Ansible不需要軟件代理;它可通過(guò)安全Shell連接進(jìn)行完全運(yùn)行。Ansible針對(duì)其配置“playbooks”使用了YAML,這主要是用于進(jìn)行系統(tǒng)配置、部署和協(xié)調(diào)等工作。
SaltStack: 這是一個(gè)相對(duì)較新的平臺(tái),它主要側(cè)重于速度和可擴(kuò)展性方面,Salt有兩種版本:開(kāi)源代碼和支持企業(yè)版。Salt使用YAML來(lái)描述系統(tǒng)狀態(tài);但是,整個(gè)平臺(tái)包括了一組復(fù)雜的組件,這對(duì)于那些并不熟悉另一種自動(dòng)化平臺(tái)的用戶(hù)來(lái)說(shuō)就意味著一個(gè)艱難的學(xué)習(xí)曲線。
建議與用例
本文所介紹的任何自動(dòng)化大平臺(tái)都可在私有基礎(chǔ)設(shè)施中和跨所有主要公有云平臺(tái)正常運(yùn)行;但是,具體的集成細(xì)節(jié)則大相徑庭。
選擇產(chǎn)品的決策應(yīng)當(dāng)從企業(yè)基礎(chǔ)設(shè)施的復(fù)雜性和規(guī)模出發(fā),關(guān)注IT/開(kāi)發(fā)運(yùn)營(yíng)團(tuán)隊(duì)所擁有的專(zhuān)業(yè)知識(shí)。雖然諸如戴爾公司Cloud Manager(即之前的Enstratius)、RightScal或Scalr這類(lèi)的集成SaaS產(chǎn)品在連接至內(nèi)部基礎(chǔ)設(shè)施時(shí)會(huì)有一些麻煩,但是它們都是最易于部署和操作的,這是因?yàn)樗鼈兌继峁┝巳娴腤eb用戶(hù)界面和預(yù)置模板,并與大型云計(jì)算服務(wù)相集成。在眾多較為通用的工具中,Puppet是最為成熟的產(chǎn)品,這使得它在大型企業(yè)用戶(hù)變得非常流行。此外,由于其無(wú)代理的設(shè)計(jì)和簡(jiǎn)單的YAML語(yǔ)法,Ansible可能更易于實(shí)施和學(xué)習(xí)。