以前,開發(fā)(Development)和運維(Operations)總是相互指責(zé)。程序代碼永遠(yuǎn)不會按照開發(fā)者的意愿及時更新,服務(wù)器的管理人員則對開發(fā)者隨意簡化進(jìn)程擱置服務(wù)請求十分惱火。
直到DevOps的到來,一些工具消除了雙方之間的隔閡,提供了從配置管理到應(yīng)用程序移植的服務(wù),這條戰(zhàn)線便消失了。這里介紹幾款最近頗受好評的DevOps工具。
1. Atlas
HashiCorp最新推出的Atlas提供了可視化的基礎(chǔ)設(shè)施,在配置管理和服務(wù)搜尋之外,還提供了服務(wù)器、包容器和虛擬機(jī)。該項目是在其廣受歡迎的開源項目Vagrant、Packer、Serf、Consul 和Terraform的基礎(chǔ)上建立的,其特有閉源模式能使DevOps在AWS、谷歌計算引擎、Azure以及OpenStack等各種云服務(wù)中運行自如,此外,Atlas還提供了可用于開發(fā)、資源配置和維護(hù)應(yīng)用程序的儀表板。
Lithium Technologies 工程師Justin Franks目前所用的開發(fā)工具是Vagrant,他正在考慮使用Atlas為公司的客戶互動平臺服務(wù)。Franks 說Atlas在Lithium Technologies已經(jīng)投入使用,現(xiàn)在主要在測試其持續(xù)集成和配置的能力。“有很多的工具,比如Jenkins、Travis和Bamboo,它們都過不了最后資源配置的那一關(guān)。”弗蘭克如是說。
Atlas自購系統(tǒng)的安裝預(yù)計在今年年初進(jìn)行。
2. Chef
Chef是一個系統(tǒng)和云端基礎(chǔ)架構(gòu)的框架,它可以通過被稱為“recipes”的簡短可重復(fù)腳本自行操作基礎(chǔ)設(shè)施的建立、配置和管理。但Chef的實權(quán)其實只在于操作其可插拔的配置模塊(又名“食譜”),而在Chef中有近2000個這樣的模塊。作為Chef的高調(diào)用戶之一,F(xiàn)acebook最近開放了一些自己的Chef“食譜”的源代碼,包括Taste Tester測試框架和Grocery Delivery,后者是用于監(jiān)測源代碼回購(如Git)并保持本地Chef服務(wù)器同步的工具。
賓夕法尼亞大學(xué)沃頓商學(xué)院也是Chef的用戶之一。“Chef可自動化操作一些時間密集型和資源密集型的復(fù)雜任務(wù),更重要的是它使我們能夠集中精力進(jìn)行創(chuàng)新和提高服務(wù)質(zhì)量,”該校的技術(shù)總監(jiān)Sanjay Modi在Chef網(wǎng)站的個案分析上說,“Chef也將為組織內(nèi)的協(xié)作和工作效率提高帶來更多的可能。” Chef已被使用于沃頓商學(xué)院的Amazon EC2資源、Linux節(jié)點和本地虛擬機(jī)的自動化配置管理。
3. Docker
Docker以其集裝化技術(shù)為應(yīng)用程序帶來便攜性,在Docker中,應(yīng)用程序可以跨平臺運行自給系統(tǒng)。Docker是由Docker引擎和Docker集線器組成的,前者是一個輕量級的運行時間和包裝工具,后者則是應(yīng)用程序共享和工作流程自動化的云服務(wù)。
“Docker已成為Yelp下一代測試和服務(wù)管理基礎(chǔ)設(shè)施的重要組成部分,”Yelp 的技術(shù)總監(jiān)Sam Eaton在Docker網(wǎng)站上的案例研究中說,“依賴性隔離和‘集裝箱’的快速旋轉(zhuǎn)使得開發(fā)周期和測試速度提高了不只4倍。”
4. Puppet
通過機(jī)器和軟件的自動化配置和管理,Puppet公司從Puppet實驗室提供數(shù)據(jù)中心的業(yè)務(wù)流程。最新發(fā)布的3.7版本推出了Puppet Apps,這是一款專用于應(yīng)用IT自動化的應(yīng)用,其包含的Node Manager,可用于管理大量常變系統(tǒng)。Puppet的開源版本也已推出。
斯坦福大學(xué)采用Puppet的開源版本來“解決開發(fā)新型數(shù)字圖書館服務(wù)和保持這些服務(wù)高性能安全運行之間的矛盾,”斯坦福大學(xué)的Bess Sadler在Puppet網(wǎng)站的視頻推薦中如是說。
她還指出開發(fā)者應(yīng)更多地參與系統(tǒng)管理,而系統(tǒng)管理員也同樣參與了軟件開發(fā),于是,應(yīng)用開發(fā)也就更加快捷省時。
5. SaltStack
SaltStack提供數(shù)據(jù)自動化、服務(wù)器配置、云端建設(shè)和應(yīng)用程序配置的系統(tǒng)管理。事件驅(qū)動的云端基礎(chǔ)架構(gòu)自動化工具,可以自動運行DevOps工作流程中的任務(wù)。Deseret Digital Media已經(jīng)采用SaltStack自動化運行環(huán)境長達(dá)兩年,其特點是大約200個虛擬機(jī)用于運轉(zhuǎn)生產(chǎn)和登臺環(huán)境。
Deseret Digital的開發(fā)部主管Justin Carmony表示,SaltStack“使操作更加貼近開發(fā)者”。Deseret Digital有三個運營人員和30個開發(fā)者:SaltStack讓研發(fā)與運營統(tǒng)一戰(zhàn)線,比如在新服務(wù)器配置上。一般來說,運營和研發(fā)會一直爭吵,無法達(dá)成統(tǒng)一意見。而SaltStack提供了一種通用的方法和通用語言來管理服務(wù)器,從而有助于雙方消除誤會,方便溝通。
6. ScriptRock GuardRail
GuardRail提供了配置監(jiān)控,連續(xù)監(jiān)測機(jī)器的配置狀態(tài)。它可以確保用戶的生產(chǎn)環(huán)境是符合質(zhì)量保證以及測試和開發(fā)環(huán)境的。VersionOne,一個靈活項目管理平臺的制造商,在遇到的配置漂移和自動化的挑戰(zhàn)后,果斷轉(zhuǎn)向了GuardRail。
“開發(fā)者走捷徑使自動化更易實現(xiàn)。為了在新的代理上運行已有創(chuàng)建,他們改變了之前用于其他創(chuàng)建的代碼。于是基礎(chǔ)設(shè)施的不穩(wěn)定破壞了兼容多個生成代理的可能性。” VersionOne 的產(chǎn)品經(jīng)理Ian Buchanan在案例分析中如是說。“而有了GuardRail,我們現(xiàn)在可以了解到任何生成代理是如何配置的,所以我們能夠依照我們的意愿,確實地擴(kuò)展到盡可能多的代理。”現(xiàn)在,VersionOne可以直觀的看到配置漂移,可以記錄預(yù)期,并創(chuàng)造了人類可讀的測試,這相當(dāng)于節(jié)省了一個專職的測試人員。
7. Splunk
Splunk是在整個應(yīng)用程序的生命周期中實時尋找和修復(fù)問題的工具,它使開發(fā)者能夠直接看到生產(chǎn)環(huán)境中的數(shù)據(jù),而無需訪問生產(chǎn)機(jī)器。Splunk協(xié)助用戶進(jìn)行DevOps過程,包括持續(xù)的集成和資源配置。
User EnerNOC使用Splunk大概五年了,這是一家為電網(wǎng)運營商等提供能量智能軟件的公司。“Splunk從根本上改變我們操作生產(chǎn)系統(tǒng)的方式,”EnerNOC 公司的首席工程師James Nichol介紹說,“它使技術(shù)和非技術(shù)用戶都能夠深入了解一個非常復(fù)雜的系統(tǒng),這個系統(tǒng)原本是他們無法了解的。我們已經(jīng)有了虛擬服務(wù)器和開發(fā)經(jīng)理,服務(wù)臺運營商也建立了儀表板和警報,并開始深入挖掘數(shù)據(jù)——沒有Splunk,這些都是不可能實現(xiàn)的。”