什么是持续集成/持续交付(CI/CD)?

基本概念

CI/CD旨在通过自动化流程提高代码质量、加快发布速度

  • CI (Continuous Integration,持续集成)
  • CD(Continuous Delivery/Deployment,持续交付/持续部署)

CI 持续集成

目标

频繁加粗样式将代码合并到主干、尽早发现错误

流程

  • 开发者提交代码到共享仓库,如GitLab/GitHub
  • 自动出发构建,编译、依赖安装
  • 运行自动化测试,单元测试、集成测试

优势

快速发现Bug、减少集成冲突、提高代码质量

CD 持续交付/部署

持续交付

手动通过CI后,自动打包成可发布的版本,如Docker镜像

人工审批后手动触发部署到生产环境

持续部署

在CI基础上,自动部署到生产环境

适用于高度自动化的云原生项目,如Netflix、GitHub

优势

快速发布、降低风险、灵活回滚

CI/CD工作流

以一个Web应用为例

  1. 代码提交➡️触发CI流水线
  2. CI阶段:
  • 安装依赖 npm install
  • 运行测试 npm test
  • 构建Docker镜像
  1. CD阶段:
  • 推动镜像到仓库,如Docker Hub
  • 自动部署到测试环境
  • 手动批准➡️部署到生产环境(持续交付)
  • 或自动部署(持续部署)

常见的CI/CD工具

GitLab CI

特点:与GitLab深度集成,较简单

部署方式:Runner基于容器/K8s

适用场景:GitLab用户、云原生项目

Jenkins

特点:支持多插件,需额外配置,如GitHub插件,较复杂

部署方式:Master/Agent架构

适用场景:复杂企业级CI/CD、多平台集成

相关推荐
.柒宇.9 小时前
CICD基础概述
ci/cd·运维开发·devops
木心术19 小时前
DevOps全流程实践:从CI/CD到自动化测试的最佳实践
运维·ci/cd·devops
我叫唧唧波10 小时前
【自动化部署】CI/CD 实战(三):让 Argo CD 接管 CD,Jenkins 镜像自动同步到集群
运维·前端·ci/cd·docker·自动化·jenkins·argocd
QC·Rex1 天前
MLOps 平台架构设计:从 0 到 1 构建企业级机器学习运维系统
ci/cd·kubernetes·自动化部署·mlops·机器学习运维·平台架构·模型监控
MESMarketing1 天前
互动分享 | 软件工具的安全合规实践
功能测试·测试工具·matlab·ci/cd·autosar
12亡灵归来341 天前
配置Jenkins实现CI/CD流水线
运维·ci/cd·jenkins
sghuter2 天前
AI赋能CI/CD:Gemini实战脚本生成
开发语言·人工智能·ci/cd·青少年编程·r语言
qq_452396232 天前
【工程实战】第九篇:持续集成 —— Jenkins 与 GitLab CI:构建无人值守的自动化流水线
ci/cd·gitlab·jenkins
Mark108594 天前
Hexo + GitHub Pages + GitHub Actions:源码私有、站点公开的 CI/CD 教程
ci/cd·github
冬奇Lab4 天前
AI Native 时代的 CI/CD:从“手工流水线”到“智能驾驶舱”的范式演进
人工智能·ci/cd