2018年值得推薦的10個開源DevOps工具!
開發和運營的整合為軟件開發帶來了新的視角。如果您是DevOps實踐的新手,或者希望改進當前流程,那么了解哪種工具最適合您的團隊可能是一項挑戰。
我們將幾個開源工具列出來,這里面包括從自動構建的工具到應用程序性能監控平臺 ,以幫助您做出明智的決定:哪些開源工具會比較適合您的構建情況。現在來看一下吧。
1. Gradle
DevOps工具棧需要一個可靠的構建工具。多年來,都是Apache Ant和Maven一直主導著自動化構建工具市場,但Gradle 在2009年出現了,其受歡迎程度自那時起飛速增長。
Gradle是一個非常通用的工具,它允許你使用Java,C ++,Python或其他語言編寫代碼。Gradle還受到Netbeans,Eclipse和IntelliJ IDEA等流行IDE的支持,谷歌也會選擇它作為Android Studio 的官方構建工具 。
雖然Maven和Ant使用XML進行配置,但Gradle引入了基于Groovy的DSL來描述構建。2016年,Gradle團隊還發布了基于Kotlin的DSL ,現在您也可以在Kotlin中編寫構建腳本。這意味著Gradle確實借鑒了一些(前者)學習經驗,如果您以前使用過Groovy,Kotlin或其他JVM語言,是***不過的了。
此外,Gradle使用Maven的存儲庫格式,因此如果您之前有使用Maven的經驗,那么對于依賴關系管理將會很熟悉。您還可以將Ant構建 導入Gradle。
關于Gradle的最棒的功能是增量構建 ,因為它們節省了大量的編譯時間。根據Gradle的性能測量結果 ,它比Maven快100倍。
有部分是因為增量的原因,還有部分原因是由于Gradle的緩存構建和守護進程 。緩存重復輸出任務,守護進程把構建信息放在了內存當中。
總而言之,Gradle允許更快的運輸,并提供了許多配置可能性。
2.Git
Git 是***的DevOps工具之一,廣泛應用于整個軟件行業。它是一個分布式SCM(源代碼管理)工具,深受遠程團隊和開源貢獻者的喜愛。Git允許你跟蹤開發工作的進度。您可以保存源代碼的不同版本,并在必要時返回到以前的版本。你可以創建獨立的分支,在上線前將新特性合并到分支。
要將Git與您的DevOps工作流程集成,您需要一個在線代碼存儲服務來托管您團隊的工作內容,目前兩個***的在線代碼托管服務是GitHub和Bitbucket。GitHub更為知名,但Bitbucket為小型團隊(最多五個團隊成員)提供免費***制的私人存儲空間。使用GitHub,您只能免費訪問公共存儲空間 - 這對許多項目來說仍然是一個很好的解決方案。
GitHub和Bitbucket都有很棒的集成。例如,您可以將它們與Slack集成,以便每當有人進行新的提交時,團隊中的每個人都會收到通知。
3.Jenkins
Jenkins 是許多軟件開發團隊的***DevOps自動化工具。它是一個開源CI / CD服務器,可以在自動化交付流程的不同階段使用。Jenkins受歡迎的主要原因是其巨大的插件生態系統。目前,它提供了1000多個插件 ,集成了幾乎所有DevOps工具,從Docker到Puppet。
使用Jenkins,您可以根據自己的需要設置和自定義CI / CD流程。我在Jenkins Docs中 找到了以下示例。這只是其中一種可能性。看起來還不錯,不是嗎?
Jenkins 入門非常容易,因為它在Windows,Mac OS X和Linux上都是開箱即用的。您也可以使用Docker 輕松安裝它 。您可以通過Web界面設置和配置Jenkins服務器。如果您是初次使用的用戶,可以選擇使用一些常用插件進行安裝。但是,您也可以創建自己的自定義配置。
使用Jenkins,您可以盡快迭代和部署新代碼。它還可以做到讓您衡量流程管道中每個步驟是否成功。也有人抱怨Jenkins 用戶界面“丑陋”并且不直觀。
4、Bamboo
Bamboo是Atlassian的CI / CD服務器解決方案,具有許多與Jenkins類似的功能。兩者都是流行的DevOps工具,可以在自動化交付流程的不同階段使用。然而,Jenkins是開源的,但Bamboo得按需收費。所以,***問題應該是:如果有免費替代方案,是否值得選擇專有軟件?這就得取決于您的預算和目標了。
Bamboo有許多預先構建的功能,這些必須在Jenkins中手動設置。這也是Bamboo擁有較少插件的原因(與Jenkins的1000+相比,大約100個)。實際上,你不需要那么多的Bamboo插件,因為它基本都是開箱即用。
Bamboo與其他Atlassian產品都是無縫集成,比如Jira和Bitbucket。您還可以訪問內置的Git和Mercurial分支工作流程和測試環境。一句話概括,Bamboo可以為您節省大量的配置時間。它帶有更直觀的用戶界面,提醒工具,自動完成功能和其他便利功能。
5. Docker
Docker 是2018年的頭號容器平臺。它也被認為是最重要的DevOps工具之一。Docker在IT科技圈廣受歡迎,主要是因為它使分布式開發成為可能,并能使應用程序部署自動化。它使應用程序部署過程變得更便攜更安全。Docke應用程序也獨立于操作系統和平臺。您可以使用Docker容器而不是VirtualBox等虛擬機。
我最喜歡Docker的是你不必擔心依賴關系管理。您可以將所有依賴項打包在應用程序的容器中,并將整個事物作為獨立單元發送。然后可以在任何計算機或平臺上運行該應用程序。
Docker也與Jenkins 和Bamboo 集成。如果將其與其中一個自動化服務器一起使用,則可以進一步改善交付工作流程。此外,Docker也非常適合云計算。近年來,AWS和Google Cloud等所有主要云廠商都開始支持Docker。因此,如果您計劃進行云遷移,Docker會使這個流程簡化一些。
6. Kubernetes
今年,Kubernetes 也是熱點。它是一個容器編排平臺,將Docker化提升到了一個新的水平,它適用于Docker或其任何替代品。Kubernetes是近幾年才出現在大眾視野的; 它的***個版本于2015年問世。由幾位Google工程師創建,他們希望找到一個大規模管理容器的解決方案。使用Kubernetes,您可以將容器分組為邏輯單元。
如果您只有幾個容器,則可能不需要容器編排平臺。但是,當您達到一定程度的復雜性并需要擴展資源時,這是下一個合乎邏輯的步驟。Kubernetes允許您自動化管理數百個容器。
使用Kubernetes,您無需將容器化應用程序綁定到一臺計算機上。相反,您可以將其部署到計算機群集。Kubernetes自動化整個集群中容器的分發和調度。
Kubernetes集群由一個主節點和幾個工作節點組成。主節點實現預定義的規則,并將容器部署到工作節點。Kubernetes還會意識到某個工作節點在何時關閉并在必要時重新分配容器。
7、Puppet Enterprise
Puppet Enterprise是一個跨平臺的配置管理平臺。 它允許您以代碼的形式管理基礎架構。 由于它可以自動化管理基礎架構,因此您可以更快,更安全地交付軟件。 Puppet還為開發人員提供了一個用于小型項目的開源工具。 但是,如果您正在處理更大的基礎架構,您可能會發現Puppet Enterprise的額外功能,例如:
●實時報告
●基于角色的訪問控制
●節點管理
使用Puppet Enterprise,您可以管理多個團隊和數千個資源。 它可以自動了解基礎架構中的關系。 并依賴其中關系巧妙地處理故障。 當遇到配置失敗時,它會跳過所有相關配置。 關于Puppet值得一提的事情是它有超過5,000個模塊,并有許多流行的DevOps工具集成。
8、Ansible
Ansible是一個配置管理工具,類似于Puppet和Chef。 您可以使用它來配置基礎架構并自動部署。 與其他類似的DevOps工具相比,它的主要賣點是簡單易用。 Ansible遵循與Puppet相同的基礎設施代碼(IAC)方法。 但是,它使用超級簡單的YAML語法。 使用Ansible,因為Puppet具有其聲明式語言,所以你可以在YAML中定義任務
無Agent架構是Ansible另一個經常提到的特色。 由于沒有守護進程或Agent在后臺運行,因此Ansible是一種安全且輕量級的配置管理自動化解決方案。 與Puppet類似,Ansible也有幾個模塊。
9. Nagios
Nagios 是***的免費和開源DevOps監控工具之一。它可以監控基礎結構關系以便可以找到并修復問題。Nagios可以記錄任務,事件中斷和事件故障。您還可以借助Nagios的圖表和報告密切關注趨勢。這樣,您可以預測中斷和錯誤并檢測安全威脅。
盡管有許多用于基礎架構監控的DevOps工具,但Nagios因其豐富的插件生態系統 而脫穎而出。由于Nagios在IT圈也已存在了一段時間(自2002年以來),它周圍有一個龐大的社區。除了插件,他們還可以免費制作附加組件,教程,翻譯和其他好東西。
Nagios提供四種開源監控解決方案:
Nagios Core
Nagios XI
Nagios Log Server
Nagios Fusion
Nagios Core是一個命令行工具,具有所有基本功能。您還可以選擇附帶基于Web的GUI和監視向導的Nagios XI。
Nagios Log Server允許您搜索日志數據并設置有關潛在威脅的警報。而且,Nagios Fusion允許您同時監控多個網絡。
總的來說,Nagios為DevOps團隊提供了基礎架構監控解決方案。但是,設置Nagios并使其與您的環境兼容可能需要一段時間。
10、Raygun
Raygun是***的監控報告平臺。APM是其***產品。 Raygun的DevOps工具可幫助您診斷性能問題并將其追溯到確切的代碼,函數或API調用行。 APM工具也非常適合Raygun故障管理流程。例如,它會自動識別您的***優先級問題并自動創建問題。
Raygun APM可以幫助您充分利用其他DevOps工具,確保若有問題發生,您會一直收到有關錯誤問題的通知。由于它自動將錯誤鏈接回源代碼,因此Raygun通過為整個團隊提供監控功能來實現開發和操作。
找到***的DevOps工具,需要自己親自實驗和嘗試。設置和配置這些開源工具通常會需要花費更多時間,好在大多數商業DevOps工具都提供免費試用版,允許您免費測試和評估它們。
譯者介紹:劉勁輝 優維科技高級解決方案架構師 曾就職于阿里巴巴移動事業群,具有多年的業務運維和運維研發經驗。曾負責開發建設基于阿里游戲中心 JWS 框架的自動化運維平臺,對 DevOps 實踐落地有豐富經驗。