都 2021 年了,你还在用 Jenkins?赶快看看这些替代方案吧
![都2021年了,你还在用Jenkins?赶快看看这些替代方案吧](https://static001.geekbang.org/infoq/44/44703b7a9262b8d2475f4f7881de46a1.png)
Jenkins 是目前最常用的持续集成工具,拥有近 50% 的市场份额,它还是很多技术团队的第一个使用的自动化工具。但是随着自动化领域的持续发展,Jenkins 逐渐暴露出了一些问题,例如缺乏功能、维护问题、依赖关系和扩展问题等等。
这些问题促使我们寻找替代方法。这就是为什么在本文中,我们提供了用于持续集成的最常见的 Jenkins 替代品列表。
1. BuildMaster
![](https://static001.geekbang.org/infoq/66/66b32697bbdf3874bcf26707d782a9d8.png)
Buildmasters 是由 Inedo 研发的 Jenkins 替代品,它可以使开发者把软件发布到任何环境。该工具为不同的平台提供持续集成功能,使组织可以创建自己的软件发布管理平台。团队可以处理自己的应用程序,并独立部署到其环境中。
不仅如此,它还可以防止发布未经测试的软件。用户对它的简单性感到非常满意。
https://inedo.com/buildmaster/download
2. Microtica
![](https://static001.geekbang.org/infoq/a6/a62b10811e20b9f7d8431a9ec9862570.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
Microtica 是一个 DevOps 自动化工具,涵盖了整个软件交付过程,从构建云基础架构到使用 Kubernetes 向云交付应用程序和服务。Microtica 的即用型( ready-to-use )组件为用户提供了可重复使用的代码段,并且可以帮助你在几分钟内创建基础结构。
借助微服务生成器,开发人员可以自动创建微服务。借助集成的 Kubernetes 仪表板,他们只需单击几下即可创建可扩展的应用程序。
Microtica 的流水线定义了每个组件和微服务的工作流程。用户可以随时自动或手动触发它们,以大致了解其构建过程。他们可以执行所有操作,而无需离开 Microtica Web 门户,每次更改都会有 Slack 通知。
最后,Microtica 允许开发人员自动化设置其睡眠周期,从而降低 AWS 成本。一旦他们激活了节能模式( saving mode ),Microtica 就会自动运行并防止过度支出。而且,所有节省都可以在节省成本的仪表板上找到。
3. GitLab
![](https://static001.geekbang.org/infoq/9a/9a058d0fbab83f2156afab146ede04db.png)
GitLab 是基于云的 CI 平台,可让开发团队更有效地处理其多样化的工具。它使组织可以通过集中式的版本控制系统安全的计划,构建和管理代码。此外,GitLab 使用户能够使用 Docker 和 Kubernetes 来处理组件,处理容器以及打包应用程序和依赖项。
GitLab 易于集成。但是,它有时可能会有一些烦人的错误和局限性,以及在实现完全自动化方面缺少一些功能。
4. CircleCI
![](https://static001.geekbang.org/infoq/5d/5dd8c6519b08cffa7191f5cc6d0d5e1e.png)
Circle CI 也是 Jenkins 替代产品之一,可在任何环境(例如 Python API 服务器或 Docker 集群)中运行。Circle CI 工具消除了漏洞并增强了应用程序的一致性。它支持多种语言,例如 C ++,NET,JavaScript,PHP,Ruby 和 Python。此外,当触发新的构建时,可以自动取消排队和正在运行的构建。它可以与 GitHub,GitHub Enterprise 和 Bitbucket 集成。
根据 TrustRadius 上的用户称,CircleCI 的最大优势是自动化构建,但是有时流水线作业可能会花费很长时间。
5. Bamboo
![](https://static001.geekbang.org/infoq/68/687b8fc1a5adff94999895c1ed6f7acb.png)
Atlassian 的 Bamboo 是一款持续集成的服务器,可自动在一个地方创建,监视和发布。它可以轻松地与 JIRA 应用程序和 Bitbucket 集成。而且,Bamboo 与 Docker,Git,SVN 和 Amazon S3 存储集成。
Bamboo 根据在存储库中检测到的更改,它可以触发 Bitbucket 的构建并推送通知。它既可以托管,也可以本地部署。
使用者说 Bamboo 的构建过程的可见性很好,但是一些概念和集成尚不清楚。
https://www.atlassian.com/software/bamboo
6. TravisCI
![](https://static001.geekbang.org/infoq/d6/d6d57317939150f61df167da601bf67a.png)
TravisCI 是一项持续集成托管服务,开发人员可以使用它来开发和验证 GitHub 和 Bitbucket 托管的应用程序。它可以测试所有请求,以确保不会发布未经测试的代码。你只需登录 GitHub,即可设置你的项目,包括数据库。
TravisCI 非常适合一个小型项目,并且构建速度很快。但是,当你有一个较大的项目需要照顾依赖关系以及构建的性能时,可能会遇到一些问题。
7. Semaphore
![](https://static001.geekbang.org/infoq/e6/e6b0b5598fe90d4d71dfdcb64935c6b0.png)
Semaphore 是 Jenkins 替代产品之一,支持 GitHub,Kubernetes,iOS,Docker,Kubernetes 的整个 CI/CD 流程,并且预先安装了 100 多种工具。
Semaphore 可以使任何持续交付流水线自动化,支持可自定义的阶段,还可以并行执行,管理三方依赖等。
Semaphore 构建非常快,平台也易于设置。但是,用户说 UI 有时会令人困惑,并且持续部署的功能有限。
https://semaphoreci.com/product
8. Buddy
![](https://static001.geekbang.org/infoq/da/daa64a63e19d62c858cce5bc47e08e9a.png)
Buddy 是一个 CI/CD 平台,可通过简单的 UI/UX 减少配置和维护 Jenkins 的工作,从而使构建和部署应用程序变得非常简单。
你可以通过具有 YAML 导出功能的 GUI,在 15 分钟内执行配置。它能够完美地支持 Docker 和 Kubernetes,可在云和本地环境中使用。
Buddy 的设置非常简单,但是其费用太高了。
9. Drone.io
![](https://static001.geekbang.org/infoq/db/db862c299fdd67e02bfacca256a162a8.png)
Drone.io 是一个 CD 平台,使用简单的 YAML 配置文件和 docker-compose 在 Docker 容器中创建和执行流水线。Drone.io 可以在单独的 Docker 容器中执行每个流水线步骤。
Drone.io 是 Jenkins 替代产品之一,易于安装,是企业的理想解决方案,但它缺乏某些功能,需要进一步定制开发。
10. GoCD
![](https://static001.geekbang.org/infoq/a9/a98adef8f19227ce68f44d59c5640a32.png)
GoCD 是开源的持续集成服务器。你可以使用它来可视化动态工作流程。此 CI 工具使用优雅的设计来构建 CD 流水线。
GoCD 支持并行和顺序执行,并可以随时部署任何版本。它拥有一个积极支持的社区。
GoCD 目前不能够在多个服务器上扩缩容,但是它的优点之一是你可以自定义自己的流程。
11. TeamCity
![](https://static001.geekbang.org/infoq/9d/9d7c084df302c2b257b71a3677597e3f.png)
TeamCity 是 JetBrains 的 CI/CD 工具。它允许用户在提交代码之前构建,监视和运行自动化测试,从而维护代码库的干净。
TeamCity 提供了全面的 VCS 集成,即使没有任何内部版本运行,也可以始终保持 CI 服务器正常运行。它可以与 Amazon EC2,Microsoft Azure 和 VMware vSphere 集成。
TeamCity 是一个现代,健壮和透明的解决方案,为你的开发人员提供了友好的流水线环境。但是,你需要注意服务器的配置。
https://www.jetbrains.com/teamcity/
12. Buildkite
![](https://static001.geekbang.org/infoq/3c/3c1ba511cfc649e7f47e94b7319154c8.png)
Buildkite 是一个开源平台,你可以在其中运行 CI 流水线。它提供了代码控制集成,聊天功能。你可以将其构建为代码系统,从而可以通过其 Web 平台监视和控制所有流水线。
但是,Buildkite 平台缺少一些 DevOps 流程,例如源代码管理和安全测试。
13. Zuul
![](https://static001.geekbang.org/infoq/4d/4d088358d0fbf015004e990fb72013d8.png)
Zuul 是一个开源 CI 工具,主要解决了 Jenkins 关于 CI 测试的问题。Zuul 和 Jenkins 的主要区别在于,Zuul 可以跨多个存储库测试代码。除此之外,Zuul 的执行速度也很快。
近年来,Zuul 已成为自动合并,构建和测试对项目所做的任何新更改的工具。对于企业级组织来说,这很有必要。
结论
Jenkins 是许多开发团队仍在使用的工具。但是,它不再是唯一的 CI 工具。不断寻求改善你的工作方式,意味着要使用多种方法,这些方法将帮助你更轻松,更快,更一致地完成工作。在使用传统方式时,不要忽视创新。
评论