你喜歡免費的東西嗎?得到開發者社區支持的自動化,開源的工具是你們求之不得的。這裏列舉了 60 多款最棒的開源工具,能夠幫助你很好的實行 DevOps。java
1、開發工具ios
版本控制&協做開發程序員
1.版本控制系統 Gitweb
Git是一個開源的分佈式版本控制系統,用以有效、高速的處理從很小到很是大的項目版本管理。shell
2.代碼託管平臺 GitLab編程
GitLab是一個利用Ruby on Rails開發的開源應用程序,實現一個自託管的Git項目倉庫,可經過Web界面進行訪問公開的或者私人項目。ubuntu
3.代碼評審工具 Gerritwindows
Gerrit是一個免費、開放源代碼的代碼審查軟件,使用網頁界面。利用網頁瀏覽器,同一個團隊的軟件程序員,能夠相互審閱彼此修改後的程序代碼,決定是否可以提交,退回或者繼續修改。它使用Git做爲底層版本控制系統。後端
4.版本控制系統 Mercurialapi
Mercurial是一種輕量級分佈式版本控制系統,採用 Python 語言實現,易於學習和使用,擴展性強。
5.版本控制系統 Subversion
Subversion 是一個版本控制系統,相對於的RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS。互聯網上免費的版本控制服務多基於Subversion。
6.版本控制系統 Bazaar
Bazaar 是一個分佈式的版本控制系統,它發佈在 GPL 許可協議之下,並可用於 Windows、GNU/Linux、Unix 以及 Mac OS 系統。
2、自動化構建和測試
1.Apache Ant
Apache Ant是一個將軟件編譯、測試、部署等步驟聯繫在一塊兒加以自動化的一個工具,大多用於Java環境中的軟件開發。
2.Maven
Maven 除了以程序構建能力爲特點以外,還提供 Ant 所缺乏的高級項目管理工具。因爲 Maven 的缺省構建規則有較高的可重用性,因此經常用兩三行 Maven 構建腳本就能夠構建簡單的項目,而使用 Ant 則須要十幾行。事實上,因爲 Maven 的面向項目的方法,許多 Apache Jakarta 項目如今使用 Maven,並且公司項目採用 Maven 的比例在持續增加。
3.Selenium (SeleniumHQ)
thoughtworks公司的一個集成測試的強大工具。
4.PyUnit
Python單元測試框架(The Python unit testing framework),簡稱爲PyUnit, 是Kent Beck和Erich Gamma這兩位聰明的傢伙所設計的 JUnit 的Python版本。
5.QUnit
QUnit 是 jQuery 的單元測試框架。
6.JMeter
JMeter 是 Apache 組織的開放源代碼項目,它是功能和性能測試的工具,100% 的用 java 實現。
7.Gradle
Gradle 就是可使用 Groovy 來書寫構建腳本的構建系統,支持依賴管理和多項目,相似 Maven,但比之簡單輕便。
8.PHPUnit
PHPUnit 是一個輕量級的PHP測試框架。它是在PHP5下面對JUnit3系列版本的完整移植,是xUnit測試框架家族的一員(它們都基於模式先鋒Kent Beck的設計)。
3、持續集成&交付
1.Jenkins
Jenkins 的前身是 Hudson,它是一個可擴展的持續集成引擎。
2.Capistrano
Capistrano 是一個用來並行的在多臺機器上執行相同命令的工具,使用用來安裝一整批機器。它最初是被開發用來發布 Rails 應用的。
3.BuildBot
BuildBot 是一個系統的自動化編譯/測試周期最須要的軟件,以驗證代碼的變化。經過自動重建和測試每次發生了變化的東西,在建設迅速查明以前,減小沒必要要的失敗。
4.Fabric
fabric8 是開源 Java Containers(JVMs) 深度管理集成平臺。有了 fabric8 能夠很是方便的從 UI 和 UX 一致的中央位置進行自動操做,配置和管理。fabric8 同時提供一些非功能性需求,好比配置管理,服務發現故障轉移,集中化監控,自動化等等。
Tinderbox
5.Travis CI
Travis CI 是一個基於雲的持續集成項目, 目前已經支持大部分主流語言了,好比:C,PHP,Ruby,Python,Nodejs等等。
6.Continuum
Apache Continuum 是最新的 CI 服務器之一,也是值得關注的一個新進入者。基於 Web 的界面使得配置項目很容易。並且,還不須要安裝 Web 服務器,由於 Continuum 內置了 Jetty Web 服務器。而且,Continuum 能夠做爲 Windows 服務運行,還在應用程序的某些部分嵌入了上下文敏感的文檔,從而提供了不少幫助。
7.LuntBuild
LuntBuild 是一個強大自動構建的工具。經過一個簡潔的web接口就能夠很容易地進行系統的持續構建。
8.CruiseControl
CruiseControl 是一個針對持續構建程序(項目持續集成)的框架,它包括一個email通知的插件,Ant和各類各樣的CVS工具。CruiseControl提供了一個Web接口,可隨時查看當前的編譯情況和歷史情況。
9.Integrity
Integrity 是 Ruby 開發的持續集成服務器。
10.Gump
Gump 是 Apache 的整合工具。它以 Python 寫成、徹底支持 Apache Ant、Apache Maven 等等軟件組建工具。
11.Go
Go 是 Google 開發的一種編譯型,併發型,並具備垃圾回收功能的編程語言。
4、部署工具
(一)容器平臺
1.Docker
Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。
2.Rocket
Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 相似,幫助開發者打包應用和依賴包到可移植容器中,簡化搭環境等部署工做。
3.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 適用於管理各類環境,從一臺主機到上萬臺主機的機羣都可使用。
4.Bash
Bash 是大多數Linux系統以及Mac OS X v10.4默認的shell,它能運行於大多數Unix風格的操做系統之上,甚至被移植到了Microsoft Windows上的Cygwin系統中,以實現windows的POSIX虛擬接口。此外,它也被DJGPP項目移植到了MS-DOS上。
5.Rudder
Rudder 已更名爲Flannel,爲每一個使用 Kubernetes 的機器提供一個子網。也就是說 Kubernetes 集羣中的每一個主機都有本身一個完整的子網,例如機器 A 和 B 能夠有 10.0.1.0/24 和 10.0.2.0/24 子網。
Powershell
6.RunDeck
RunDeck 是用 Java/Grails 寫的開源工具,幫助用戶在數據中心或者雲環境中自動化各類操做和流程。經過命令行或者web界面,用戶能夠對任意數量的服務器進行操做,大大下降了對服務器自動化的門檻。
7.Saltstack
Saltstack 能夠看作是func的加強版+Puppet的弱化版。使用Python編寫。很是好用,快速能夠基於EPEL部署。Salt 是一個開源的工具用來管理你的基礎架構,可輕鬆管理成千上萬臺服務器。
8.Ansible
Ansible 提供一種最簡單的方式用於發佈、管理和編排計算機系統的工具,你可在數分鐘內搞定。Ansible 是一個模型驅動的配置管理器,支持多節點發布、遠程任務執行。默認使用 SSH 進行遠程鏈接。無需在被管理節點上安裝附加軟件,可以使用各類編程語言進行擴展。
(三)微服務平臺
1.OpenShift
OpenShift 是由紅帽推出的一款面向開源開發人員開放的平臺即服務(PaaS)。 OpenShift經過爲開發人員提供在語言、框架和雲上的更多的選擇,使開發人員能夠構建、測試、運行和管理他們的應用。
2.Cloud Foundry
Cloud Foundry 是VMware於2011年4月12日推出的業界第一個開源PaaS雲平臺,它支持多種框架、語言、運行時環境、雲平臺及應用服務,使開發人員可以在幾秒鐘內進行應用程序的部署和擴展,無需擔憂任何基礎架構的問題。
3.Kubernetes
Kubernetes 是來自 Google 雲平臺的開源容器集羣管理系統。基於 Docker 構建一個容器的調度服務。該系統能夠自動在一個容器集羣中選擇一個工做容器供使用。其核心概念是 Container Pod。
4.Mesosphere
Apache Mesos 是一個集羣管理器,提供了有效的、跨分佈式應用或框架的資源隔離和共享,能夠運行Hadoop、MPI、Hypertable、Spark。
(四)服務開通
1.Puppet
Puppet,您能夠集中管理每個重要方面,您的系統使用的是跨平臺的規範語言,管理全部的單獨的元素一般彙集在不一樣的文件,如用戶, CRON做業,和主機一塊兒顯然離散元素,如包裝,服務和文件。
Razor
2.Docker Swarm
Docker Swarm 是一個Dockerized化的分佈式應用程序的本地集羣,它是在Machine所提供的功能的基礎上優化主機資源的利用率和容錯服務。具體來講,Docker Swarm支持用戶建立可運行Docker Daemon的主機資源池,而後在資源池中運行Docker容器。Docker Swarm能夠管理工做負載並維護集羣狀態。
3.Vagrant
Vagrant 是一個基於 Ruby 的工具,用於建立和部署虛擬化開發環境。它使用 Oracle 的開源 VirtualBox 虛擬化系統,使用 Chef 建立自動化虛擬環境。
4.Powershell
5.OpenStack Heat
5、維護
日誌記錄
1.Logstash
Logstash 是一個應用程序日誌、事件的傳輸、處理、管理和搜索的平臺。你能夠用它來統一對應用程序日誌進行收集管理,提供 Web 接口用於查詢和統計。
2.CollectD
collectd 是一個守護(daemon)進程,用來收集系統性能和提供各類存儲方式來存儲不一樣值的機制。好比以RRD 文件形式。
3.StatsD
StatsD 是一個簡單的網絡守護進程,基於 Node.js 平臺,經過 UDP 或者 TCP 方式偵聽各類統計信息,包括計數器和定時器,併發送聚合信息到後端服務,例如 Graphite。
6、監控,警告&分析
1.Nagios
Nagios 是一個監視系統運行狀態和網絡信息的監視系統。Nagios能監視所指定的本地或遠程主機以及服務,同時提供異常通知功能等。
2.Ganglia
Ganglia 是一個跨平臺可擴展的,高性能計算系統下的分佈式監控系統,如集羣和網格。它是基於分層設計,它使用普遍的技術,如XML數據表明,便攜數據傳輸,RRDtool用於數據存儲和可視化。
3.Sensu
Sensu 是開源的監控框架。主要特性:高度可組合;提供一個監控代理,一個事件處理器和文檔 APIs;爲雲而設計;Sensu 的現代化架構容許監控大規模的動態基礎設施,可以經過複雜的公共網絡監控幾千個全球分佈式的機器和服務;熱情的社區。
4.zabbix
zabbix 是一個基於Web界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。
5.ICINGA
ICINGA 項目是 由Michael Luebben、HendrikB?cker和JoergLinge等人發起的,他們都是現有的Nagios項目社區委員會的成員,他們承諾,新的開源項目將徹底兼容之前的Nagios應用程序及擴展功能。
6.Graphite
Graphite 是一個用於採集網站實時信息並進行統計的開源項目,可用於採集多種網站服務運行狀態信息。Graphite服務平均每分鐘有4800次更新操做。
7.Kiban
Kibana 是一個爲 Logstash 和 ElasticSearch 提供的日誌分析的 Web 接口。可以使用它對日誌進行高效的搜索、可視化、分析等各類操做。
以上,若是有其餘補充能夠在評論中跟你們分享哦!
英文:elasticbox
譯文:oschina
連接:http://www.oschina.net/question/2012764_246208?fromerr=TvuNgQME