當前位置:
首頁 > 最新 > 這些工具都沒用過?還談什麼 DevOps

這些工具都沒用過?還談什麼 DevOps

導語:

DevOps 越來越流行,越來越成為加快產品研發速度、提升團隊效率的有效工具。現在,在開發、測試、部署、交付、維護以及監控分析等工作中,有越來越多的開源 DevOps 工具可以使用。

本文推薦了60款開源工具來幫助大家更好的實行 DevOps。

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

1. 開發工具


版本控制系統 Git

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

代碼託管平台 GitLab

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

代碼評審工具 Gerrit

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

版本控制系統 Mercurial

Mercurial 是一種輕量級分散式版本控制系統,採用 Python 語言實現,易於學習和使用,擴展性強。

版本控制系統 Subversion

Subversion 是一個版本控制系統,相對於的 RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS。互聯網上免費的版本控制服務多基於Subversion。

版本控制系統 Bazaar

Bazaar 是一個分散式的版本控制系統,它發布在 GPL 許可協議之下,並可用於 Windows、GNU/Linux、UNIX 以及 Mac OS 系統。

2. 自動化構建和測試

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. 部署工具

Docker

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

Rocket

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

Ubuntu(LXC)

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


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 進行遠程連接。無需在被管理節點上安裝附加軟體,可使用各種編程語言進行擴展。


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。


Puppet

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

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

Kibana 是一個為 Logstash 和 ElasticSearch 提供的日誌分析的 Web 介面。可使用它對日誌進行高效的搜索、可視化、分析等各種操作。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 DevOps時代 的精彩文章:

一種輕量級的代碼資產管理思路
如何正確選擇一個雲服務商?

TAG:DevOps時代 |