你喜歡免費的東西嗎?獲得開發(fā)者社區(qū)支持的自動化仗岖,開源的工具是大家夢寐以求的。這里列舉了 60 多款最棒的開源工具览妖,可以幫助你很好的實行 DevOps轧拄。
一、開發(fā)工具
版本控制&協(xié)作開發(fā)
1.版本控制系統(tǒng) Git
Git是一個開源的分布式版本控制系統(tǒng)讽膏,用以有效檩电、高速的處理從很小到非常大的項目版本管理。
2.代碼托管平臺 GitLab
GitLab是一個利用Ruby on Rails開發(fā)的開源應(yīng)用程序府树,實現(xiàn)一個自托管的Git項目倉庫俐末,可通過Web界面進行訪問公開的或者私人項目。
3.代碼評審工具 Gerrit
Gerrit是一個免費奄侠、開放源代碼的代碼審查軟件卓箫,使用網(wǎng)頁界面。利用網(wǎng)頁瀏覽器垄潮,同一個團隊的軟件程序員烹卒,可以相互審閱彼此修改后的程序代碼,決定是否能夠提交弯洗,退回或者繼續(xù)修改旅急。它使用Git作為底層版本控制系統(tǒng)。
4.版本控制系統(tǒng) Mercurial
Mercurial是一種輕量級分布式版本控制系統(tǒng)牡整,采用 Python 語言實現(xiàn)藐吮,易于學(xué)習(xí)和使用,擴展性強。
5.版本控制系統(tǒng) Subversion
Subversion 是一個版本控制系統(tǒng)炎码,相對于的RCS盟迟、CVS,采用了分支管理系統(tǒng)潦闲,它的設(shè)計目標(biāo)就是取代CVS攒菠。互聯(lián)網(wǎng)上免費的版本控制服務(wù)多基于Subversion歉闰。
6.版本控制系統(tǒng) Bazaar
Bazaar 是一個分布式的版本控制系統(tǒng)辖众,它發(fā)布在 GPL 許可協(xié)議之下,并可用于 Windows和敬、GNU/Linux凹炸、Unix 以及 Mac OS 系統(tǒng)。
二昼弟、自動化構(gòu)建和測試
1.Apache Ant
Apache Ant是一個將軟件編譯啤它、測試、部署等步驟聯(lián)系在一起加以自動化的一個工具舱痘,大多用于Java環(huán)境中的軟件開發(fā)变骡。
2.Maven
Maven 除了以程序構(gòu)建能力為特色之外,還提供 Ant 所缺少的高級項目管理工具芭逝。由于 Maven 的缺省構(gòu)建規(guī)則有較高的可重用性塌碌,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡單的項目,而使用 Ant 則需要十幾行旬盯。事實上台妆,由于 Maven 的面向項目的方法,許多 Apache Jakarta 項目現(xiàn)在使用 Maven胖翰,而且公司項目采用 Maven 的比例在持續(xù)增長接剩。
3.Selenium (SeleniumHQ)
thoughtworks公司的一個集成測試的強大工具。
4.PyUnit
Python單元測試框架(The Python unit testing framework)萨咳,簡稱為PyUnit懊缺, 是Kent Beck和Erich Gamma這兩位聰明的家伙所設(shè)計的 JUnit 的Python版本。
5.QUnit
QUnit 是 jQuery 的單元測試框架某弦。
6.JMeter
JMeter 是 Apache 組織的開放源代碼項目桐汤,它是功能和性能測試的工具,100% 的用 java 實現(xiàn)靶壮。
7.Gradle
Gradle 就是可以使用 Groovy 來書寫構(gòu)建腳本的構(gòu)建系統(tǒng)怔毛,支持依賴管理和多項目,類似 Maven腾降,但比之簡單輕便拣度。
8.PHPUnit
PHPUnit 是一個輕量級的PHP測試框架。它是在PHP5下面對JUnit3系列版本的完整移植,是xUnit測試框架家族的一員(它們都基于模式先鋒Kent Beck的設(shè)計)抗果。
三筋帖、持續(xù)集成&交付
1.Jenkins
Jenkins 的前身是 Hudson,它是一個可擴展的持續(xù)集成引擎冤馏。
2.Capistrano
Capistrano 是一個用來并行的在多臺機器上執(zhí)行相同命令的工具日麸,使用用來安裝一整批機器。它最初是被開發(fā)用來發(fā)布 Rails 應(yīng)用的逮光。
3.BuildBot
BuildBot 是一個系統(tǒng)的自動化編譯/測試周期最需要的軟件代箭,以驗證代碼的變化。通過自動重建和測試每次發(fā)生了變化的東西涕刚,在建設(shè)迅速查明之前嗡综,減少不必要的失敗。
4.Fabric
fabric8 是開源 Java Containers(JVMs) 深度管理集成平臺杜漠。有了 fabric8 可以非常方便的從 UI 和 UX 一致的中央位置進行自動操作极景,配置和管理。fabric8 同時提供一些非功能性需求驾茴,比如配置管理盼樟,服務(wù)發(fā)現(xiàn)故障轉(zhuǎn)移,集中化監(jiān)控沟涨,自動化等等恤批。
Tinderbox
5.Travis CI
Travis CI 是一個基于云的持續(xù)集成項目异吻, 目前已經(jīng)支持大部分主流語言了裹赴,比如:C,PHP诀浪,Ruby棋返,Python,Nodejs等等雷猪。
6.Continuum
Apache Continuum 是最新的 CI 服務(wù)器之一睛竣,也是值得關(guān)注的一個新進入者∏笠。基于 Web 的界面使得配置項目很容易射沟。而且,還不需要安裝 Web 服務(wù)器与境,因為 Continuum 內(nèi)置了 Jetty Web 服務(wù)器验夯。并且,Continuum 可以作為 Windows 服務(wù)運行摔刁,還在應(yīng)用程序的某些部分嵌入了上下文敏感的文檔挥转,從而提供了很多幫助。
7.LuntBuild
LuntBuild 是一個強大自動構(gòu)建的工具。通過一個簡潔的web接口就可以很容易地進行系統(tǒng)的持續(xù)構(gòu)建绑谣。
8.CruiseControl
CruiseControl 是一個針對持續(xù)構(gòu)建程序(項目持續(xù)集成)的框架党窜,它包括一個email通知的插件,Ant和各種各樣的CVS工具借宵。CruiseControl提供了一個Web接口幌衣,可隨時查看當(dāng)前的編譯狀況和歷史狀況。
9.Integrity
Integrity 是 Ruby 開發(fā)的持續(xù)集成服務(wù)器壤玫。
10.Gump
Gump 是 Apache 的整合工具泼掠。它以 Python 寫成、完全支持 Apache Ant垦细、Apache Maven 等等軟件組建工具择镇。
11.Go
Go 是 Google 開發(fā)的一種編譯型,并發(fā)型括改,并具有垃圾回收功能的編程語言腻豌。
四、部署工具
(一)容器平臺
1.Docker
Docker 是一個開源的應(yīng)用容器引擎嘱能,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中吝梅,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化惹骂。
2.Rocket
Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎苏携,和 Docker 類似,幫助開發(fā)者打包應(yīng)用和依賴包到可移植容器中对粪,簡化搭環(huán)境等部署工作右冻。
3.Ubuntu(LXC)
LXD 是 ubuntu 基于 LXC 技術(shù)的重構(gòu),容器天然支持非特權(quán)和分布式著拭。LXD 與 Docker 的思路不同纱扭,Docker 是 PAAS,LXD 是 IAAS儡遮。LXC 項目由一個 Linux 內(nèi)核補丁和一些 userspace 工具組成乳蛾。這些 userspace 工具使用由補丁增加的內(nèi)核新特性,提供一套簡化的工具來維護容器鄙币。
(二)配置管理
1.Chef
Chef 是一個系統(tǒng)集成框架肃叶,為整個架構(gòu)提供配置管理功能。
2.Puppet
Puppet十嘿,您可以集中管理每一個重要方面因惭,您的系統(tǒng)使用的是跨平臺的規(guī)范語言,管理所有的單獨的元素通常聚集在不同的文件详幽,如用戶筛欢, CRON作業(yè)浸锨,和主機一起顯然離散元素,如包裝版姑,服務(wù)和文件等限。
3.CFengine
Cfengine(配置引擎)是一種 Unix 管理工具嫁蛇,其目的是使簡單的管理的任務(wù)自動化辫狼,使困難的任務(wù)變得較容易狰闪。Cfengine 適用于管理各種環(huán)境,從一臺主機到上萬臺主機的機群均可使用表制。
4.Bash
Bash 是大多數(shù)Linux系統(tǒng)以及Mac OS X v10.4默認的shell健爬,它能運行于大多數(shù)Unix風(fēng)格的操作系統(tǒng)之上,甚至被移植到了Microsoft Windows上的Cygwin系統(tǒng)中么介,以實現(xiàn)windows的POSIX虛擬接口娜遵。此外,它也被DJGPP項目移植到了MS-DOS上壤短。
5.Rudder
Rudder 已改名為Flannel设拟,為每個使用 Kubernetes 的機器提供一個子網(wǎng)。也就是說 Kubernetes 集群中的每個主機都有自己一個完整的子網(wǎng)久脯,例如機器 A 和 B 可以有 10.0.1.0/24 和 10.0.2.0/24 子網(wǎng)纳胧。
Powershell ?
6.RunDeck
RunDeck 是用 Java/Grails 寫的開源工具,幫助用戶在數(shù)據(jù)中心或者云環(huán)境中自動化各種操作和流程帘撰。通過命令行或者web界面跑慕,用戶可以對任意數(shù)量的服務(wù)器進行操作,大大降低了對服務(wù)器自動化的門檻摧找。
7.Saltstack
Saltstack 可以看做是func的增強版+Puppet的弱化版核行。使用Python編寫。非常好用慰于,快速可以基于EPEL部署钮科。Salt 是一個開源的工具用來管理你的基礎(chǔ)架構(gòu)唤衫,可輕松管理成千上萬臺服務(wù)器婆赠。
8.Ansible
Ansible 提供一種最簡單的方式用于發(fā)布、管理和編排計算機系統(tǒng)的工具佳励,你可在數(shù)分鐘內(nèi)搞定休里。Ansible 是一個模型驅(qū)動的配置管理器,支持多節(jié)點發(fā)布赃承、遠程任務(wù)執(zhí)行妙黍。默認使用 SSH 進行遠程連接。無需在被管理節(jié)點上安裝附加軟件瞧剖,可使用各種編程語言進行擴展拭嫁。
(三)微服務(wù)平臺
1.OpenShift
OpenShift 是由紅帽推出的一款面向開源開發(fā)人員開放的平臺即服務(wù)(PaaS)可免。 OpenShift通過為開發(fā)人員提供在語言、框架和云上的更多的選擇做粤,使開發(fā)人員可以構(gòu)建浇借、測試、運行和管理他們的應(yīng)用怕品。
2.Cloud Foundry
Cloud Foundry 是VMware于2011年4月12日推出的業(yè)界第一個開源PaaS云平臺妇垢,它支持多種框架、語言肉康、運行時環(huán)境闯估、云平臺及應(yīng)用服務(wù),使開發(fā)人員能夠在幾秒鐘內(nèi)進行應(yīng)用程序的部署和擴展吼和,無需擔(dān)心任何基礎(chǔ)架構(gòu)的問題涨薪。
3.Kubernetes
Kubernetes 是來自 Google 云平臺的開源容器集群管理系統(tǒng)§排遥基于 Docker 構(gòu)建一個容器的調(diào)度服務(wù)尤辱。該系統(tǒng)可以自動在一個容器集群中選擇一個工作容器供使用。其核心概念是 Container Pod厢岂。
4.Mesosphere
Apache Mesos 是一個集群管理器光督,提供了有效的、跨分布式應(yīng)用或框架的資源隔離和共享塔粒,可以運行Hadoop结借、MPI、Hypertable卒茬、Spark船老。
(四)服務(wù)開通
1.Puppet
Puppet,您可以集中管理每一個重要方面圃酵,您的系統(tǒng)使用的是跨平臺的規(guī)范語言柳畔,管理所有的單獨的元素通常聚集在不同的文件,如用戶郭赐, CRON作業(yè)薪韩,和主機一起顯然離散元素,如包裝捌锭,服務(wù)和文件俘陷。
Razor
2.Docker Swarm
Docker Swarm 是一個Dockerized化的分布式應(yīng)用程序的本地集群,它是在Machine所提供的功能的基礎(chǔ)上優(yōu)化主機資源的利用率和容錯服務(wù)观谦。具體來說拉盾,Docker Swarm支持用戶創(chuàng)建可運行Docker Daemon的主機資源池,然后在資源池中運行Docker容器豁状。Docker Swarm可以管理工作負載并維護集群狀態(tài)捉偏。
3.Vagrant
Vagrant 是一個基于 Ruby 的工具倒得,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。它使用 Oracle 的開源 VirtualBox 虛擬化系統(tǒng)夭禽,使用 Chef 創(chuàng)建自動化虛擬環(huán)境屎暇。
4.Powershell
5.OpenStack Heat
五、維護
日志記錄
1.Logstash
Logstash 是一個應(yīng)用程序日志驻粟、事件的傳輸根悼、處理、管理和搜索的平臺蜀撑。你可以用它來統(tǒng)一對應(yīng)用程序日志進行收集管理挤巡,提供 Web 接口用于查詢和統(tǒng)計。
2.CollectD
collectd 是一個守護(daemon)進程酷麦,用來收集系統(tǒng)性能和提供各種存儲方式來存儲不同值的機制矿卑。比如以RRD 文件形式。
3.StatsD
StatsD 是一個簡單的網(wǎng)絡(luò)守護進程沃饶,基于 Node.js 平臺母廷,通過 UDP 或者 TCP 方式偵聽各種統(tǒng)計信息,包括計數(shù)器和定時器糊肤,并發(fā)送聚合信息到后端服務(wù)琴昆,例如 Graphite。
六馆揉、監(jiān)控业舍,警告&分析
1.Nagios
Nagios 是一個監(jiān)視系統(tǒng)運行狀態(tài)和網(wǎng)絡(luò)信息的監(jiān)視系統(tǒng)。Nagios能監(jiān)視所指定的本地或遠程主機以及服務(wù)升酣,同時提供異常通知功能等舷暮。
2.Ganglia
Ganglia 是一個跨平臺可擴展的,高性能計算系統(tǒng)下的分布式監(jiān)控系統(tǒng)噩茄,如集群和網(wǎng)格下面。它是基于分層設(shè)計,它使用廣泛的技術(shù)绩聘,如XML數(shù)據(jù)代表沥割,便攜數(shù)據(jù)傳輸,RRDtool用于數(shù)據(jù)存儲和可視化君纫。
3.Sensu
Sensu 是開源的監(jiān)控框架驯遇。主要特性:高度可組合;提供一個監(jiān)控代理,一個事件處理器和文檔 APIs;為云而設(shè)計;Sensu 的現(xiàn)代化架構(gòu)允許監(jiān)控大規(guī)模的動態(tài)基礎(chǔ)設(shè)施蓄髓,能夠通過復(fù)雜的公共網(wǎng)絡(luò)監(jiān)控幾千個全球分布式的機器和服務(wù);熱情的社區(qū)。
4.zabbix
zabbix 是一個基于Web界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案舒帮。
5.ICINGA
ICINGA 項目是 由Michael Luebben会喝、HendrikB?cker和JoergLinge等人發(fā)起的陡叠,他們都是現(xiàn)有的Nagios項目社區(qū)委員會的成員,他們承諾肢执,新的開源項目將完全兼容以前的Nagios應(yīng)用程序及擴展功能枉阵。
6.Graphite
Graphite 是一個用于采集網(wǎng)站實時信息并進行統(tǒng)計的開源項目,可用于采集多種網(wǎng)站服務(wù)運行狀態(tài)信息预茄。Graphite服務(wù)平均每分鐘有4800次更新操作兴溜。
7.Kibana
Kibana 是一個為 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口〕苌拢可使用它對日志進行高效的搜索拙徽、可視化、分析等各種操作诗宣。
以上膘怕,如果有其他補充可以在評論中跟大家分享哦!
英文:elasticbox
譯文:oschina
鏈接:http://www.oschina.net/question/2012764_246208?fromerr=TvuNgQME