60款與DevOps相關的開源工具
阿新 • • 發佈:2018-05-09
統一 false os x 可視化 速查 lan 應用 users osc
原文地址:https://elasticbox.com/blog/de ... ools/
你喜歡免費的東西嗎?獲得開發者社區支持的自動化,開源的工具是大家夢寐以求的。這裏列舉了 60+ 款最棒的開源工具,可以幫助你很好的實行 DevOps。
開發工具
版本控制&協作開發
版本控制系統 Git Git 是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。 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 系統。
自動化構建和測試
Apache Ant Apache Ant是一個將軟件編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,大多用於Java環境中的軟件開發。 Maven Maven 除了以程序構建能力為特色之外,還提供 Ant 所缺少的高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目,而使用 Ant 則需要十幾行。事實上,由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目現在使用 Maven,而且公司項目采用 Maven 的比例在持續增長。 Selenium (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的設計)。
持續集成&交付
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 開發的一種編譯型,並發型,並具有垃圾回收功能的編程語言。
部署工具
容器平臺
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
維護
日誌記錄
Logstash Logstash 是一個應用程序日誌、事件的傳輸、處理、管理和搜索的平臺。你可以用它來統一對應用程序日誌進行收集管理,提供 Web 接口用於查詢和統計。 CollectD collectd 是一個守護(daemon)進程,用來收集系統性能和提供各種存儲方式來存儲不同值的機制。比如以RRD 文件形式。 StatsD StatsD 是一個簡單的網絡守護進程,基於 Node.js 平臺,通過 UDP 或者 TCP 方式偵聽各種統計信息,包括計數器和定時器,並發送聚合信息到後端服務,例如 Graphite
監控,警告&分析
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 接口。可使用它對日誌進行高效的搜索、可視化、分析等各種操作。
60款與DevOps相關的開源工具