推薦:2019年十佳DevOps工具

DevOps落地重要的一方面是選好工具集,本文介紹了最流行的DevOps工具。ios

開發和運維的集成翻開了軟件開發的全新篇章。若是你仍是DevOps的新手,或者正在尋求改進已有流程的方法,那麼第一道關卡就是調研哪些工具最適合你的團隊。編程

本文整理了工具列表,爲你們選擇所需的工具提供詳實的參考信息。讓咱們一塊兒看看從自動化build工具到應用程序性能監控平臺領域裏,十大最佳DevOps工具是哪些吧。瀏覽器

1. Gradle緩存

DevOps工具集須要一種可靠的build工具。Apache Ant和Maven統治着自動化build工具市場不少年,可是 Gradle 在2009年現身,從那時起它就邁着穩定增加的步伐愈來愈流行。Gradle的功能很強大,容許用戶用Java,C++,Python或者其餘語言編程。各類流行的IDE,好比Netbeans,Eclipse以及Intellij IDEA也都支持Gradle。若是這還沒法說服你使用它,那麼還有一點可能有所幫助,Google也選擇它做爲Andriod Studio的 正式build工具 。安全

Maven和Ant使用XML配置,Gradle則引入了一種基於Groovy的DSL來描述build。在2016年,Gradle團隊還發布了一種 基於Kotlin的DSL ,所以用戶如今也能夠用Kotlin來編寫build的腳本。這意味着Gradle的學習須要必定的時間,若是你之前用過Groovy,Kotlin或其餘JVM語言的話,那麼會有助於Gradle的快速掌握。除此以外,Gradle使用Maven的repository格式,所以若是使用過Maven的話對Gradle的依賴管理也會比較熟悉。還能夠 將Ant build導入 進Gradle。服務器

Gradle最好的設計是 增量build ,所以能夠節省大量的編譯時間。根據Gradle的 性能報告 ,它比Maven快100倍。這樣的性能優點一部分來源於這種增量設計,另外也得益於Gradle的 build緩存 和 daemon 。build緩存重用task的輸出,而Gradle的Daemon將build的信息儲存在內存裏,能夠在多個build間共享。網絡

總的來講,Gradle讓快速交付成爲可能,也讓配置更加靈活。架構

2. Git運維

Git 是最流行的DevOps工具之一,在軟件界使用普遍。它是一種分佈式SCM(源碼管理)工具,遠程團隊和開源貢獻者都很喜歡它。Git讓用戶能夠跟蹤本身開發工做的進度。用戶能夠保存本身源碼的不一樣版本,而且在須要的時候切回以前的版本。它也很適合作實驗,由於能夠建立單獨的分支,在須要的時候僅僅merge新特性。分佈式

要將Git和DevOps工做流集成起來,還須要維護repository,團隊成員能夠向其中push各自的工做。目前,兩大最佳在線的Git repo託管服務是 GitHub 和 Bitbucket 。GitHub更有名氣,可是Bitbucket給小團隊(不超過五個成員)提供免費不受限的私有repo。使用GitHub,用戶僅僅能夠免費訪問公有的repo——固然這對於不少項目來講仍然是很好的解決方案。

GitHub和Bitbucket都有很好的集成。好比,用戶能夠將它們和Slack集成,這樣團隊的每一個人都能在有任意commit時收到通知。

3. Jenkins

Jenkins 是不少軟件開發團隊在走向DevOps時會用的自動化工具。它是開源的CI/CD服務器,幫助用戶自動化交付流水線的不一樣階段。Jenkins之因此流行的主要緣由是其巨大的插件生態系統。目前,它提供 1000多個插件 ,所以它能夠和幾乎全部DevOps工具(從Docker到Puppet)集成。

使用Jenkins,用戶能夠搭建而且根據實際須要自定義本身的CI/CD流水線。 Jenkins文檔 裏介紹了以下示例。這僅僅是一種可能的實現。看着很不錯,不是嗎?

使用Jenkins很容易 ,它在Windows,Mac OS X和Linux上開箱即用。很容易就能夠 使用Docker安裝它 。用戶能夠經過瀏覽器搭建而且配置Jenkins服務器。若是你是第一次使用它,能夠選擇安裝最經常使用的插件。固然也能夠建立自定義配置。

使用Jenkins,用戶能夠儘快迭代並部署新代碼。它還幫助用戶度量流水線裏每一步是否成功。我聽到有人抱怨Jenkins很「醜陋」且並不直觀的UI。可是,我仍舊能夠很容易地找到須要的全部東西。

4. Bamboo

Bamboo 是Atlassian的CI/CD服務器解決方案,不少特性和Jenkins相似。它們都是流行的DevOps工具,幫助用戶自動化發佈流水線,從build到部署。可是,Jenkins是開源的,Bamboo是收費的。所以,這裏永恆的問題是,有免費軟件時有必要選擇收費軟件嗎?這取決於你的經費和目標。

Bamboo有不少預構建的功能,而這些功能在Jenkins裏得本身手動搭建。這也正是Bamboo的插件更少的緣由(大概100個,Jenkins有1000+個)。實際上,你並不須要Bamboo的不少插件,由於它帶着不少開箱可用的功能。

Bamboo和其餘Atlassian產品,好比Jira和Bitbucket無縫集成。用戶還能夠訪問內建的Git和Mercurial分支工做流及測試環境。總之,Bamboo能夠節省不少配置的時間。它的UI也更爲直觀,有提示,自動補全和其餘有用的特性。

5. Docker

Docker 在2013年發佈以後已經成爲了數一數二的容器平臺,而且仍然在持續改進。它是最重要的DevOps工具之一。Docker在科技界掀起了容器化的潮流,主要是由於它讓分佈式開發成爲可能,而且自動化了應用程序的部署。它將應用程序隔離成單獨的容器,所以應用變得更加便攜也更爲安全。Docker應用程序也獨立於OS以及平臺。用戶可使用Docker容器代替虛擬機,好比VirtualBox。

我最喜歡Docker的一點是用戶無需擔憂依賴管理。能夠將全部依賴打包進應用程序的容器,並將全部的東西當作獨立的單元交付。而後,用戶能夠很輕鬆地在任意機器或者平臺上運行這個應用程序。

Docker也和 Jenkins 以及 Bamboo 集成。若是你將自動化服務器和Docker搭配使用,能夠進一步改進交付工做流。另外,Docker也很適用於雲計算。最近幾年,全部主流的雲供應商,好比AWS,Google Cloud,都已經支持Docker。所以,若是你計劃雲遷移,那麼Docker能夠幫助簡化這一進程。

6. Kubernetes

今年,每一個人都在談論 Kubernetes 。它是容器編排平臺,將容器化推動到下一個層面。它可使用Docker或者其餘替代產品。Kubernetes仍然很新;2015年才推出第一個版本。它由一些Google的工程師建立,他們想找到管理大規模容器的方案。使用Kubernetes,用戶能夠將容器組織成邏輯單元。

若是你只有幾個容器,那麼可能並不須要容器編排平臺。可是,當系統達到必定級別的複雜度,須要擴展資源的時候,這就是合理的下一步。Kubernetes讓用戶能夠自動化管理上百個容器的過程。

使用Kubernetes,無需將容器化的應用程序綁定到某個單獨的機器裏。相反,你能夠將它部署到一個機器集羣裏,Kubernetes會自動化分發並在整個集羣裏調度容器。

一個Kubernetes集羣包含一個master和幾個worker節點。master節點實現預約義的規則,而且將容器部署到worker節點上。Kubernetes負責全部一切。好比,它注意到某個worker節點下線了,就會將其上的容器從新分發到別的節點上。

7. Puppet企業版

Puppet Enterprise 是一個跨平臺的配置管理平臺。它讓用戶能夠將基礎架構當作代碼來管理。由於它自動化了基礎架構管理,用戶能夠更快更安全地交付軟件。Puppet還給開發人員提供了小型項目可使用的 開源工具 。可是,若是你負責的是較大的基礎架構,就會發現Puppet Enterprise的 額外特性 是有價值的,好比:

實時報告

基於角色的訪問控制

節點管理

使用Puppet Enterprise,你能夠管理多個團隊和數千資源。它能自動理解基礎架構裏的關係。它處理依賴關係而且智能地處理故障。當遇到一次失敗的配置時,它也會跳過全部依賴的配置。Puppet最好的一點是它有 5000多個模塊 ,能夠和 不少流行的DevOps工具 集成。

8. Ansible

Ansible 是一個配置管理工具,和Puppet,Chef相似。用戶能夠用它配置本身的基礎架構而且自動化部署。和其餘相似的DevOps工具相比,它的主要賣點是簡潔易用。Ansible遵循和Puppet同樣的基礎架構即代碼(IAC)的理念。可是,它使用超級簡單的YAML語法。使用Ansible,用戶能夠在YAML裏定義任務,而Puppet則有本身的聲明式語言。

無代理的架構是另外一個常常被說起的Ansible的特性。由於後臺沒有運行daemon或者代理,Ansible是安全而且輕量級的配置管理自動化的解決方案。和Puppet相似,Ansible也有 一些模塊 。

若是想要更好地理解Ansible在DevOps工做流裏是怎麼工做的,能夠查看Red Hat Blod裏的 這篇博文 。它介紹了在Jenkins流水線裏,如何使用Ansible來預配環境以及部署應用。

9. Nagios

Nagios 是最流行的免費並開源的DevOps監控工具。它能夠監控基礎架構從而幫助用戶發現並解決問題。使用Nagios,用戶能夠記錄事件,運行中斷以及故障。用戶還能夠經過Nagios的圖表和報告監控趨勢。這樣,能夠預測運行中斷和錯誤,而且發現安全攻擊。

雖然基礎架構監控裏有不少DevOps工具,可是Nagios由於其豐富的 插件生態 而脫穎而出。由於Nagios已經發布不少年了(2002年發佈),圍繞它的社區很大。除了插件,社區還貢獻了add-on,指導文章,翻譯等等有用的東西——都是免費的。

Nagios提供了四中開源監控解決方案:

Nagios Core

Nagios XI

Nagios Log Server

Nagios Fusion

Nagios Core是一個命令行工具,提供了全部基本功能。用戶還能夠選擇 Nagios XI ,它提供了基於網頁的GUI以及監控嚮導程序。Nagios提供了 功能的比對 。

Nagios Log Server讓用戶能夠搜索日誌數據,而且配置可能攻擊的報警。Nagios Fusion能夠同時監控多個網絡。

總體來講,Nagios給DevOps團隊提供了基礎架構監控解決方案。可是,它須要必定的時間搭建,而且須要考慮和你的環境的兼容性。

10. Raygun

Raygun 是領先的錯誤監控以及崩潰報告的平臺。 應用程序性能監控 (APM)是其最近的項目。Raygun的DevOps工具幫助用戶分析性能問題,而且定位到代碼的某一行,某個function或者API調用。APM工具和Raygun的錯誤管理工做流能夠協同工做。好比,它自動定位最高優先級的問題,並建立issue。

Raygun APM可以幫助最大化其餘DevOps的價值,由於你老是能收到問題通知。由於它自動將錯誤連接到源碼裏,Raygun給整個團隊提供統一的真理來源來定位錯誤和性能問題,將開發和運維緊密聯繫在一塊兒。

哪些DevOps工具適合你的團隊?

找到最佳的DevOps工具須要一些測試和經驗。搭建以及配置開源軟件一般須要更多時間。大多數商業DevOps工具都有免費試用版本,用戶能夠測試而且評估。最終選擇哪些工具取決於團隊的需求和目標。

感興趣的能夠本身來個人Java架構羣,能夠獲取免費的學習資料,羣號:855801563對Java技術,架構技術感興趣的同窗,歡迎加羣,一塊兒學習,相互討論。

相關文章
相關標籤/搜索