最棒的60款DevOps開源工具(1)
2016-02-20 19:33:29 來源: 佚名 開源中國 評(píng)論:0 點(diǎn)擊:
你喜歡免費(fèi)的東西嗎?獲得開發(fā)者社區(qū)支持的自動(dòng)化,開源的工具是大家夢(mèng)寐以求的。這里列舉了 60 多款最棒的開源工具,可以幫助你很好的實(shí)行 DevOps。
大圖下載點(diǎn)這里
一、開發(fā)工具
版本控制&協(xié)作開發(fā)
1.版本控制系統(tǒng) Git
Git是一個(gè)開源的分布式版本控制系統(tǒng),用以有效、高速的處理從很小到非常大的項(xiàng)目版本管理。
2.代碼托管平臺(tái) GitLab
GitLab是一個(gè)利用Ruby on Rails開發(fā)的開源應(yīng)用程序,實(shí)現(xiàn)一個(gè)自托管的Git項(xiàng)目倉庫,可通過Web界面進(jìn)行訪問公開的或者私人項(xiàng)目。
3.代碼評(píng)審工具 Gerrit
Gerrit是一個(gè)免費(fèi)、開放源代碼的代碼審查軟件,使用網(wǎng)頁界面。利用網(wǎng)頁瀏覽器,同一個(gè)團(tuán)隊(duì)的軟件程序員,可以相互審閱彼此修改后的程序代碼,決定是否能夠提交,退回或者繼續(xù)修改。它使用Git作為底層版本控制系統(tǒng)。
4.版本控制系統(tǒng) Mercurial
Mercurial是一種輕量級(jí)分布式版本控制系統(tǒng),采用 Python 語言實(shí)現(xiàn),易于學(xué)習(xí)和使用,擴(kuò)展性強(qiáng)。
5.版本控制系統(tǒng) Subversion
Subversion 是一個(gè)版本控制系統(tǒng),相對(duì)于的RCS、CVS,采用了分支管理系統(tǒng),它的設(shè)計(jì)目標(biāo)就是取代CVS。互聯(lián)網(wǎng)上免費(fèi)的版本控制服務(wù)多基于Subversion。
6.版本控制系統(tǒng) Bazaar
Bazaar 是一個(gè)分布式的版本控制系統(tǒng),它發(fā)布在 GPL 許可協(xié)議之下,并可用于 Windows、GNU/Linux、Unix 以及 Mac OS 系統(tǒng)。
二、自動(dòng)化構(gòu)建和測(cè)試
1.Apache Ant
Apache Ant是一個(gè)將軟件編譯、測(cè)試、部署等步驟聯(lián)系在一起加以自動(dòng)化的一個(gè)工具,大多用于Java環(huán)境中的軟件開發(fā)。
2.Maven
Maven 除了以程序構(gòu)建能力為特色之外,還提供 Ant 所缺少的高級(jí)項(xiàng)目管理工具。由于 Maven 的缺省構(gòu)建規(guī)則有較高的可重用性,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡(jiǎn)單的項(xiàng)目,而使用 Ant 則需要十幾行。事實(shí)上,由于 Maven 的面向項(xiàng)目的方法,許多 Apache Jakarta 項(xiàng)目現(xiàn)在使用 Maven,而且公司項(xiàng)目采用 Maven 的比例在持續(xù)增長。
3.Selenium (SeleniumHQ)
thoughtworks公司的一個(gè)集成測(cè)試的強(qiáng)大工具。
4.PyUnit
Python單元測(cè)試框架(The Python unit testing framework),簡(jiǎn)稱為PyUnit, 是Kent Beck和Erich Gamma這兩位聰明的家伙所設(shè)計(jì)的 JUnit 的Python版本。
5.QUnit
QUnit 是 jQuery 的單元測(cè)試框架。
6.JMeter
JMeter 是 Apache 組織的開放源代碼項(xiàng)目,它是功能和性能測(cè)試的工具,100% 的用 java 實(shí)現(xiàn)。
7.Gradle
Gradle 就是可以使用 Groovy 來書寫構(gòu)建腳本的構(gòu)建系統(tǒng),支持依賴管理和多項(xiàng)目,類似 Maven,但比之簡(jiǎn)單輕便。
8.PHPUnit
PHPUnit 是一個(gè)輕量級(jí)的PHP測(cè)試框架。它是在PHP5下面對(duì)JUnit3系列版本的完整移植,是xUnit測(cè)試框架家族的一員(它們都基于模式先鋒Kent Beck的設(shè)計(jì))。
三、持續(xù)集成&交付
1.Jenkins
Jenkins 的前身是 Hudson,它是一個(gè)可擴(kuò)展的持續(xù)集成引擎。
2.Capistrano
Capistrano 是一個(gè)用來并行的在多臺(tái)機(jī)器上執(zhí)行相同命令的工具,使用用來安裝一整批機(jī)器。它最初是被開發(fā)用來發(fā)布 Rails 應(yīng)用的。
3.BuildBot
BuildBot 是一個(gè)系統(tǒng)的自動(dòng)化編譯/測(cè)試周期最需要的軟件,以驗(yàn)證代碼的變化。通過自動(dòng)重建和測(cè)試每次發(fā)生了變化的東西,在建設(shè)迅速查明之前,減少不必要的失敗。
4.Fabric
fabric8 是開源 Java Containers(JVMs) 深度管理集成平臺(tái)。有了 fabric8 可以非常方便的從 UI 和 UX 一致的中央位置進(jìn)行自動(dòng)操作,配置和管理。fabric8 同時(shí)提供一些非功能性需求,比如配置管理,服務(wù)發(fā)現(xiàn)故障轉(zhuǎn)移,集中化監(jiān)控,自動(dòng)化等等。
Tinderbox
5.Travis CI
Travis CI 是一個(gè)基于云的持續(xù)集成項(xiàng)目, 目前已經(jīng)支持大部分主流語言了,比如:C,PHP,Ruby,Python,Nodejs等等。
6.Continuum
Apache Continuum 是最新的 CI 服務(wù)器之一,也是值得關(guān)注的一個(gè)新進(jìn)入者。基于 Web 的界面使得配置項(xiàng)目很容易。而且,還不需要安裝 Web 服務(wù)器,因?yàn)?Continuum 內(nèi)置了 Jetty Web 服務(wù)器。并且,Continuum 可以作為 Windows 服務(wù)運(yùn)行,還在應(yīng)用程序的某些部分嵌入了上下文敏感的文檔,從而提供了很多幫助。
7.LuntBuild
LuntBuild 是一個(gè)強(qiáng)大自動(dòng)構(gòu)建的工具。通過一個(gè)簡(jiǎn)潔的web接口就可以很容易地進(jìn)行系統(tǒng)的持續(xù)構(gòu)建。
8.CruiseControl
CruiseControl 是一個(gè)針對(duì)持續(xù)構(gòu)建程序(項(xiàng)目持續(xù)集成)的框架,它包括一個(gè)email通知的插件,Ant和各種各樣的CVS工具。CruiseControl提供了一個(gè)Web接口,可隨時(shí)查看當(dāng)前的編譯狀況和歷史狀況。
9.Integrity
Integrity 是 Ruby 開發(fā)的持續(xù)集成服務(wù)器。
10.Gump
Gump 是 Apache 的整合工具。它以 Python 寫成、完全支持 Apache Ant、Apache Maven 等等軟件組建工具。
11.Go
Go 是 Google 開發(fā)的一種編譯型,并發(fā)型,并具有垃圾回收功能的編程語言。
四、部署工具
(一)容器平臺(tái)
1.Docker
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
2.Rocket
Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 類似,幫助開發(fā)者打包應(yīng)用和依賴包到可移植容器中,簡(jiǎn)化搭環(huán)境等部署工作。
3.Ubuntu(LXC)
LXD 是 ubuntu 基于 LXC 技術(shù)的重構(gòu),容器天然支持非特權(quán)和分布式。LXD 與 Docker 的思路不同,Docker 是 PAAS,LXD 是 IAAS。LXC 項(xiàng)目由一個(gè) Linux 內(nèi)核補(bǔ)丁和一些 userspace 工具組成。這些 userspace 工具使用由補(bǔ)丁增加的內(nèi)核新特性,提供一套簡(jiǎn)化的工具來維護(hù)容器。
(二)配置管理
1.Chef
Chef 是一個(gè)系統(tǒng)集成框架,為整個(gè)架構(gòu)提供配置管理功能。
2.Puppet
Puppet,您可以集中管理每一個(gè)重要方面,您的系統(tǒng)使用的是跨平臺(tái)的規(guī)范語言,管理所有的單獨(dú)的元素通常聚集在不同的文件,如用戶, CRON作業(yè),和主機(jī)一起顯然離散元素,如包裝,服務(wù)和文件。
3.CFengine
Cfengine(配置引擎)是一種 Unix 管理工具,其目的是使簡(jiǎn)單的管理的任務(wù)自動(dòng)化,使困難的任務(wù)變得較容易。Cfengine 適用于管理各種環(huán)境,從一臺(tái)主機(jī)到上萬臺(tái)主機(jī)的機(jī)群均可使用。
4.Bash
Bash 是大多數(shù)Linux系統(tǒng)以及Mac OS X v10.4默認(rèn)的shell,它能運(yùn)行于大多數(shù)Unix風(fēng)格的操作系統(tǒng)之上,甚至被移植到了Microsoft Windows上的Cygwin系統(tǒng)中,以實(shí)現(xiàn)windows的POSIX虛擬接口。此外,它也被DJGPP項(xiàng)目移植到了MS-DOS上。
5.Rudder
Rudder 已改名為Flannel,為每個(gè)使用 Kubernetes 的機(jī)器提供一個(gè)子網(wǎng)。也就是說 Kubernetes 集群中的每個(gè)主機(jī)都有自己一個(gè)完整的子網(wǎng),例如機(jī)器 A 和 B 可以有 10.0.1.0/24 和 10.0.2.0/24 子網(wǎng)。
Powershell
6.RunDeck
RunDeck 是用 Java/Grails 寫的開源工具,幫助用戶在數(shù)據(jù)中心或者云環(huán)境中自動(dòng)化各種操作和流程。通過命令行或者web界面,用戶可以對(duì)任意數(shù)量的服務(wù)器進(jìn)行操作,大大降低了對(duì)服務(wù)器自動(dòng)化的門檻。
7.Saltstack
Saltstack 可以看做是func的增強(qiáng)版+Puppet的弱化版。使用Python編寫。非常好用,快速可以基于EPEL部署。Salt 是一個(gè)開源的工具用來管理你的基礎(chǔ)架構(gòu),可輕松管理成千上萬臺(tái)服務(wù)器。
8.Ansible
Ansible 提供一種最簡(jiǎn)單的方式用于發(fā)布、管理和編排計(jì)算機(jī)系統(tǒng)的工具,你可在數(shù)分鐘內(nèi)搞定。Ansible 是一個(gè)模型驅(qū)動(dòng)的配置管理器,支持多節(jié)點(diǎn)發(fā)布、遠(yuǎn)程任務(wù)執(zhí)行。默認(rèn)使用 SSH 進(jìn)行遠(yuǎn)程連接。無需在被管理節(jié)點(diǎn)上安裝附加軟件,可使用各種編程語言進(jìn)行擴(kuò)展。
(三)微服務(wù)平臺(tái)
1.OpenShift
OpenShift 是由紅帽推出的一款面向開源開發(fā)人員開放的平臺(tái)即服務(wù)(PaaS)。 OpenShift通過為開發(fā)人員提供在語言、框架和云上的更多的選擇,使開發(fā)人員可以構(gòu)建、測(cè)試、運(yùn)行和管理他們的應(yīng)用。
2.Cloud Foundry
Cloud Foundry 是VMware于2011年4月12日推出的業(yè)界第一個(gè)開源PaaS云平臺(tái),它支持多種框架、語言、運(yùn)行時(shí)環(huán)境、云平臺(tái)及應(yīng)用服務(wù),使開發(fā)人員能夠在幾秒鐘內(nèi)進(jìn)行應(yīng)用程序的部署和擴(kuò)展,無需擔(dān)心任何基礎(chǔ)架構(gòu)的問題。
3.Kubernetes
Kubernetes 是來自 Google 云平臺(tái)的開源容器集群管理系統(tǒng)。基于 Docker 構(gòu)建一個(gè)容器的調(diào)度服務(wù)。該系統(tǒng)可以自動(dòng)在一個(gè)容器集群中選擇一個(gè)工作容器供使用。其核心概念是 Container Pod。
4.Mesosphere
Apache Mesos 是一個(gè)集群管理器,提供了有效的、跨分布式應(yīng)用或框架的資源隔離和共享,可以運(yùn)行Hadoop、MPI、Hypertable、Spark。
(四)服務(wù)開通
1.Puppet
Puppet,您可以集中管理每一個(gè)重要方面,您的系統(tǒng)使用的是跨平臺(tái)的規(guī)范語言,管理所有的單獨(dú)的元素通常聚集在不同的文件,如用戶, CRON作業(yè),和主機(jī)一起顯然離散元素,如包裝,服務(wù)和文件。
Razor
2.Docker Swarm
Docker Swarm 是一個(gè)Dockerized化的分布式應(yīng)用程序的本地集群,它是在Machine所提供的功能的基礎(chǔ)上優(yōu)化主機(jī)資源的利用率和容錯(cuò)服務(wù)。具體來說,Docker Swarm支持用戶創(chuàng)建可運(yùn)行Docker Daemon的主機(jī)資源池,然后在資源池中運(yùn)行Docker容器。Docker Swarm可以管理工作負(fù)載并維護(hù)集群狀態(tài)。
3.Vagrant
Vagrant 是一個(gè)基于 Ruby 的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。它使用 Oracle 的開源 VirtualBox 虛擬化系統(tǒng),使用 Chef 創(chuàng)建自動(dòng)化虛擬環(huán)境。
4.Powershell
5.OpenStack Heat
五、維護(hù)
日志記錄
1.Logstash
Logstash 是一個(gè)應(yīng)用程序日志、事件的傳輸、處理、管理和搜索的平臺(tái)。你可以用它來統(tǒng)一對(duì)應(yīng)用程序日志進(jìn)行收集管理,提供 Web 接口用于查詢和統(tǒng)計(jì)。
2.CollectD
collectd 是一個(gè)守護(hù)(daemon)進(jìn)程,用來收集系統(tǒng)性能和提供各種存儲(chǔ)方式來存儲(chǔ)不同值的機(jī)制。比如以RRD 文件形式。
3.StatsD
StatsD 是一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)守護(hù)進(jìn)程,基于 Node.js 平臺(tái),通過 UDP 或者 TCP 方式偵聽各種統(tǒng)計(jì)信息,包括計(jì)數(shù)器和定時(shí)器,并發(fā)送聚合信息到后端服務(wù),例如 Graphite。
六、監(jiān)控,警告&分析
1.Nagios
Nagios 是一個(gè)監(jiān)視系統(tǒng)運(yùn)行狀態(tài)和網(wǎng)絡(luò)信息的監(jiān)視系統(tǒng)。Nagios能監(jiān)視所指定的本地或遠(yuǎn)程主機(jī)以及服務(wù),同時(shí)提供異常通知功能等。
2.Ganglia
Ganglia 是一個(gè)跨平臺(tái)可擴(kuò)展的,高性能計(jì)算系統(tǒng)下的分布式監(jiān)控系統(tǒng),如集群和網(wǎng)格。它是基于分層設(shè)計(jì),它使用廣泛的技術(shù),如XML數(shù)據(jù)代表,便攜數(shù)據(jù)傳輸,RRDtool用于數(shù)據(jù)存儲(chǔ)和可視化。
3.Sensu
Sensu 是開源的監(jiān)控框架。主要特性:高度可組合;提供一個(gè)監(jiān)控代理,一個(gè)事件處理器和文檔 APIs;為云而設(shè)計(jì);Sensu 的現(xiàn)代化架構(gòu)允許監(jiān)控大規(guī)模的動(dòng)態(tài)基礎(chǔ)設(shè)施,能夠通過復(fù)雜的公共網(wǎng)絡(luò)監(jiān)控幾千個(gè)全球分布式的機(jī)器和服務(wù);熱情的社區(qū)。
4.zabbix
zabbix 是一個(gè)基于Web界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。
5.ICINGA
ICINGA 項(xiàng)目是 由Michael Luebben、HendrikB?cker和JoergLinge等人發(fā)起的,他們都是現(xiàn)有的Nagios項(xiàng)目社區(qū)委員會(huì)的成員,他們承諾,新的開源項(xiàng)目將完全兼容以前的Nagios應(yīng)用程序及擴(kuò)展功能。
6.Graphite
Graphite 是一個(gè)用于采集網(wǎng)站實(shí)時(shí)信息并進(jìn)行統(tǒng)計(jì)的開源項(xiàng)目,可用于采集多種網(wǎng)站服務(wù)運(yùn)行狀態(tài)信息。Graphite服務(wù)平均每分鐘有4800次更新操作。
7.Kibana
Kibana 是一個(gè)為 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它對(duì)日志進(jìn)行高效的搜索、可視化、分析等各種操作。
以上,如果有其他補(bǔ)充可以在評(píng)論中跟大家分享哦!
原文標(biāo)題:60 best open source tools to do DevOps
【編輯推薦】
上一篇:運(yùn)維自動(dòng)化重點(diǎn)解讀之監(jiān)控系統(tǒng)(二):高可用
下一篇:互聯(lián)網(wǎng)企業(yè)需要一種能力叫運(yùn)維

頻道總排行
- Cisco NetFlow v9為何無人問津?
- 技術(shù)專題:智能化運(yùn)維
- 開源代碼管理:如何安全地使用開源庫?
- Facebook架構(gòu)解讀
- IT運(yùn)維分析與海量日志搜索需要注意什么(1)
- 金山運(yùn)維肖力:如何將業(yè)務(wù)遷移到虛擬化環(huán)境并穩(wěn)定運(yùn)行(1)
- Apache Ignite(四):基于Ignite的分布式ID生成器
- CrazyEye,一款國人開源的堡壘機(jī)軟件(1)
- SDN時(shí)代的網(wǎng)絡(luò)管理系統(tǒng)會(huì)走向何方
- WOT2016吳兆松:Zabbix監(jiān)控自動(dòng)化的未來如何發(fā)展
頻道本月排行
- 8你消費(fèi)我買單——"漏洞"天使OneRASP...
- 7有了Jenkins,為什么還需要一個(gè)獨(dú)立...
- 6IT運(yùn)維分析與海量日志搜索需要注意什么(1)
- 5新浪微博王傳鵬:微博推薦架構(gòu)的演進(jìn)(1)
- 4史上最大機(jī)器學(xué)習(xí)數(shù)據(jù)集,雅虎對(duì)外開...
- 4雅虎開源可以提升流操作速度的DataSketches
- 4大眾點(diǎn)評(píng)高可用性系統(tǒng)運(yùn)維經(jīng)驗(yàn)分享
- 4云運(yùn)維如何選擇部署適合自身的IDC和...
- 4開源還是商用?十大云運(yùn)維監(jiān)控工具測(cè)...
- 4論開發(fā)與運(yùn)維沖突的根源、表現(xiàn)形式及...