天天看點

史上最全的開源 DevOps 工具

原文連結

你喜歡免費的東西嗎?獲得開發者社群支援的自動化,開源的工具是大家夢寐以求的。這裡列舉了 60+ 款最棒的開源工具,可以幫助你很好的實行 DevOps。

史上最全的開源 DevOps 工具

1. 開發工具

版本控制&協作開發

·版本控制系統 Git

Git 是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。開源中國 Git 代碼托管平台: http://git.oschina.net/

·代碼托管平台 GitLab

GitLab 是一個利用 Ruby on Rails 開發的開源應用程式,實作一個自托管的Git項目倉庫,可通過Web界面進行通路公開的或者私人項目。開源中國代碼托管平台 git.oschina.net 就是基于 GitLab 項目搭建。 orange

·代碼評審工具 Gerrit

Gerrit 是一個免費、開放源代碼的代碼審查軟體,使用網頁界面。利用網頁浏覽器,同一個團隊的軟體程式員,可以互相審閱彼此修改後的程式代碼,決定是否能夠送出,退回或者繼續修改。它使用 Git 作為底層版本控制系統。 orange

·版本控制系統 Mercurial

Mercurial 是一種輕量級分布式版本控制系統,采用 Python 語言實作,易于學習和使用,擴充性強。orange

·版本控制系統 Subversion

Subversion 是一個版本控制系統,相對于的 RCS、CVS,采用了分支管理系統,它的設計目标就是取代CVS。網際網路上免費的版本控制服務多基于Subversion。

版本控制系統 Bazaar

Bazaar 是一個分布式的版本控制系統,它釋出在 GPL 許可協定之下,并可用于 Windows、GNU/Linux、UNIX 以及 Mac OS 系統。

2. 自動化建構和測試

·Apache Ant

Apache Ant是一個将軟體編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,大多用于Java環境中的軟體開發。

·Maven

Maven 除了以程式建構能力為特色之外,還提供 Ant 所缺少的進階項目管理工具。由于 Maven 的預設建構規則有較高的可重用性,是以常常用兩三行 Maven 建構腳本就可以建構簡單的項目,而使用 Ant 則需要十幾行。

事實上,由于 Maven 的面向項目的方法,許多 Apache Jakarta 項目現在使用 Maven,而且公司項目采用 Maven 的比例在持續增長。開源中國的 Maven 庫

http://maven.oschina.net

·Selenium

Selnium (SeleniumHQ) 是 thoughtworks公司的一個內建測試的強大工具。

·PyUnit

Python單元測試架構(The Python unit testing framework),簡稱為PyUnit, 是Kent Beck和Erich Gamma這兩位聰明的家夥所設計的 JUnit 的Python版本。

·QUnit

QUnit 是 jQuery 的單元測試架構。

·JMeter

JMeter 是 Apache 組織的開放源代碼項目,它是功能和性能測試的工具,100% 的用 java 實作。

·Gradle

Gradle 就是可以使用 Groovy 來書寫建構腳本的建構系統,支援依賴管理和多項目,類似 Maven,但比之簡單輕便。

·PHPUnit

PHPUnit 是一個輕量級的PHP測試架構。它是在PHP5下面對JUnit3系列版本的完整移植,是xUnit測試架構家族的一員(它們都基于模式先鋒Kent Beck的設計)。

3. 持續內建&傳遞

·Jenkins

Jenkins 的前身是 Hudson 是一個可擴充的持續內建引擎。

·Capistrano

Capistrano 是一個用來并行的在多台機器上執行相同指令的工具,使用用來安裝一整批機器。它最初是被開發用來釋出 Rails 應用的。

·BuildBot

BuildBot 是一個系統 的自動化編譯/測試周期最需要的軟體,以驗證代碼的變化。通過自動重建和測試每次發生了變化的東西,在建設迅速查明之前,減少不必要的失敗。

·Fabric

fabric8 是開源 Java Containers(JVMs) 深度管理內建平台。有了 fabric8 可以非常友善的從 UI 和 UX 一緻的中央位置進行自動操作,配置和管理。fabric8 同時提供一些非功能性需求,比如配置管理,服務發現故障轉移,集中化監控,自動化等等。

·Tinderbox

·Travis CI

Travis CI 是一個基于雲的持續內建項目, 目前已經支援大部分主流語言了,比如:C,PHP,Ruby,Python, Nodejs等等。

·Continuum

Apache Continuum 是最新的 CI 伺服器之一,也是值得關注的一個新進入者。基于 Web 的界面使得配置項目很容易。

而且,還不需要安裝 Web 伺服器,因為 Continuum 内置了 Jetty Web 伺服器。并且,Continuum 可以作為 Windows 服務運作,還在應用程式的某些部分嵌入了上下文敏感的文檔,進而提供了很多幫助。

·LuntBuild

LuntBuild 是一個強大自動建構的工具。通過一個簡潔的web接口就可以很容易地進行系統的持續建構。

·CruiseControl

CruiseControl 是一個針對持續建構程式(項目持續內建)的架構,它包括一個email通知的插件,Ant和各種各樣的CVS工具。CruiseControl提供了一個Web接口, 可随時檢視目前的編譯狀況和曆史狀況。

·Integrity

Integrity 是 Ruby 開發的持續內建伺服器。

·Gump

Gump 是 Apache 的整合工具。它以 Python 寫成、完全支援 Apache Ant、Apache Maven 等等軟體組建工具。

·Go

Go 是 Google 開發的一種編譯型,并發型,并具有垃圾回收功能的程式設計語言。

4. 部署工具

4.1 容器平台

·Docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實作虛拟化。

·Rocket

Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 類似,幫助開發者打包應用和依賴包到可移植容器中,簡化搭環境等部署工作。

·Ubuntu(LXC)

LXD 是 ubuntu 基于 LXC 技術的重構,容器天然支援非特權和分布式。LXD 與 Docker 的思路不同,Docker 是 PAAS,LXD 是 IAAS。LXC 項目由一個 Linux 核心更新檔和一些 userspace 工具組成。這些 userspace 工具使用由更新檔增加的核心新特性,提供一套簡化的工具來維護容器。

4.2 配置管理

·Chef

Chef 是一個系統內建架構,為整個架構提供配置管理功能。

·Puppet

Puppet,您可以集中管理每一個重要方面,您的系統使用的是跨平台的規範語言,管理所有的單獨的元素通常聚集在不同的檔案,如使用者, CRON作業,和主機一起顯然離散元素,如包裝,服務和檔案。

·CFengine

Cfengine(配置引擎)是一種 UNIX 管理工具,其目的是使簡單的管理的任務自動化,使困難的任務變得較容易。Cfengine 适用于管理各種環境,從一台主機到上萬台主機的機群均可使用。

·Bash

bash 是大多數Linux系統以及Mac OS X v10.4預設的shell,它能運作于大多數Unix風格的作業系統之上,甚至被移植到了Microsoft Windows上的Cygwin系統中,以實作windows的POSIX虛拟接口。此外,它也被DJGPP項目移植到了MS-DOS上。

·Rudder

Rudder 已改名為Flannel,為每個使用 Kubernetes 的機器提供一個子網。也就是說 Kubernetes 叢集中的每個主機都有自己一個完整的子網,例如機器 A 和 B 可以有 10.0.1.0/24 和 10.0.2.0/24 子網。

**·Powershell

·RunDeck**

RunDeck 是用 Java/Grails 寫的開源工具,幫助使用者在資料中心或者雲環境中自動化各種操作和流程。通過指令行或者web界面,使用者可以對任意數量的伺服器進行操作,大大降低了對伺服器自動化的門檻。

·Saltstack

Saltstack 可以看做是func的增強版+Puppet的弱化版。使用Python編寫。非常好用,快速可以基于EPEL部署。Salt 是一個開源的工具用來管理你的基礎架構,可輕松管理成千上萬台伺服器。

·Ansible

Ansible 提供一種最簡單的方式用于釋出、管理和編排計算機系統的工具,你可在數分鐘内搞定。Ansible 是一個模型驅動的配置管理器,支援多節點釋出、遠端任務執行。預設使用 SSH 進行遠端連接配接。無需在被管理節點上安裝附加軟體,可使用各種程式設計語言進行擴充。

4.3 微服務平台

·OpenShift

OpenShift 是由紅帽推出的一款面向開源開發人員開放的平台即服務(PaaS)。 OpenShift通過為開發人員提供在語言、架構和雲上的更多的選擇,使開發人員可以建構、測試、運作和管理他們的應用。

·Cloud Foundry

Cloud Foundry 是VMware于2011年4月12日推出的業界第一個開源PaaS雲平台,它支援多種架構、語言、運作時環境、雲平台及應用服務,使開發 人員能夠在幾秒鐘内進行應用程式的部署和擴充,無需擔心任何基礎架構的問題。

·Kubernetes

Kubernetes 是來自 Google 雲平台的開源容器叢集管理系統。基于 Docker 建構一個容器的排程服務。該系統可以自動在一個容器叢集中選擇一個工作容器供使用。其核心概念是 Container Pod。

·Mesosphere

Apache Mesos 是一個叢集管理器,提供了有效的、跨分布式應用或架構的資源隔離和共享,可以運作Hadoop、MPI、Hypertable、Spark。

4.4 服務開通

·Razor

·Docker Swarm

Docker Swarm 是一個Dockerized化的分布式應用程式的本地叢集,它是在Machine所提供的功能的基礎上優化主機資源的使用率和容錯服務。具體來 說,Docker Swarm支援使用者建立可運作Docker Daemon的主機資源池,然後在資源池中運作Docker容器。Docker Swarm可以管理工作負載并維護叢集狀态。

·Vagrant

Vagrant 是一個基于 Ruby 的工具,用于建立和部署虛拟化開發環境。它使用 Oracle 的開源 VirtualBox 虛拟化系統,使用 Chef 建立自動化虛拟環境。

·Powershell

OpenStack Heat

5.維護

日志記錄

·Logstash

Logstash 是一個應用程式日志、事件的傳輸、處理、管理和搜尋的平台。你可以用它來統一對應用程式日志進行收集管理,提供 Web 接口用于查詢和統計。

·CollectD

Collectd 是一個守護(daemon)程序,用來收集系統性能和提供各種存儲方式來存儲不同值的機制。比如以RRD 檔案形式。

·StatsD

StatsD 是一個簡單的網絡守護程序,基于 Node.js 平台,通過 UDP 或者 TCP 方式偵聽各種統計資訊,包括計數器和定時器,并發送聚合資訊到後端服務,例如 Graphite。

6. 監控,警告&分析

·Nagios

Nagios 是一個監視系統運作狀态和網絡資訊的監視系統。Nagios能監視所指定的本地或遠端主機以及服務,同時提供異常通知功能等。

·Ganglia

Ganglia 是一個跨平台可擴充的,高 性能計算系統下的分布式監控系統,如叢集和網格。它是基于分層設計,它使用廣泛的技術,如XML資料代表,便攜資料傳輸,RRDtool用于資料存儲和可視化。

·Sensu

Sensu 是開源的監控架構。主要特性:高度可組合;提供一個監控代理,一個事件處理器和文檔 APIs;為雲而設計;Sensu 的現代化架構允許監控大規模的動态基礎設施,能夠通過複雜的公共網絡監控幾千個全球分布式的機器和服務;熱情的社群。

·Zabbix

Zabbix 是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。

·ICINGA

ICINGA 項目是 由Michael Luebben、HendrikB?cker和JoergLinge等人發起的,他們都是現有的Nagios項目社群委員會的成員,他們承諾,新的開源項 目将完全相容以前的Nagios應用程式及擴充功能。

·Graphite

Graphite 是一個用于采集網站實時資訊并進行統計的開源項目,可用于采集多種網站服務運作狀态資訊。Graphite服務平均每分鐘有4800次更新操作。

·Kibana