Jenkins,再见!

Jenkins 是一个广泛用于持续集成和持续交付(CI/CD)的开源工具,可以运行在多个操作系统上,插件生态系统非常丰富,有大量的文档、教程和社区资源。

我们不得不肯定Jenkins的优点。但为什么对它说再见呢,相信使用过Jenkins的人员都有一定体会。

为什么不用Jenkins

  1. 对于初学者来说,Jenkins 的配置可能有一定的学习曲线,配置太复杂了。
  2. Jenkins 本身需要大量的服务器资源,对于个人开发者或者微小型公司来说,原本服务器资源就比较少,部署一个Jenkins就占了大部分服务器资源。
  3. 尽管 Jenkins 非常灵活,有很强大的插件,但某些高级功能可能需要额外的插件或自定义脚本来实现,这些插件和配置又额外增添了巨大的学习成本。

Jenkins的替代品

前段时间实在是受不了这个Jenkins了,装完Jenkins,还需要git,maven,node,还得把这些东西配到Jenkins上;

都有这东西了,我直接写个脚本不就行了,为什么还用个Jenkins。。。

于是开始寻找Jenkins的替代品,要求:可触发自动构建,占用资源少,配置简单。

在网上寻找并试验了好多个产品。

1、GitLab

GitLab 是一个集成式的DevOps平台,提供代码托管、持续集成/持续交付 (CI/CD)、问题跟踪、代码审查、容器注册表和更多功能的综合解决方案。

  1. 一体化解决方案: GitLab 提供了一个综合的DevOps平台,集成了代码仓库、CI/CD、问题跟踪等功能,这意味着您可以在一个平台上管理整个开发和部署流程,减少了工具集成的复杂性。
  2. 强大的CI/CD功能: GitLab CI/CD 提供了强大的构建和部署功能,支持自动化测试、持续交付和部署到不同环境的流程。
  3. 易于使用: GitLab CI/CD 使用YAML文件来定义构建流程,这使得配置非常直观和可维护。同时,它还提供了可视化的构建流程编辑工具。
  4. 持续集成: GitLab CI/CD支持持续集成,每次代码提交时都可以触发构建和测试,确保代码的稳定性和质量。
  5. 自动化: 可以设置自动化的CI/CD流程,减少了手动干预的需求,提高了交付的速度和可靠性。
  6. 集成容器注册表: GitLab集成了Docker容器注册表,使得容器化应用程序的构建和部署更加便捷。
  7. 社区支持: GitLab 有一个庞大的用户社区,提供丰富的文档、插件和扩展,有助于解决问题和定制CI/CD流程。

如果你要求将代码部署到私有的git,这个简直完美,还自带CI/CD。

但是很遗憾,我对这点并不看重,而且Git Lab也需要进行简单的配置,并且占用资源较大。

2、TeamCity

TeamCity 是一种由 JetBrains 开发的持续集成和持续交付 (CI/CD) 工具,用于自动化构建、测试和部署软件项目。

  1. 易于设置: TeamCity 提供了一个直观的用户界面,使得配置和设置持续集成流程相对容易。它还支持使用 Kotlin DSL 来定义构建配置,从而使其可维护性更高。
  2. 强大的构建和部署功能: TeamCity 支持各种构建和部署工作流,包括编译、测试、打包、部署到不同环境和容器化应用程序。
  3. 多环境支持: TeamCity 允许您轻松管理多个环境,从开发到预生产和生产环境。
  4. 自动触发: TeamCity 可以自动触发构建和部署过程,例如,每次代码提交或分支合并时都可以自动开始构建和测试。
  5. 广泛的集成选项: TeamCity 支持与各种版本控制系统(如Git、Subversion等)和外部工具(例如JIRA、Docker等)的集成。
  6. 内置报告和分析: TeamCity 提供详细的构建报告、分析和历史记录,帮助团队更好地了解项目的状态和性能。
  7. 可扩展性: TeamCity 具有丰富的插件生态系统,可以通过插件来扩展其功能,以满足特定需求。

作为 JetBrains 家族的产品,而且还免费使用。好多人都比较推荐这款工具作为自动化构建工具。

尝试了一下,可能没了解过这个工具的原因,还是感觉配置起来好复杂…

3、Buddy

Buddy 是一个CI/CD(持续集成/持续交付)工具,旨在简化和自动化软件开发和交付流程。

  1. 易用性: Buddy以用户友好的界面提供CI/CD工作流程的可视化配置,无需编写复杂的配置文件。这使得初学者和有经验的开发人员都能轻松使用它。
  2. 快速设置: Buddy提供了预定义的CI/CD模板,可用于常见的开发框架和语言,加速了工作流程的设置。
  3. 自动化: Buddy支持持续集成和自动化部署,确保代码更改的快速测试、构建和交付。
  4. 多环境支持: Buddy允许您轻松地设置和管理多个环境,例如开发、测试、预生产和生产环境。
  5. 多云支持: Buddy支持在各种云平台(如AWS、Azure、Google Cloud等)上进行部署,以满足不同项目的需求。
  6. 插件和集成: Buddy提供了丰富的插件和集成选项,可以与常用的工具和服务(如GitHub、GitLab、Docker、Slack等)集成,以实现更多功能和通知。
  7. 可扩展性: 您可以编写自定义脚本和命令来满足特定需求,增加了工作流程的灵活性。

相比于Team City,我反倒觉得这个工具更容易使用,构建快,占用资源也不是很多,我认为算是很好的Jenkins替代品了。推荐使用。

4、云效流水线

在我准备使用Buddy做为CI/CD工具的时候,我发现了这个阿里的云效流水线产品。

云效流水线 Flow 是一款企业级、自动化的持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线的CI/CD全流程,帮助企业高质量、高效率的交付业务。

这个产品太适合我了,虽然它属于收费应用,但是其免费额度 1800 分钟/月,完全足够使用了。而且,配置简单、不需要占用服务器资源、不需要安装和配置各种环境

1、新建流水线

2、编排流水线

3、运行流水线

4、查看流水线运行结果

在线配置,流程清晰,不占用服务器资源,适合个人开发者和微小型公司使用。推荐使用。

小结

总体来说,GitLab是一个功能齐全、易于使用且综合的DevOps平台,适合需要私有部署git的团队和组织使用。

TeamCity 是一款强大而灵活的持续集成工具,适合中大型项目和团队。

Buddy是一个易于使用和快速设置的CI/CD工具,特别适合初学者和中小型团队。

云效流水线配置简单,不占用服务器资源,适合个人开发者和中小型团队。

Java Geek Tech wechat
欢迎订阅 Java 技术指北,这里分享关于 Java 的一切。