持续集成(CI)和持续交付(CD)(或CI/CD)已成为软件开发和DevOps测试不可或缺的一部分。它为开发人员提供了必要的功能,以便他们可以持续部署代码,这是因为它们在早期阶段检测错误并避免由于频繁提交源代码而导致的集成问题。市场上有如此多的CI/CD工具,因此选择适合预算和项目要求的最佳CI/CD工具变得至关重要。
1. Jenkins
Jenkins是一个基于Java的跨平台开源CI/CD工具。它提供持续集成、支持实时测试和报告。Jenkins可以通过下载.war格式的可执行文件从终端启动来安装。
Jenkins Pipeline提供了一组工具,可用于“as code”对交付的Pipeline进行建模。Jenkins使用DSL(域特定语言)实现Pipeline。它是广泛使用和最好的CI/CD工具之一,因为开源且发展历史长久。
Jenkins的显著特点:
-
适用于Windows、Linux和macOS平台;
-
免费和开源;
-
高度可扩展性;
-
它拥有蓬勃发展的插件生态系统(1500多个插件)和交流活跃的社区;
-
与流行的云平台集成,例如AWS、Google Cloud、Azure、Digital Ocean等;
-
可并行执行工作并实现复杂的CD要求;
-
.war格式的安装程序是一个独立的Java应用程序,安装即可用。
2.TeamCity
TeamCity是Java中基于服务器的CI/CD管道工具。它由JetBrains公司开发和维护,JetBrains是开发多种有用工具(如PyCharm、IntelliJ Idea等)的公司。TeamCity可以安装在Windows和Linux服务器上。
TeamCity可免费用于开源项目,并为小型团队提供与Azure DevOps和Jira Software Cloud集成的功能。
TeamCity的显著特点:
-
高度可扩展性,可通过自定义将项目的设置重复使用于子项目;
-
它可以运行并行builds;
-
TeamCity中的Pipeline是使用基于Kotlin的DSL(领域特定语言)定义的;
-
与Docker、Visual Studio Team Services、Maven、NuGet等集成;
-
与流行的云平台(如Google Cloud、AWS、VMWare vSphere等)集成;
-
它具有启用历史记录、即时查看测试进度(和历史记录)报告以及添加builds到收藏夹的功能。
3. CircleCI
CircleCI是最好的CI/CD工具之一,适用于为开源项目和大型项目实现CI/CD。CircleCI Cloud是其基于云的产品,而CircleCI Server是其内部(或自托管)解决方案。
它支持可以在Windows、Linux和macOS平台上build的语言。Pipeli很容易设置并使用专有的YAML语法。2019年,Forrester Wave将CircleCI评为云原生持续集成领域的领导者。
CircleCI的显著特点:
-
易于设置,可与流行的版本控制系统(如GitHub、Bitbucket等)一起使用;
-
它安装即用,可支持大多数流行的编程语言;
-
为了减少build时间,可以跨多个容器拆分和平衡build;
-
CircleCI中的并行测试有助于在不同的执行器之间执行测试;
-
CircleCI Server是CircleCI的内部部署产品,可以与流行的第三方工具(如GitHub Enterprise、Coveralls等)集成;
-
CircleCI Server支持广泛使用的云平台,如AWS、Google Cloud、Azure等;
-
CircleCI Orbs是可重用的代码片段,有助于自动化重复流程并加速与第三方工具的集成。



