你喜歡免費的東西嗎?獲得開發者社群支援的自動化,開源的工具是大家夢寐以求的。這裡列舉了 n多款最棒的開源工具,可以幫助你很好的實行 devops。對的,生活不止有眼前的苟且,還有詩和遠方的田野,當然,還有免費的devops開源工具。

标題一:開發工具
1.版本控制系統 git
git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。
2.代碼托管平台 gitlab
gitlab是一個利用ruby on rails開發的開源應用程式,實作一個自托管的git項目倉庫,可通過web界面進行通路公開的或者私人項目。
3.代碼評審工具 gerrit
gerrit是一個免費、開放源代碼的代碼審查軟體,使用網頁界面。利用網頁浏覽器,同一個團隊的軟體程式員,可以互相審閱彼此修改後的程式代碼,決定是否能夠送出,退回或者繼續修改。它使用git作為底層版本控制系統。
二:自動化建構和測試
1.apache ant
apache ant是一個将軟體編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,大多用于java環境中的軟體開發。
2.maven
maven 除了以程式建構能力為特色之外,還提供 ant 所缺少的進階項目管理工具。由于 maven 的預設建構規則有較高的可重用性,是以常常用兩三行 maven 建構腳本就可以建構簡單的項目,而使用 ant 則需要十幾行。事實上,由于 maven 的面向項目的方法,許多 apache jakarta 項目現在使用 maven,而且公司項目采用 maven 的比例在持續增長。
3.selenium (seleniumhq)
thoughtworks公司的一個內建測試的強大工具。
三:持續內建&傳遞
1.jenkins
jenkins 的前身是 hudson,它是一個可擴充的持續內建引擎。
2.capistrano
capistrano 是一個用來并行的在多台機器上執行相同指令的工具,使用用來安裝一整批機器。它最初是被開發用來釋出 rails 應用的。
四:部署工具
(一)容器平台
1.docker
docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 linux 機器上,也可以實作虛拟化。
2.ubuntu(lxc)
lxd 是 ubuntu 基于 lxc 技術的重構,容器天然支援非特權和分布式。lxd 與 docker 的思路不同,docker 是 paas,lxd 是 iaas。lxc 項目由一個 linux 核心更新檔和一些 userspace 工具組成。這些 userspace 工具使用由更新檔增加的核心新特性,提供一套簡化的工具來維護容器。
(二)配置管理
1.chef
chef 是一個系統內建架構,為整個架構提供配置管理功能。
2.puppet
puppet,您可以集中管理每一個重要方面,您的系統使用的是跨平台的規範語言,管理所有的單獨的元素通常聚集在不同的檔案,如使用者, cron作業,和主機一起顯然離散元素,如包裝,服務和檔案。
3.cfengine
cfengine(配置引擎)是一種 unix 管理工具,其目的是使簡單的管理的任務自動化,使困難的任務變得較容易。cfengine 适用于管理各種環境,從一台主機到上萬台主機的機群均可使用。
(三)微服務平台
1.openshift
openshift 是由紅帽推出的一款面向開源開發人員開放的平台即服務(paas)。 openshift通過為開發人員提供在語言、架構和雲上的更多的選擇,使開發人員可以建構、測試、運作和管理他們的應用。
2.cloud foundry
cloud foundry 是vmware于2011年4月12日推出的業界第一個開源paas雲平台,它支援多種架構、語言、運作時環境、雲平台及應用服務,使開發人員能夠在幾秒鐘内進行應用程式的部署和擴充,無需擔心任何基礎架構的問題。
(四)服務開通
1.puppet
2.docker swarm
docker swarm 是一個dockerized化的分布式應用程式的本地叢集,它是在machine所提供的功能的基礎上優化主機資源的使用率和容錯服務。具體來說,docker swarm支援使用者建立可運作docker daemon的主機資源池,然後在資源池中運作docker容器。docker swarm可以管理工作負載并維護叢集狀态。
五:維護
日志記錄
1.logstash
logstash 是一個應用程式日志、事件的傳輸、處理、管理和搜尋的平台。你可以用它來統一對應用程式日志進行收集管理,提供 web 接口用于查詢和統計。
2.collectd
collectd 是一個守護(daemon)程序,用來收集系統性能和提供各種存儲方式來存儲不同值的機制。比如以rrd 檔案形式。
六:監控、警告&分析
1.nagios
nagios 是一個監視系統運作狀态和網絡資訊的監視系統。nagios能監視所指定的本地或遠端主機以及服務,同時提供異常通知功能等。
2.ganglia
ganglia 是一個跨平台可擴充的,高性能計算系統下的分布式監控系統,如叢集和網格。它是基于分層設計,它使用廣泛的技術,如xml資料代表,便攜資料傳輸,rrdtool用于資料存儲和可視化。
====================================分割線================================