CI/CD 全面介绍

CI/CD = 持续集成(CI)+ 持续交付/部署(CD),是DevOps核心实践,用自动化流水线把代码提交→构建→测试→部署全流程打通,大幅提升交付速度与质量。

一、核心概念(一句话看懂)

  1. CI(Continuous Integration,持续集成)
  • 开发者频繁提交代码到共享主干(main/master)

​

  • 每次提交自动触发:构建 + 单元/集成测试 + 静态扫描

​

  • 目标:早发现、早修复,避免"集成地狱"
  1. CD(Continuous Delivery,持续交付)
  • CI基础上,自动打包、部署到预生产/类生产环境

​

  • 代码随时可部署,但需人工审批才能上生产

​

  • 目标:随时可发布、一键上线
  1. CD(Continuous Deployment,持续部署)
  • 持续交付的终极形态:无需人工干预

​

  • 代码通过所有测试,自动部署到生产

​

  • 适合高成熟度、高迭代团队(如Netflix、Google)

二、CI/CD 流水线(标准流程)

  1. 代码提交:Git/GitLab/GitHub 提交/合并代码

​

  1. 触发构建:CI工具自动拉取代码、编译、打包

​

  1. 自动化测试:单元→集成→E2E→性能→安全扫描

​

  1. 制品管理:生成镜像/安装包,存入制品库(如Docker Registry、Nexus)

​

  1. 部署:

​

  • 持续交付:部署到预生产,人工审批后上生产

​

  • 持续部署:自动部署到生产

​

  1. 监控与回滚:线上监控,异常自动/手动回滚

三、核心价值(为什么要用)

  • 更快交付:从周/天→分钟级上线

​

  • 更低风险:小步快跑、自动化测试,减少生产故障

​

  • 更高质量:每次提交都被验证,代码更稳定

​

  • 更强协作:开发/测试/运维统一流程,减少扯皮

​

  • 可追溯:全流程日志,问题快速定位

四、主流工具(2026常用)

  1. CI/CD 引擎
  • Jenkins:开源、插件极丰富、可自托管(老牌首选)

​

  • GitLab CI/CD:与GitLab深度集成,YAML配置,免费额度高

​

  • GitHub Actions:GitHub内置,云原生、生态强

​

  • CircleCI:云服务,速度快、配置简洁

​

  • Azure DevOps:微软全家桶,企业级一站式
  1. 配套生态(必备)
  • 版本控制:Git、GitHub、GitLab

​

  • 容器:Docker、K8s

​

  • 制品库:Nexus、Harbor、Docker Hub

​

  • 监控:Prometheus、Grafana、ELK

​

  • 配置管理:Ansible、Terraform

五、关键实践(落地要点)

  • 主干开发:代码尽量在主干迭代,减少长分支

​

  • 自动化一切:构建、测试、部署、回滚

​

  • 分层测试:单元(快)→集成→E2E(全)

​

  • 环境一致:开发/测试/生产环境标准化(容器化)

​

  • 快速反馈:失败立即通知,修复后自动重跑

​

  • 灰度/蓝绿部署:降低上线风险

六、CI vs 持续交付 vs 持续部署(对比)

  • CI:代码提交→自动构建测试→确保可集成

​

  • 持续交付:CI→自动打包→预生产验证→人工审批上生产

​

  • 持续部署:CI→持续交付→自动上生产

要不要我给你一份可直接复制的 GitLab CI/CD 最简流水线配置(YAML),包含构建、测试、Docker 打包和部署到预生产?

相关推荐
自强的小白18 小时前
nacos配置中心面试题(导入配置的优先级),注意是如果后导入相同配置是以 后导入优先。外部入优先和nacos的数据隔离。
java·微服务
suaizai_21 小时前
Spring Cloud Gateway 全链路 traceId 传递方案
微服务
Wang's Blog21 小时前
Java框架 SpringCloud 快速入门: 微服务配置拉取
java·spring cloud·微服务
Wang's Blog21 小时前
Java框架 SpringCloud 快速入门: 微服务框架课程介绍与知识地图
java·spring cloud·微服务
写后端的胖头鱼2 天前
【高频面试题】微服务项目排查错误流程(万字详解)
微服务·架构·问题定位·链路·线上排错
晚安code3 天前
RPC 到底是什么:微服务内部调用的首选,以及它藏起来的三个坑
微服务·rpc
晚安code3 天前
微服务架构和单体架构的区别:拆之前你得先想清楚这件事
微服务·架构
code_slave(码畜)3 天前
微服务架构落地:基础服务 —— 报表服务(中篇:元数据、查询引擎、缓存与权限落地)
spring boot·spring cloud·缓存·微服务·架构
code_slave(码畜)3 天前
微服务架构落地:基础服务 —— 报表服务(AI 集成篇:AI 增强报表能力)
人工智能·spring boot·spring cloud·微服务·架构
code_slave(码畜)4 天前
微服务架构落地:公共中间件层总览——不承载业务,只承载稳定性
spring boot·spring cloud·微服务·中间件·架构