直接Mark!開源的DevOps開發工具箱

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

本文來自: ZEEF
來自:部落格園
相關閱讀
評論(1)

相關文章