七款做好DevOps的強大工具

TP_funny發表於2015-01-17


以前,開發(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
來自:部落格園
相關閱讀
評論(1)

相關文章