持續整合持續交付七大開發工具
軟體開發週期中需要一些可以幫助開發者提升速度的自動化工具。其中工具最重要的目的是促進軟體專案的持續整合與交付。通過CI/CD工具,開發團隊可以保持軟體更新並將其迅速的投入實踐中。
Jenkins是最著名的CI/CD系統工具,且能迅速的成為開發引擎,管理開發方面。Jenkins為外掛開發提供便利,為擴充套件版本控制系統提供功能且為IBM提供支援。 由Sun Microsystems分離出來的Hudson專案首次推出Jenkins,其最新版本為2,提高可用性與安全性。
但是當涉及持續整合與持續交付時,Jenkins並不是唯一的選擇。 CircleCI,、GitLab和 JetBrains 等公司也為開發者提供可用的CI/CD工具。
Atlassian Bamboo
Atlassian Bamboo提供豐富的功能,從構建與部署Docker Container在Amazon Web Services執行應用程式。專門的代理可被用於熱修復和關鍵構建。可擴充套件性一直被視為Jenkins的眼中釘,在這裡,Appfire的CEO Randall Ward,Atlassian商業合作伙伴提供附件元件和服務,提高Bamboo優勢。
Atlassian確實提出了可擴充套件性,同時Jenkins使用者曾發現Jenkins工具有“主要效能障礙”。Bamboo通過輪詢代理和擴充套件代理功能。Appfire使用Bamboo作為瑞士軍刀,與第三方附加元件整合測試,以及部署程式碼。
Bamboo功能程式碼顯而易見,確保使用者從之前最新的部署中檢視完整的程式碼更改。它整合其他的Atlassian產品,包括Bitbucket Git程式碼管理解決方案、Jira專案管理解決方案和HipChat團隊聊天應用程式。
CircleCI
CircleCI也強調了擴充套件性,除了它能測試一切,對移動應用程式進行Jasmin單元測試。CircleCI幫助開發者帶來Docker檔案到產品中。
CircleCI提供了一個編排層和一個工作流工具,可自動化程式碼更改且將程式碼推到資料中心。始於2011年,CircleCI開始作為多組織Saas選擇。它是Jenkins的替代,使用者無須管理自己的伺服器,Ruby、Python和AJAX應用程式是它的強項。它現在可以在防火牆外部署,與Jenkins相反,它是開源的且是一個企業解決方案。CircleCI可擴充套件超出Jenkins所能處理的,其配置是在程式碼中編寫的而不是在伺服器中完成的。
Eclipse Hudson
Jenkins的前身,在Oracle移交專案的五年前Hudson是Eclipse Foundation管理的。Oracle繼承了Hudson當其在2010年收購了Sun Microsystems,但Jenkins開發者並未在Oracle專案方向上取得一致。最新的更新是在2月,Hudson是用Java編寫且執行在servlet容器上如Apache Tomcat。它可以使用版本控制工具如Git和Subversion。
“在Hudson團隊中我們致力於加強Hudson在一個已開始的基礎上,重點建立Hudson一個合適的平臺為持續交付以及持續整合,“Eclipse的一位代表說。”因此,您將看到工具的新功能,特別涉及大型企業在規模和複雜的構建管道使用需求Hudson。”
根據Eclipse的一個案例研究顯示,Hudson使用者Cleo提供了業務整合軟體和服務,評估Jenkins代替Hudson因為Jenkins維護大多數Hudson外掛。“我們放棄了這個想法後,Jenkins的核心功能是比Hudson的更加不可靠,”Cleo釋出工程師Stuart Lorber表示。
GitLab CI
在可用的SaaS或防火牆外,開源GitLab CI可以在任何平臺上執行且支援語言,包括Unix、Windows,OS x。使用者可以自動向上和向下擴充套件虛擬機器進行即時處理和最小化。其他功能包括多語言支援、實時記錄、每階段管道定義多個作業和Docker支援,用於測試和構建Docker影象。另外可擴充套件性也是一個優勢。
GitLab CI是GitLab code-hosting平臺的一部分,旨在為持續整合提供簡單的設定。設定CI曾經是乏味的,我們想讓它非常簡單。GitLab CI並不需要大量的管理,測試被執行在GitLab Runner中,用Go編寫且提供多平臺、多語言功能。
因為GitLab CI與GitLab整合,使用者不需要建立新的專案。使用者新增一個檔案來描述你想要如何測試庫。
JetBrains TeamCity
JetBrains TeamCity CI/CD伺服器整合工具如Apache Maven建立管理和JetBrain自己的YouTrack問題追蹤工具。我們提供完整的體驗與內建的功能外掛。
TeamCity 不是開源的,有一個Web介面和管理功能。
該平臺有IDE外掛適用於Eclipse、Microsoft Visual Studio、和 JetBrains IntelliJ。還提供動態測試報告。TeamCity是一個產品且已存在10年。由JetBrains衍生出並進化為很成熟的產品。
ThoughtWorks GoCD
ThoughtWorks GoCD是一個開源的持續交付系統,它提供了一個“材料清單”部署。代理網格同時通過管道和版本提供並行處理,模板允許重用配置管道。它支援CD,開箱即用,無須安裝其他的外掛。
GoCD與Jenkins不同之處在於它是部署管道以及簡化持續交付,GoCD可被安裝或建立在雲上。
ThoughtWorks Snap
ThoughtWorks Snap提供基於雲的持續整合和交付的功能。Snap在雲端計算中完全是人來操作的,它是面向使用者“無須任何基礎設施”。託管部署可以被設定在雲平臺中,包括GitHub、Amzaon Web Services、DigitalOcean和Heroku。合併請求被測試以確保其完全合併。
Snap在GitHub上是免費使用公共儲存,其中有一個負載使用私有儲存。近期,Docker支援增加到Snap,Docker的圖片通過軟體交付和部署可被使用。