持續集成持續交付七大開發工具
軟件開發周期中需要一些可以幫助開發者提升速度的自動化工具。其中工具最重要的目的是促進軟件項目的持續集成與交付。通過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的圖片通過軟件交付和部署可被使用。