(四)学习、实践、理解 CI/CD 与 DevOps:流水线工具 Pipeline

系列文章:

(一)学习、实践、理解 CI/CD 与 DevOps:起步

(二)学习、实践、理解 CI/CD 与 DevOps:容器化

(三)学习、实践、理解 CI/CD 与 DevOps:声明式 API,Docker Compose 容器编排

前言

在阶段五中,引入 Docker Compose,实现了容器编排,支持容器集群一键启动、一键停止。

现在终于开始引入 Jenkins、GitHub Actions、Gitee Go 等流水线工具。

流水线工具,好比计算机组成架构中的服务总线,把开发、测试、部署等环境串联起来,把源代码仓库、构建工具、测试工具、部署工具等串联起来。

流水线是实现 CI/CD 与 DevOps 的基础,是实现自动化的关键技术。

流水线

持续集成(Continuous Integration)、持续交付(Continuous Delivery)目前已成为很多技术团队提升研发效能的必经之路。

通过建设部署流水线,打通从代码开发到功能交付的整个环节,以自动化的方式完成构建、测试、集成、发布等一系列行为,最终实现向用户持续高效地交付价值。

回看阶段一至阶段五的交付过程,以及开发实践经验,可以发现非常显著的特点:

  • 阶段性明确:每个阶段的动作是明确的,比如代码提交、构建、测试、集成、部署等阶段。
  • 顺序性:有向无环图,每个阶段的动作是有顺序的,比如先构建,再测试,最后部署。
  • 重复性:每个阶段的动作都是重复性的,比如每次代码提交后,都需要进行构建、测试、集成、部署等动作。

集成和交付流程符合流水线工作方式,因此 IT 领域的流水线工具应运而生。

下面从开源/商业,独立部署/SaaS 服务,云原生等角度,介绍一些主流的流水线工具,或支持流水线的工具集。

Jenkins

简而言之,Jenkins 是领先的开源自动化服务器。它基于 Java 构建,提供了2000多个插件,几乎可以支持任何自动化任务,这样一来,开发者就能把时间和精力花在机器无法完成的事情上。

使用 Jenkins 自动化开发工作流程,专注于最重要的工作。Jenkins通常用于:

  • 构建项目
  • 运行测试,及早发现 bug 和其他问题
  • 静态代码分析
  • 部署

使用 Jenkins 执行重复性任务,节省时间并优化开发流程。


开源/商业:开源

服务方式:独立工具,自行部署

云原生支持:无

使用方式:自定义 shell 指令、Jenkinsfile 命令式编排

流行度(GitHub Stars):24.3k,🌟🌟🌟🌟🌟

活跃度/文档质量:🌟🌟🌟

优势:社区生态最广、插件最多、可自托管,几乎能对接一切工具与平台

2018年,从 Jenkins 社区独立孵化的 Jenkins X,是官方云原生发行版,完全基于 Tekton Pipelines + GitOps。

Gitee Go

Gitee Go 是 Gitee 全新推出的一款 CI/CD 工具,提供持续集成、持续交付(部署)能力,帮助企业不断提升应用交付的质量和效率。

通过构建自动化、测试自动化、部署自动化、运维自动化,完成从代码提交到应用交付的自动化。


开源/商业:商业,提供免费功能

服务方式:Gitee 仓库配套工具,SaaS

云原生支持:无

使用方式:低代码可视化流程编排、声明式 YAML 配置编排

流行度:🌟

活跃度/文档质量:🌟

优势:无需科学上网,直接在 Gitee 仓库中配置即可,符合 GitOps 规范。

GitHub Actions

实现从创意到产品的工作流程自动化。

GitHub Actions 让自动化所有软件工作流程变得轻而易举,现在还具备世界级的持续集成/持续交付(CI/CD)功能。直接从 GitHub 构建、测试和部署代码,让代码审查、分支管理和问题分类按照你想要的方式进行。


开源/商业:商业,免费使用

服务方式:GitHub 仓库配套工具,SaaS

云原生支持:无

使用方式:声明式 YAML 配置编排、丰富的官方及第三方流水线模板

流行度:🌟🌟🌟🌟🌟

活跃度/文档质量:🌟🌟🌟🌟🌟

优势:与 GitHub 原生一体,零运维、模板即开即用,丰富的流水线模板,提供静态站点托管服务 GitHub Pages。

GitLab 极狐

软件开发全生命周期的 DevOps 能力,功能包括:源代码托管、CI/CD、效能管理、敏捷项目管理、DevSecOps、云原生。


开源/商业:商业

服务方式:SaaS、自主托管

云原生支持:良好

使用方式:声明式 YAML 配置编排、丰富的流水线模板

流行度:🌟🌟🌟🌟🌟

社区活跃度/文档质量:🌟🌟🌟🌟🌟

优势:最流行的一站式 DevOps 平台,单一平台即可包揽 DevOps 全生命周期,无需拼接工具链

Tekton

Tekton 是构建 CI/CD 系统的云原生解决方案。它由提供构建模块的 Tekton Pipelines 以及支持组件(如 Tekton CLI 和 Tekton Catalog)组成,这些组件使 Tekton 成为一个完整的生态系统。Tekton 是 CD 基金会(Linux基金会的一个项目)的一部分。


开源/商业:开源

服务方式:自主托管

云原生支持:优秀

使用方式:声明式 YAML 配置编排、基础设施即代码 IaC、原生 Kubernetes 支持

流行度:🌟🌟🌟🌟

社区活跃度/文档质量:🌟🌟🌟🌟🌟

优势:完全遵循云原生流水线即代码理念,用 Kubernetes CRD 声明式定义 CI 任务,像管理 Pod 一样随仓库版本化、可移植、可组合地构建制品。

Argo CD

Argo CD 是一款用于 Kubernetes 的声明式 GitOps 持续交付工具。

应用程序的定义、配置和环境应该是声明式的,并进行版本控制。应用程序的部署和生命周期管理应该是自动化的、可审计的且易于理解。


开源/商业:开源

服务方式:自主托管

云原生支持:优秀

使用方式:声明式 YAML 配置编排、基础设施即代码 IaC、原生 Kubernetes 支持

流行度:🌟🌟🌟🌟

社区活跃度/文档质量:🌟🌟🌟🌟🌟

优势:完全遵循 GitOps 理念,用声明式 YAML 把交付流水线纳入版本仓库,让每一次代码提交都像管理源代码一样自动、可审计、可回滚地实现持续部署。

阿里云效 codeup

阿里云企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造"双敏"组织,实现多倍效能提升。


开源/商业:商业

服务方式:SaaS

云原生支持:良好

使用方式:声明式 YAML 配置编排、丰富的流水线模板

流行度:🌟🌟

社区活跃度/文档质量:🌟🌟🌟🌟

优势:一站式研发协同平台,可平替 GitLab,开通阿里云账户即可免费使用,背后依靠阿里云生态。

腾讯云 CNB

云原生构建(Cloud Native Build,CNB)提供代码托管、云原生构建、云原生开发、AI 代码助手和制品库等功能。基于 Docker 生态,对环境、缓存、插件进行抽象,通过声明式的语法,帮助开发者以更酷的方式构建软件。


开源/商业:商业

服务方式:SaaS,企业级自主托管

云原生支持:良好

使用方式:声明式 YAML 配置编排、基于 Docker 生态

流行度:🌟

社区活跃度/文档质量:🌟🌟

优势:开箱即用的 SaaS 方案,微信扫码即可注册使用,与 GitHub 生态功能类似但国内网络直连,提供代码托管服务,侧重于 CI。

总结

平台 / 技术 一句话定位 部署形态 推荐场景
Jenkins 插件最多、自托管"瑞士军刀" 自托管 传统架构、需深度定制
Gitee Go Gitee 官方 SaaS CI/CD,国内网络友好 SaaS 国内网络生态
GitHub Actions GitHub 原生 CI/CD,模板即开即用 SaaS 个人/开源项目首选
极狐 GitLab 一站式 DevOps,可选 SaaS/自管 SaaS / 自托管 中小团队 All-in-One
Tekton K8s 原生流水线即代码 自托管 K8s 深度用户
Argo CD K8s 声明式 GitOps CD 工具 自托管 云原生 GitOps
阿里云效 阿里云一站式研发协同,注册即用 SaaS 阿里云生态
腾讯云 CNB 腾讯云 DevOps SaaS,微信扫码即开 SaaS 微信、腾讯云生态

Jenkins 作为入门产品可以学习,但界面复杂,使用体验较差,即便提供了 Blue Ocean UI 和 Jenkins X 分支。除非考虑兼容性以及团队技术栈基础,否则不推荐使用。

GitLab 和 阿里云效产品功能相似,一站式研发协同平台,推荐小型开发团队推荐使用,个人推荐阿里云效,注册即用。产品生态丰富的另一面是功能复杂,上手困难,侧重于开发协同,不推荐个人开发者(一人公司)使用。

GitHub Actions、Gitee Go 和 腾讯 CNB 产品功能相似,主要提供代码托管 + CI 服务,GitHub Actions 功能强大、生态完善但需要科学上网,后两者在产品完善上较差,如果支持科学上网,推荐使用 GitHub 生态。

Tekton、Argo CD 是云原生时代产品,设计之初就与 Kubernetes 产生关联,拥有良好的设计理念如 IaC,云原生支持优秀。然而,Kubernetes 本身技术门槛较高,且大多数中小企业用不到分布式容器编排,往往数个容器足够,有点"杀鸡用牛刀"的意味。推荐技术爱好者和中大型企业技术转型采用。

总的来说,个人开发者关注 GitHub Actions,中小型企业选择阿里云效或GitLab,极客或中大型企业技术转型探索和尝试Tekton、Argo CD。

延伸阅读关键词

GitOps、基础设施即代码 IaC、Runner机制、云原生 CI 最佳实践、云原生 CD 最佳实践

参考

  1. Jenkins,www.jenkins.io/
  2. Gitee Go,www.gitee.com/
  3. GitHub Actions,docs.github.com/en/actions
  4. 极狐 GitLab,www.gitee.com/
  5. Tekton,tekton.dev/
  6. Argo CD,argo-cd.readthedocs.io/en/stable/
  7. 阿里云效,www.aliyun.com/product/eff...
  8. 腾讯云 CNB,cloud.tencent.com/product/cnb
相关推荐
czhc11400756639 小时前
Linux 830 shell:expect,ss -ant ,while IFS=read -r line,
linux·运维·r语言
滴滴滴嘟嘟嘟.10 小时前
嵌入式Linux驱动开发:蜂鸣器驱动
linux·运维·驱动开发
hit56实验室10 小时前
腾讯云的运维笔记——从yum的安装与更新源开始
运维·笔记·腾讯云
atomLg10 小时前
k8s故障排查总结
云原生·容器·kubernetes
小阳睡不醒10 小时前
小白成长之路-k8s原理(二)
云原生·容器·kubernetes
成都极云科技11 小时前
裸金属服务器与虚拟机、物理机的核心差异是什么?
运维·服务器·数据库
草梅友仁12 小时前
草梅 Auth 1.5.0 发布与自动化发包经验 | 2025 年第 35 周草梅周报
github·自动化运维·eslint
我命由我1234512 小时前
Word - Word 查找文本中的特定内容
运维·经验分享·笔记·word·运维开发·文档·文本
IDC02_FEIYA12 小时前
服务器托管多少钱一年?服务器托管收费标准
运维·服务器
Sadsvit13 小时前
Ansible 自动化运维工具:介绍与完整部署(RHEL 9)
linux·运维·centos·自动化·ansible