你好,我是石雪峰。今天是期末总结,我们来聊一聊,在云时代,如何选择一款合适的流水线工具。
在过去的几年里,我一直专注于软件持续交付的工程实践领域。我发现,越来越多的公司(无论规模大小)开始重视软件持续交付能力的建设了,基本上每家公司都有自己的流水线平台。
以前提到 CI/CD 工具,基本上就默认是 Jenkins,也没什么其他太好的选项。但是最近两年,随着云容器技术的快速发展,在 CI/CD 流水线领域,新工具和解决方案出现了爆发式的增长。比如不甘寂寞的 GitLab CI、轻量级的容器化解决方案 Drone。最近一段时间,GitHub 的 Actions 也火了一把。可见,作为软件交付主路径上的核心工具,流水线是每一家企业都不愿意错过的领域。
对于行业发展来说,这当然是好事情。老牌工具 Jenkins 自己都开始反省:“在云容器时代,是不是过于保守?十几年的老架构是否已经难以支撑云时代的快速发展了?”于是他们就另辟蹊径,孵化出了 Jenkins X 项目。
但是,对于用户来说,选择工具时就很为难:“这些工具看起来大同小异,要解决的也是类似的问题,到底应该选择哪个呢?”
今天,我就来给你梳理一下流行的 CI/CD 工具,并给你提供一些选择建议。我挑选了 5 个工具,分为 3 组介绍,分别是 Jenkins 系的 Jenkins 和 Jenkins X、版本控制系统系的 GitLab CI 和 GitHub Actions,以及新兴的、正在快速普及的云原生解决方案 Drone。我会从 5 个方面入手,对它们进行对比和介绍,包括工具的易用性、流水线设计、插件生态、扩展性配置以及适用场景。