CI/CD的含义 一、一句话解释CI/CD 是一种软件开发实践让代码从编写 → 测试 → 部署的全过程自动化就像一条自动化流水线。生活中的类比想象你要开一家奶茶店传统方式客人点单 → 你现煮珍珠 → 现泡茶 → 现做奶茶 → 递给客人等很久CI/CD 方式提前准备好珍珠、茶汤、配料客人点单后直接组装快、标准、不容易错二、CI/CD 拆解CI/CD 包含三个核心部分2.1 CIContinuous Integration- 持续集成概念开发人员频繁地将代码合并到主干每次合并都自动构建和测试。类比团队写书❌ 传统方式每人写一章最后拼起来发现风格不统一、页码对不上✅ CI方式每天合并一次自动检查格式、页码、引用# CI 自动做的事1. 开发提交代码到 Git2. 自动拉取最新代码3. 自动编译4. 自动运行单元测试5. 自动检查代码规范6. 生成测试报告2.2 CDContinuous Delivery- 持续交付概念在 CI 的基础上将通过测试的代码自动部署到预发环境随时可以手动发布到生产。类比餐厅备菜提前洗好菜、切好菜、配好料客人点单时厨师直接下锅炒部署到生产只需要一个指令2.3 CDContinuous Deployment- 持续部署概念在持续交付的基础上自动部署到生产环境完全自动化。类比自动售货机投币代码提交自动出货直接上线三、CI/CD 流程示意图是否持续部署部署到测试环境部署到预发环境部署到生产环境持续集成自动编译自动测试代码检查开发写代码提交到GitCI 持续集成测试通过构建镜像/包CD 持续部署用户可用四、具体例子4.1 没有 CI/CD 的团队# 开发小张gitcommit-m添加登录功能gitpush# 通知测试代码推了你测一下# 测试小王gitpull 手动编译 手动部署到测试服务器 手动运行测试 发现 bug 通知开发修复# 每次发布都要1. 手动打包2. 手动上传到服务器3. 手动停止服务4. 手动替换文件5. 手动重启6. 手动测试# 问题❌ 耗时一天只能发布1-2次 ❌ 易错少个步骤就挂了 ❌ 反馈慢提交后第二天才知道结果4.2 有 CI/CD 的团队# .gitlab-ci.ymlCI/CD 配置文件stages:-build-test-deploybuild:stage:build script:-mvn clean package# 自动编译test:stage:test script:-mvn test# 自动测试-sonar-scanner# 代码质量检查deploy:stage:deploy script:-docker build-t myapp .# 自动构建镜像-docker push myapp:latest# 自动推送到仓库-kubectl apply-f deployment.yaml# 自动部署到 K8s效果# 开发只需gitpush# 10分钟后收到消息您的代码已成功部署到测试环境请访问 http://test.myapp.com 查看五、CI/CD 带来的好处维度没有 CI/CD有 CI/CD发布频率每月/每周发布一次每天/每小时发布多次反馈时间提交后第二天才知道提交后10分钟就知道人工操作大量手动操作几乎全自动错误率容易出错机器操作稳定可靠上线时间需要停机维护滚动更新不停机团队效率大量时间花在重复劳动专注于写代码六、常见 CI/CD 工具工具特点适用场景Jenkins最流行插件丰富各种项目需要定制化GitLab CI和 GitLab 深度集成代码在 GitLab 的项目GitHub Actions和 GitHub 深度集成代码在 GitHub 的项目Travis CI配置简单开源项目CircleCI速度快配置灵活云端项目七、实际工作流程示例一个 Java 项目的完整 CI/CD 流程# 1. 开发写代码# 2. git push# 3. CI 自动开始-拉取代码-使用 Maven 编译-运行单元测试-运行集成测试-代码质量检查SonarQube-生成测试报告# 4. 构建镜像-如果所有测试通过-自动构建 Docker 镜像-推送到镜像仓库# 5. CD 自动部署-拉取最新镜像-部署到开发环境-部署到测试环境-部署到预发环境-手动确认后部署到生产# 6. 通知-发送邮件/Slack 通知结果-附上测试报告链接-附上部署环境地址八、总结缩写全称中文核心任务CIContinuous Integration持续集成自动编译、测试、检查CDContinuous Delivery持续交付自动部署到预发环境CDContinuous Deployment持续部署自动部署到生产环境一句话理解CI/CD 就是让机器代替人去做重复的编译、测试、部署工作让开发人员专注于写代码让软件发布更快、更稳、更频繁。

相关新闻

最新新闻

Zynq7000--AXI CDMA + BRAM 从PS侧DDR搬运数据记录

Zynq7000--AXI CDMA + BRAM 从PS侧DDR搬运数据记录

目录前言核心特性为什么需要 CDMA?1. CDMA1.1 原理对比:自己运 vs 快递代劳1.2 IP 配置与使用流程关键配置选项解析1. DMA 工作模式2. 4K 边界检查(Allow Unaligned Transfers 相关)3. 非对齐传输选项4. 传输数据宽度与突发长度5.…

2026/9/1 15:57:07
视觉算法岗笔试复盘:双线性插值、NMS与深度学习基础全解析

视觉算法岗笔试复盘:双线性插值、NMS与深度学习基础全解析

九月中旬,我参加了好未来2023年秋招视觉算法岗第三批笔试。整场笔试两个小时,选择、编程、问答三个大板块,整体感觉就四个字:基础扎实。这里的“基础”不只是深度学习八股,还包括图像处理最底层的操作和工程化思维。这…

2026/9/1 15:57:07
从晶体管到计算机:一个逻辑门如何构建完整计算体系

从晶体管到计算机:一个逻辑门如何构建完整计算体系

这次我们来看一个关于计算机底层原理的核心问题:一个逻辑门真的能构建出完整的计算机吗?这个问题看似简单,却直指现代计算体系结构的根基。本文将带你从最基础的晶体管开始,一步步拆解逻辑门、加法器、触发器,直至理解…

2026/9/1 15:57:07
基于微信小程序的高考志愿填报辅助系统(源码+文档+部署讲解等)

基于微信小程序的高考志愿填报辅助系统(源码+文档+部署讲解等)

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

2026/9/1 15:57:07
奇安信秋招C/C++笔试深度解析:从指针到安全编码

奇安信秋招C/C++笔试深度解析:从指针到安全编码

刚拿到这套《2020奇安信秋招C/C方向试卷3》的时候,我的第一反应是:这是一份标准的“安全大厂风格”笔试题目,不像很多互联网公司那样堆砌偏题怪题,而是每一道题都在围绕“工程能力”和“底层理解”这两个点反复敲打。如果你正在准…

2026/9/1 15:57:07
ASP.NET Core性能优化全链路实践:从代码到架构的高并发调优指南

ASP.NET Core性能优化全链路实践:从代码到架构的高并发调优指南

在开发高并发、高吞吐量的 ASP.NET Core 应用时,你是否遇到过接口响应缓慢、服务器 CPU 或内存居高不下,甚至在高负载下直接崩溃的情况?这些问题往往不是单一原因造成的,而是由代码、配置、架构等多个层面的“性能债务”累积而成。…

2026/9/1 15:52:07