CI/CD 核心概念与实战指南

6 阅读3分钟

🚀 CI/CD 核心概念与实战指南

一句话总结:CI/CD 就是让代码从“写完”到“上线”全程自动化,把人工操作交给机器人,让您只负责写代码,剩下的交给流水线。

📖 目录

  1. 什么是 CI/CD?
  2. 核心概念拆解
  3. 通俗比喻:开餐馆
  4. 为什么要用 CI/CD?
  5. 您的云效流水线实战映射
  6. 最佳实践建议

1. 什么是 CI/CD?

CI/CD 是现代软件开发的“自动化高速公路”,包含两个核心环节:

  • CI (Continuous Integration):持续集成 —— 自动构建、测试、打包。
  • CD (Continuous Delivery/Deployment):持续交付/部署 —— 自动发布到服务器。

目标:减少人工干预,加快迭代速度,降低上线风险。


2. 核心概念拆解

🏗️ CI:持续集成 (Continuous Integration)

关键词频繁提交自动测试快速反馈

  • 做什么: 每当开发者推送代码(git push),系统自动触发:
    1. 拉取最新代码。
    2. 安装依赖(如 npm install)。
    3. 运行自动化测试(单元测试、lint 检查)。
    4. 构建产物(如生成 app.tar.gz 包)。
  • 核心价值
    • 早发现早治疗:代码有问题立刻报错,不用等到上线才发现。
    • 避免“集成地狱”:大家频繁合并代码,冲突少,修复快。

🚀 CD:持续交付/部署 (Continuous Delivery/Deployment)

关键词自动发布一键上线无人值守

这里有两个细微差别:

  • 持续交付 (Delivery):代码测试通过后,准备好上线,但需要人工点一下“确认”按钮才发布。(适合金融等严谨场景)

  • 持续部署 (Deployment):代码测试通过后,直接自动发布到生产环境,无需人工干预。(适合互联网快速迭代)

  • 做什么

    1. 将 CI 阶段生成的包上传到服务器。
    2. 停止旧服务,解压新包,启动新服务。
    3. 发送通知(如钉钉/邮件):“上线成功!”

3. 通俗比喻:开餐馆 🍔

角色传统模式 (无 CI/CD)现代模式 (有 CI/CD)
厨师 (开发者)做菜 -> 自己打包 -> 骑电动车送外卖 -> 客户投诉再回去改只做菜 -> 放入传送带 -> 机器人自动打包、质检、送货
质检员靠厨师自觉,偶尔尝一口机器人每道菜必检,有毒立刻报警
服务员 (运维)手动端盘子,容易洒机器人自动送餐,稳如泰山
结果累、慢、易出错快、稳、省心

4. 为什么要用 CI/CD?

痛点传统手工上线CI/CD 自动化
效率每次上线耗时 30 分钟+2 分钟自动完成
质量人工操作易手滑(传错文件、配错环境)流程标准化,机器人不会累
频率一周发版 1 次都嫌累一天发版 10 次也轻松
回滚出问题了手忙脚乱找备份一键回滚到上一版本
心态上线前紧张失眠安心喝茶,坐等通知

5. 您的云效流水线实战映射

您在阿里云云效配置的流水线,就是典型的 CI/CD 流程:

流水线任务块对应环节实际动作
源代码触发器监听 git push,一旦有代码提交,立即唤醒流水线
Node.js 构建CI (集成)1. npm install --production (装依赖)
2. 打包代码为 .tar.gz (构建产物)
主机部署CD (部署)1. 传输包到阿里云 ECS
2. 解压、停止旧进程、启动新进程

流程图示

graph LR
    A[您 git push 代码] --> B(云效流水线触发)
    B --> C{CI: Node.js 构建}
    C -->|npm install & 打包 | D[生成 app.tar.gz]
    D --> E{CD: 主机部署}
    E -->|上传 & 重启 | F[✅ 线上服务更新成功]
    C -->|测试失败 | G[❌ 报错通知您]