國外程式設計師收集整理的 DevOps 工具和資源

發表於2014-12-09

DevOps是一組過程、方法與系統的統稱,用於促進開發(應用程式/軟體工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。在DevOps的整個流程中,使用一些開源工具可以促進開發與運維之間的溝通,有利於專案的管理,甚至可以達到事半功倍的效果。

本文作者Richard Kraaijenhagen是Owlin創始人,全棧工程師,資料科學家。他收集了DevOps開發可能用到的所有工具,並且把它們按照職責進行分類,本文摘取了部分工具分享給大家,這些工具也可以用於日常軟體方面的開發,所以,大家直接Mark吧!

包&產品管理工具

  • Chocolatey:Chocolatey是Windows下一款開源的命令列包管理軟體 ,簡單說這就是Windows的apt-get;
  • FPM:全稱是Effing package management,該死的軟體包管理器,極大的緩解了多個平臺構建軟體包(deb,rpm,等)的痛苦;
  • Herd:是一個基於Twitter Murder的檔案分佈系統;
  • Vagrant Cachier:Vagrant的一個外掛,用於快取包方面的管理;
  • WiX Toolset:提供一組最強大的工具集來幫助你建立Windows安裝包。該工具集從XML原始碼構建你的Windows安裝程式包,可以無縫整合到構建過程;
  • Boxstarter:利用Chocolatey包管理工具來自動化安裝軟體和建立可重複、指令碼化的Windows環境;
  • Elita:Elita是一個利用git和salt進行持續部署(部署作為服務)和API-driven基礎設施的引擎/框架;
  • Fig:主要用來跟Docker一起來實現的快速隔離的開發環境;
  • Pulp:Pulp是一個用來管理軟體庫以及相關內容的平臺;
  • Veewee:Veewee是一個開源工具,用來建立和配置輕量級、可再生、便捷式虛擬機器環境。

日誌&監控

  • AmonOne:現代化的自託管伺服器監控工具;
  • Anthracite:一個事件/日誌改變/管理應用程式;
  • collectd3:是一個視覺化的collectd系統效能統計工具;
  • collectd:是一個守護(daemon)程式,用來收集系統效能和提供各種儲存方式來儲存不同值的機制;
  • Diamond:是一個基於Python的守護程式,主要用來收集系統指標,並且把它們釋出到Graphite(或其它)工具中;
  • Errbit:是一個用於收集和管理程式錯誤的開源工具;
  • Sensu:一個開源的監控框架;
  • Logstash:是一個應用程式日誌、事件的傳輸、處理、管理和搜尋的平臺。你可以用它來統一對應用程式日誌進行收集管理,提供Web介面用於查詢和統計;
  • log.io:一個實時的開源日誌監控工具;
  • FnordMetric:是一個基於redis/ruby的實時事件跟蹤應用,是個收集和視覺化時間序列資料的框架,使用者可以在幾分鐘內建立漂亮的實時分析儀表盤;
  • Logster:是一個工具,讀取日誌檔案然後建立Graphite 或 Ganglia可用的指標資料。比如你可能使用logster來圖形化在你的Web Server日誌中的HTTP響應發生數量;
  • Kibana:是一個為Logstash和ElasticSearch提供的日誌分析的Web介面。可使用它對日誌進行高效的搜尋、視覺化、分析等各種操作;
  • Monit:是一款功能非常豐富的程式、檔案、目錄和裝置的監測軟體,用於Unix平臺。 它可以自動修復那些已經停止運作的程式,適合處理那些由於多種原因導致的軟體錯誤;
  • Metrics:這並不是Java庫,而是基於Go的一個輕量級的檢測器;
  • Graphite:是一個用於採集網站實時資訊並進行統計的開源專案,可用於採集多種網站服務執行狀態資訊;
  • Ganglia:Ganglia是一個跨平臺可擴充套件的、高效能運算系統下的分散式監控系統,如叢集和網格;
  • Server Density:一個跨平臺的監控系統;
  • Folsom:Folsom是一款受 Coda Hale’s metrics啟發的、基於Erlang的度量系統;
  • CMB (Cloud Message Bus):是一個高可用、橫向擴充套件的佇列和通知服務,相容AWS SQS和SNS;
  • Glances:是一款用於Linux、BSD的開源命令列系統監視工具,它使用Python語言開發,能夠監視CPU、負載、記憶體、磁碟I/O、網路流量、檔案系統、系統溫度等資訊。
  • Uptime:使用Node.js、MongoDB和Twitter Bootstrap開發的遠端監控系統;
  • Icinga:Nagios的擴充套件版本;
  • Packetbeat: 是開源應用監控和包跟蹤系統;
  • Zipkin:是Twitter的一個開源專案,允許開發者收集Twitter各個服務上的監控資料,並提供查詢介面;
  • Dead Manâs Snitch:是一款監控Heroku Scheduler、計劃的監視工具;
  • Statsd:是一個Node.js的daemon程式,簡單,輕巧。使用的UDP協議,可以和Graphite圖片渲染應用結合;
  • Riemann:一個網路監控系統;
  • Puppet Dashboard:Puppet Dashboard是一個Web介面,為Puppet提供節點分類和報告功能,是一個開源的配置管理工具;
  • jmxtrans:jmxtrans是一款非常強大的工具,使用它可以輕易生成基於json的配置文章,然後再以你想要的格式輸出;
  • Scales:跟蹤伺服器狀態和統計指標,使你全面掌握伺服器狀態,還可以傳送指標到Graphite來影像呈現或者向檔案寫入崩潰資訊;
  • Zabbix:是一個基於Web介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案;
  • Graylog 2:Graylog2是一個用來將系統日誌syslog儲存到MongoDB中的工具。

程式管理

  • Bouncy:可以作為HTTP路由主機;
  • Supervisor:是一個客戶端伺服器系統,允許使用者監控和控制類Unix作業系統上的程式數;
  • God:由Ruby實現的程式監控框架。

服務發現

  • Consul:簡化了分散式環境中的服務的註冊和發現流程,通過HTTP或者DNS介面發現。支援外部SaaS 提供者等;
  • etcd:是一個高可用的Key/Value儲存系統,主要用於分享配置和服務發現;
  • Apache ZooKeeper:是Apache Hadoop的一個子專案,它主要是用來解決分散式應用中經常遇到的一些資料管理問題;
  • Weave:建立一個虛擬網路並連線到部署在多個主機上的Docker容器。

持續整合和交付

  • Buildbot:是一個系統的自動化編譯/測試周期最需要的軟體,以驗證程式碼的變化。通過自動重建和測試每次發生了變化的東西,在建設迅速查明之前,減少不必要的失敗;
  • Cabot:是一個開源,自我託管的監控工具;
  • Jenkins:是基於Java開發的一種持續整合工具,用於監控持續重複的工作;
  • Hubot:基於指令碼具有很高的靈活性,任何人都可以編寫自己的指令碼來擴充套件基本功能;
  • Hudson:是一個可擴充套件的持續整合引擎,主要用於:持續、自動地構建/測試軟體專案、監控一些定時執行的任務;
  • CruiseControl.rb:是一個持續整合伺服器,它可以讓團隊裡的每個人隨時瞭解專案的健康狀況和進度;
  • OpsBot:是一個開源的、可插入的改善通訊的機器人。

希望這些工具能夠給開發者帶來實實在在的幫助,想要檢視更多工具,大家可以 訪問原文,原文中的工具列表會持續更新。

最後,再跟大家分享一個 DevOps BookMarks,這裡面涉及了DevOps方方面面的工具和內容,有興趣的同學可以前去學習。

相關文章