Jenkins 是目前最經常使用的持續集成工具,擁有近 50\% 的市場份額,它仍是不少技術團隊的第一個使用的自動化工具。可是隨着自動化領域的持續發展,Jenkins 逐漸暴露出了一些問題,例如缺少功能、維護問題、依賴關係和擴展問題等等。git
本文將爲你們介紹幾個持續集成中經常使用的 Jenkins 替代方案。數據庫
項目地址:https://inedo.com/buildmasterInedo 的 BuildMaster 是 Jenkins 替代方案之一,開發人員可以用它將軟件發佈到各類環境,爲各類平臺提供全面的持續集成能力,使團隊有能力建立私有的自助發佈管理平臺,單獨處理本身的應用程序並私有部署。更重要的是,避免自動發佈未經測試的軟件。由於無需精通流水線便可使用,因此用戶對它的簡潔性都很是滿意。安全
項目地址:https://microtica.com/Microtica 是 DevOps 自動化工具,從建立雲基礎設施到使用 Kubernetes 交付應用程序和服務,覆蓋了整個軟件交付過程。Microtica 的開箱即用組件爲用戶提供可重用的代碼片斷,無需額外編碼便可幫你在幾分鐘內搭建起底層架構。經過微服務生成器,開發人員能夠自動化地建立微服務。經過已集成的預上線 Kubernetes 和本地 Kubernetes 儀表板,只要點一點鼠標就能建立出可伸縮的應用程序。Microtica 流水線定義每一個組件和微服務的工做流。用戶能夠隨時自動或手動觸發它們,獲取整個構建的概覽。用戶能夠在 Microtica 網站內執行全部的操做,每次變動都有 Slack 通知。最後一點,Microtica 容許開發人員設置自動化的休眠週期,下降 AWS 成本。一旦啓動節約模式,Microtica 會自動運行,防止過分消費。並且,節省了多少錢還可在成本儀表板中看到。服務器
項目地址:https://about.gitlab.com/GitLab 是在線 CI 平臺,開發團隊能夠有效地使用各類開發工具,更快、更安全。經過集中統一的版本控制系統進行規劃、構建和管理代碼。此外,GitLab 使用戶可使用 Docker 和 Kubernetes 來處理構建輸出、容器、應用打包和依賴項。有人表示 GitLab 很容易集成。可是,它有時會有一些使人討厭的 bug 和限制,也缺乏一些徹底自動化的特性。架構
項目地址:https://circleci.com/CircleCI 是一種可伸縮的 Jenkins 替代方案,它能夠在任何環境(如 Python 接口服務或 Docker 集羣)中運行。它消除了不穩定性並加強了應用程序的一致性。它支持多種語言,好比 C++、.NET、JavaScript、PHP、Ruby 和 Python。當最近的構建觸發後,可自動取消隊列中以及正在構建的任務。它能夠與 GitHub、GitHub 企業版和 Bitbucket 集成。TrustRadius 用戶說,自動構建是 CircleCI 的最大優點,但有時候任務太耗時。ide
項目地址:https://www.atlassian.com/software/bambooAtlassian 的 Bamboo 是持續集成服務,能夠自動從一個地方建立、監聽和發佈應用。它與 JIRA 應用程序和 Bitbucket 集成很方便。此外,Bamboo 集成了 Docker、Git、SVN 和 Amazon S3 存儲。基於對倉庫中變動的檢測,可觸發構建並推送來自 Bitbucket 的通知。它既可託管,也可在本地使用。G2 用戶 說,Bamboo 構建過程的可視化很棒,可是一些術語和集成還不太容易理解。微服務
項目地址:https://travis-ci.org/TravisCI 是持續集成託管服務,開發人員可使用它來開發和驗證 GitHub 和 Bitbucket 託管的應用程序。它能夠測試全部 pull 請求,以確保不會發布出去未測試過的代碼。用戶能夠登陸 GitHub 來建立項目,包括配置快速激活的預安裝數據庫和資源。有評論說,TravisCI 很是適合想要快速開始構建的小項目。然而,在乎構建的依賴關係、性能和可靠性的大項目,可能會遇到一些問題。工具
項目地址:https://semaphoreci.com/productSemaphore 是 Jenkins 替代方案之一,它覆蓋整個 CI/CD 過程,支持 GitHub、Kubernetes、iOS、Docker,並預裝了 100 多個工具。它能夠自動化任何持續交付流水線,並提供自定義步驟、並行執行、依賴管理等。有人表示,Semaphore 構建很是快速,並且操做簡單。然而,有用戶表示,界面有時會使人困惑,並且部署流水線的方法有限。gitlab
項目地址:https://buddy.works/Buddy 是 CI/CD 平臺,它經過簡單的 UI/UX 來減小配置和維護 Jenkins 的工做量,這使得建立、評估和部署應用程序變得很是簡單。您能夠在 15 分鐘內經過具備即時 YAML 導出功能的圖形化界面完成配置。它能夠在雲端和本地使用,並提供完整的 Docker 和 Kubernetes 支持。有用戶反饋,Buddy 很容易操做,可是價格太貴。性能
項目地址:https://drone.io/Drone.io 是自助 CD 平臺,它使用簡單的 YAML 配置文件和 Dockercompose 的超集在 Docker 容器中建立和執行流水線。運行時會自動下載獨立的 Docker,它執行容器中的每一個流水線步驟。Drone.io 有 Docker 鏡像,能夠從 Dockerhub 下載。用戶反饋,Drone.io 是 Jenkins 替代品之一,易於操做,是很好的企業解決方案,可是缺乏一些特性,須要進一步定製。
項目地址:https://www.gocd.org/GoCD 是 ThoughtWorks 的持續集成開源服務。您可使用它來簡化動態工做流的模擬和可視化。它提供持續交付和優雅的設計來構建 CD 流水線,支持並行和順序執行,能夠隨時部署任何版本,有活躍的支持社區。用戶反饋,GoCD 與跨服務器擴展不兼容,但優勢是能夠自定義流程。
項目地址:https://www.jetbrains.com/teamcity/TeamCity 是 JetBrains 的 CI/CD 工具。它容許用戶在代碼提交以前構建、監視和執行自動化測試,從而維護乾淨的代碼庫。它提供了全面的 VCS 集成,使 CI 服務器始終保持正常運行,即便沒有任何構建。它能夠與 Amazon EC二、Microsoft Azure 和 VMware vSphere 集成。用戶反饋,TeamCity 是現代化的、健壯的和開放的解決方案,爲流水線提供開發人員友好的環境,可是須要仔細對待服務配置。
項目地址:https://buildkite.com/Buildkite 是開源平臺,能夠在上面運行 CI 流水線。它提供了源碼控制、聊天支持,而且不須要訪問源碼。你能夠將基礎設施做爲代碼系統來進行調度,從而使你能夠經過他們的網頁平臺監視和控制全部流水線。然而,該平臺缺乏一些 DevOps 流程,好比源碼管理和安全測試。
項目地址:https://zuul-ci.org/Zuul 是開源 CI 工具,主要解決 Jenkins 在 CI 測試中的問題,提供以最快的速度測試序列化的將來狀態的能力。主要差別是,它能夠測試多個倉庫的代碼,以確保若是某個變動破壞當前項目或其餘項目,則不讓該變動傳遞到生產環境中,稱爲 co-gating。多年來,Zuul 已經成爲自動合併、構建和測試項目變動的工具。對於企業用戶來講,它是構建大量必須彼此同步工做的項目的理想選擇。
不少開發團隊仍在使用 Jenkins,然而它再也不是惟一的 CI 工具。不斷改進工做方式,會有多種方法讓你更輕鬆、更快、更一致地完成工做。固守傳統或忽視創新,將失去競爭優點。
原文連接:https://dzone.com/articles/13-jenkins-alternatives-for-continuous-integration
做者 | Marija Naumovska
策劃 | 田曉旭
文章轉自:InfoQ