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