開源的DevOps開發工具箱

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方方面面的工具和內容,有興趣的同學可以前去學習

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章