開源的DevOps開發工具箱
DevOps 是一組過程、方法與系統的統稱,用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。在 DevOps 的整個流程中,使用一些開源工具可以促進開發與運維之間的溝通,有利于項目的管理,甚至可以達到事半功倍的效果。
本文作者 Richard Kraaijenhagen 是 Owlin 創始人,全棧工程師,數據科學家。他收集了 DevOps 開發可能用到的所有工具,并且把它們按照職責進行分類,本文摘取了部分工具分享給大家,這些工具也可以用于日常軟件方面的開發,所以,大家直接 Mark 吧!
包&產品管理工具
- Chocolatey:Chocolatey 是 Windows 下一款開源的命令行包管理軟件 ,簡單說這就是 Windows 的 apt-get;
- FPM:全稱是 Effing package management,該死的軟件包管理器,極大的緩解了多個平臺構建軟件包(deb,rpm,等)的痛苦;
- Herd:是一個基于 推ter 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 和 推ter Bootstrap 開發的遠程監控系統;
- Icinga:Nagios 的擴展版本;
- Packetbeat: 是開源應用監控和包跟蹤系統;
- Zipkin:是 推ter 的一個開源項目,允許開發者收集 推ter 各個服務上的監控數據,并提供查詢接口;
- Dead Mana??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 方方面面的工具和內容,有興趣的同學可以前去學習。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!