N 個免費 DevOps 開源工具,沒用過,至少應該了解!

2021-01-10 開源中國

在介紹Devops工具之前,先跟隨碼花來了解下:Devops是個啥?

Devops=【Development】+【Operations】。

簡言之,Devops主要用於開發、測試、運維之間的溝通、協作與整合,減少開發和運營之間的摩擦,從而快速部署軟體或應用程式,並且可以快速檢測。

作為小白,你可能就要問了:那,Devops到底是個什麼樣的存在形式,是個軟體還是啥?

錯!!!Devops既不是軟體、也不是網站、更不是代碼,而是一組方法、過程與系統的統稱。

Devops包含了很多優秀想法和原則,它鼓勵開發部門和運維部門通力合作。在DevOps環境中,開發人員和系統管理員會構建一些關係、流程和工具,從而更好的與客戶互動,最終提供更好的服務。

簡單了解了Devops是個啥之後,一起來看看下面這60多款最棒的開源工具,可以幫助你很好的實行 DevOps。

一、開發工具

版本控制&協作開發

1、版本控制系統 Git

Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。

2、代碼託管平臺 GitLab

GitLab是一個利用Ruby on Rails開發的開源應用程式,實現一個自託管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。

3、代碼評審工具 Gerrit

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

4、版本控制系統 Mercurial

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

5、版本控制系統 Subversion

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

6、版本控制系統 Bazaar

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

二、自動化構建和測試

1、Apache Ant

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

2、Maven

Maven 除了以程序構建能力為特色之外,還提供 Ant 所缺少的高級項目管理工具。由於 Maven 的預設構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目,而使用 Ant 則需要十幾行。事實上,由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目現在使用 Maven,而且公司項目採用 Maven 的比例在持續增長。

3、Selenium (SeleniumHQ)

ThoughtWorks公司的一個集成測試的強大工具。

4、PyUnit

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

5、QUnit

QUnit 是 jQuery 的單元測試框架。

6、JMeter

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

7、Gradle

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

8、PHPUnit

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

三、持續集成&交付

1、Jenkins

Jenkins 的前身是 Hudson,它是一個可擴展的持續集成引擎。

2、Capistrano

Capistrano 是一個用來並行的在多臺機器上執行相同命令的工具,使用用來安裝一整批機器。它最初是被開發用來發布 Rails 應用的。

3、BuildBot

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

4、Fabric

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

5、Travis CI

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

6、Continuum

Apache Continuum 是最新的 CI 伺服器之一,也是值得關注的一個新進入者。基於 Web 的界面使得配置項目很容易。而且,還不需要安裝 Web 伺服器,因為 Continuum 內置了 Jetty Web 伺服器。

並且,Continuum 可以作為 Windows 服務運行,還在應用程式的某些部分嵌入了上下文敏感的文檔,從而提供了很多幫助。

7、LuntBuild

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

8、CruiseControl

CruiseControl 是一個針對持續構建程序(項目持續集成)的框架,它包括一個email通知的插件,Ant和各種各樣的CVS工具。CruiseControl提供了一個Web接口,可隨時查看當前的編譯狀況和歷史狀況。

9、Integrity

Integrity 是 Ruby 開發的持續集成伺服器。

10、Gump

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

11、Go

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

四、部署工具

容器平臺

1、Docker

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

2、Rocket

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

3、Ubuntu(LXC)

LXD 是 ubuntu 基於 LXC 技術的重構,容器天然支持非特權和分布式。LXD 與 Docker 的思路不同,Docker 是 PAAS,LXD 是 IAAS。LXC 項目由一個 Linux 內核補丁和一些 userspace 工具組成。

這些 userspace 工具使用由補丁增加的內核新特性,提供一套簡化的工具來維護容器。

配置管理

1、Chef

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

2、Puppet

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

3、CFengine

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

4、Bash

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

5、Rudder

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

6、RunDeck

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

7、Saltstack

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

8、Ansible

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

微服務平臺

1、OpenShift

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

2、Cloud Foundry

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

3、Kubernetes

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

4、Mesosphere

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

服務開通

1、Puppet

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

2、Docker Swarm

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

3、Vagrant

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

4、Powershell

5、OpenStack Heat

五、維護

日誌記錄

1、Logstash

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

2、CollectD

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

3、StatsD

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

六、監控,警告&分析

1、Nagios

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

2、Ganglia

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

3、Sensu

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

4、zabbix

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

5、ICINGA

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

6、Graphite

Graphite 是一個用於採集網站實時信息並進行統計的開源項目,可用於採集多種網站服務運行狀態信息。Graphite服務平均每分鐘有4800次更新操作。

7、Kibana

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

出處:華為開發者社區

相關焦點

  • 高效交付的秘訣,開源 DevOps 運維平臺合集
    >簡單、高效、快捷的運維腳本工具庫。項目基於shell開發,收集各類運維常用工具腳本,實現快速安裝nginx、mysql、php、redis、nagios、運維經常使用的腳本等等。WeCube是一套開源的,一站式IT架構管理和運維管理工具,主要用於簡化分布式架構IT管理,並可以通過插件進行功能擴展。
  • 10 款程式設計師必備的免費開源安全工具,助你成為極客
    信息安全工程師、網絡安全產品以及相關的技術和流程都需要耗費企業大量的成本,對於大部分企業來說,往往會縮減這一部分的支出,因此許多開發人員都會首選免費的開源安全工具。
  • 機器人流程自動化(RPA):6大開源工具
    一些商業供應商提供「免費增值」產品,以此吸引潛在客戶試用其平臺。自建與購買之間還有一條道路:多個開源RPA項目為IT領導者和從業者提供了探索RPA的另一個選擇,無需完全從頭開始或被商業供應商束縛。開源聽起來可能會嚇到非開發人員,但在這方面有個好消息:雖然一些開源項目特別以開發人員為中心,但眾多解決方案與商業解決方案一樣強調易用性以及無代碼或低代碼工具。
  • 你了解DevOps的自動化架構GitOps嗎?
    而在部署過程中,GitOps至少需要兩個存儲庫,即:包含了應用原始碼、及其部署清單的應用程式存儲庫;和使用著每個環境的聲明性規範描述的,包含了整個系統目標狀態的環境配置存儲庫。您可以在代碼存儲庫中將目標環境定義並描述為開發環境、測試環境、生產環境、或是包含了運行著特定版本的應用和基礎架構服務的環境。
  • 開源組織FSF向微軟請願:Windows 7已退役,就免費開源吧
    最近開源組織Free Software Foundation就徵集了一份請願書,呼籲微軟將Win7源碼公開,以聚集民間力量將這套系統重新盤活起來。今年1月14日,微軟宣布正式停止對Windows 7的技術支持,這意味著Windows 7作業系統正式退役,意味著Windows 7將沒有持續軟體和安全更新,並且電腦遭受病毒和惡意軟體攻擊的風險會更大。
  • 微軟出品的這款工具箱,免費開源還實用!網友:1個更比6個強
    前幾天,我在搜尋好軟體的時候,發現了這款被微軟家的PowerToys,堪稱是一款Windows電腦裡的免費、開源、實用工具箱。軟體打開後,就能看到與Windows設置類似的功能界面:左側就是PowerToys 包含的全部工具,其中,部分工具絕對可以取代第三方軟體使用!
  • 這款微軟出品的免費開源工具箱,竟然比收費軟體更好用!
    軟媒魔方很多人應該都用過,這是一款非常強大的全功能工具箱軟體,功能全面覆蓋Windows系統優化、設置、清理、美化、安全等等。 軟媒魔方完全免費,不過由於收益問題,目前已經幾乎被官方拋棄,功能幾年都沒有更新過,雖然小刀哥也分享過其它工具類優化軟體,例如Windows 10 Manager,但這款軟體並不免費
  • Krita - 免費開源的數字繪畫軟體(PS的代替品)
    Krita 是一款可以替代Photoshop的自由開源的免費繪畫軟體,支持 Windows、macOS 和 Linux。介紹目前繪畫工作者(畫師)大多使用 Photoshop,這是非常優秀的商業軟體。筆刷工具,支持導入ps筆刷特點數字繪畫所需的功能,一應俱全,真正免費的專業軟體,無隱形廣告,無功能限制跨端支持windows/macOs和Linux,安卓平板也即將到來兼容psd文檔,支持一鍵切換PS工作界面,完全無縫上手
  • 10 個頂尖的 Linux 開源人工智慧工具
    在這篇文章中,我們將介紹幾個頂級的開源 Linux 生態系統的人工智慧(AI)工具。
  • 2020年,開源領域的大事件都在這了
    在過去的一年裡,我們和大家分享了開源界一些最重要的新聞,為了了讓你更了解2020年開源領域都發生了哪些大事,open-source盤點了2020年最吸引讀者注意的10個開源大事件,我們一起來看看:一、會議成功轉移到線上
  • Captura - 簡潔強大、免費開源的電腦屏幕錄製軟體
    製作gif動圖或一小段視頻,經常需要屏幕錄製,今天分享一款免費開源的電腦錄屏軟體。介紹Captura是一款免費開源的屏幕錄製工具,它能夠將屏幕上的任意區域、窗口錄製成視頻,可以選擇是否顯示滑鼠、記錄滑鼠點擊、鍵盤按鍵、聲音。
  • 免費開源建模和動畫工具Blender正式發布2.83版本
    據外媒roadtovr報導,由荷蘭非盈利性組織Blender基金會開發的免費開源建模和動畫工具Blender正式發布了支持VR功能的2.83版本。
  • 2020 Gdevops全球敏捷運維峰會在北京圓滿落幕
    近年來隨著國內先進企業對運維發展理念和相關技術的不斷深化,以及對開源資料庫改造、國產資料庫研發的成功實踐,中國數位化轉型速度得以領跑全球,中國信息技術的發展未來可期!對技術管理擁有豐富經驗的沈劍老師帶來了技術戰略的規劃思路和見解,從管理者的時間分配、戰略思考、能力建設、人才培養這幾個核心問題展開了轉化和延伸,觀點既新鮮獨特又淺顯易懂,為技術管理者提供了非常有價值的工作啟發。
  • 50個最流行的免費Kubernetes工具集 - 雲計算_CIO時代網...
    由於Kubernetes作為企業選擇容器解決方案的迅速普及,也產生了大量的工具,為用戶提供便利,是時候總結一份完整的工具清單了。本文將從集群部署工具、開發工具、CLI工具、無伺服器/功能工具、監控工具、安全、原生可視化和控制、原生服務發現、測試工具,這9個方面介紹50個有用的Kubernetes工具,大部分都是免費開源的!
  • ScreenToGif一款免費、開源、易用的GIF以及動畫屏幕錄製製作工具
    ScreenToGif基本簡介僅從名字就可以了解到它是一款屏幕轉ScreenToGif是一款國外免費開源小巧實用的Gif動畫錄製工具,使用該軟體可以將屏幕任何區域及操作過程錄製成GIF格式的動畫圖像,保存過程還可以對GIF動畫進行編輯優化。也可以自由地移動捕獲幀錄製視頻上的 web 頁或屏幕活動在您的桌面上。捕獲可以暫停和恢復,一旦你完成錄製,程序帶來了一種簡單的編輯器,允許您預覽記錄和刪除任何不必要的幀。
  • 自由軟體基金會(FSF)認為微軟應該開源Win7作業系統
    但是,有些人認為微軟應該開源該作業系統。必須指出的是,即使自Windows 10發布以來已經過去了五年,但仍有四分之一以上的計算機仍在運行Windows7。考慮到該作業系統將不再收到安全更新,看到WannaCry等級別的針對連接網際網路的Windows 7設備的攻擊也就不足為奇了。
  • DevOps工具鏈全接觸
    通過由GitLab開發的開源許可證,它可以提供Wiki、問題跟蹤、以及CI/CD管道等功能。用戶可以通過它自帶的工具進行實際規劃,或是查看工作範圍。 MSBuild Microsoft Build Engine(也稱MSBuild)是用於代碼託管,以及本機C++代碼的免費開源構建工具集。同時,它也是.NET Framework的一部分,能夠與Visual Studio進行聯動。
  • ...三小時教你學會用免費、開源的KiCad設計PCB,並有免費打板...
    對於PCB設計,硬禾團隊最近兩年時間一直都非常推崇KiCad這款開源的EDA工具。最近幾年還得到非常多的組織支持——從幾位主開發者所在的公司,到CERN(歐洲核子研究組織),到樹莓派基金會,到Digi-Key等等;所以這個持續快速迭代進步的開源工具在全球迅速流行起來。
  • 2020年DevOps的七大發展趨勢
    因此,對於許多研發企業而言,開發人員已不再停留在是否對其感興趣的層面上了,而是應該擼起袖子,真刀真槍地去實踐DevOps相關的技術與方法。Hackernoon在引述Statista的文章中提到:從2017年到2018年間,DevOps的全球使用率增長了7%。
  • 語音識別開源工具PyTorch-Kaldi:兼顧Kaldi效率與PyTorch靈活性
    機器之心原創作者:Nurhachu Null本文主要介紹用於語音識別的開源工具——PyTorch-Kaldi。1 背景傑出的科學家和工程師們一直在努力地給機器賦予自然交流的能力,語音識別就是其中的一個重要環節。人類對語音識別技術的研究從上世紀 50 年代開始就未曾停止。