七款做好DevOps的強大工具
英文原文:7 cool tools for doing devops right
以前,開發(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 的高調用戶之一,非死book 最近開放了一些自己的 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,這些都是不可能實現的。”
來自:http://news.cnblogs.com/n/513251/