08 - 现代项目里 CI/CD 具体在跑什么
上一章讲了流水线的通用五步。这一章我们落到我们这套现代项目(前端 OSS+CDN、后端 Docker+Serverless)里,看看流水线在前端和后端上具体各自跑什么。理解了这个,你就明白为什么说”CI/CD 是把整套东西串起来的引擎”。
一个项目,通常有两条支线
我们的项目分前端和后端,它们的构建和部署方式不同,所以流水线通常分成两条支线(可以在同一个流水线里,也可以拆成两个):
┌──▶ 前端支线:build → 推 OSS → 刷新 CDN
git push ─────┤
└──▶ 后端支线:docker build → 推镜像 → 部署 Serverless
[配图:一次 push 后分叉成上下两条流水线,上面是前端到 CDN,下面是后端到 Serverless]
前端支线:build 完推到 OSS + CDN
前端的流水线做这几件事:
- 拉代码 + 装依赖:
npm install - 构建:
npm run build,产出dist/目录(一堆静态文件) - 部署:
- 把
dist/里的文件上传到 OSS(对象存储) - 刷新 CDN 缓存,让全国用户马上拿到新版本
- 把
关键点:前端产物是静态文件,“部署”本质就是把文件传到 OSS 这个货架上,没有”启动服务”这一说,所以特别快。
后端支线:打成 Docker 镜像推到 Serverless
后端的流水线做这几件事:
- 拉代码 + 装依赖 + 测试
- 构建:
docker build,按Dockerfile把代码 + 运行环境打成一个Docker 镜像 - 推镜像:把镜像推送到镜像仓库(云厂商提供的、专门存镜像的地方)
- 部署:通知 Serverless 平台用这个新镜像启动,替换掉旧版本
关键点:后端要”运行”,所以它交付的成品是能跑起来的 Docker 镜像,而不是静态文件。这也是下一部分要重点讲的:为什么后端要打成 Docker 再上 Serverless。
为什么这套组合特别适合 CI/CD
现代方式和 CI/CD 是”天生一对”:
- 前端产物是静态文件 → 部署就是传文件,简单、快、可回滚(换个版本目录即可)
- 后端产物是 Docker 镜像 → 镜像是标准化的、自带环境的成品,平台拿到就能跑,不用在服务器上装环境
- 目标都是托管服务(OSS/CDN、Serverless)→ 都提供了 API/命令行,机器可以自动操作
传统方式为什么 CI/CD 难做?因为它要”登录服务器、装环境、守进程”,这些又乱又依赖具体机器状态。而现代方式每一步都是标准化、可自动化的,流水线跑起来自然顺畅。
到这里,前面的图就活起来了
回看第 04 章的全景图,最上方那个”CI/CD 引擎”现在有了具体含义:
你 push 一次代码,前端支线把新页面送上 CDN,后端支线把新镜像送上 Serverless。整个项目就这样被一次 push 自动更新了。
小结
- 现代项目的流水线通常分前端、后端两条支线。
- 前端支线:
build→ 推 OSS → 刷 CDN(传文件,快)。 - 后端支线:
docker build→ 推镜像仓库 → 部署 Serverless(送镜像,能跑)。 - 现代方式的产物(静态文件 + Docker 镜像)都是标准化成品,天生适合自动化,所以和 CI/CD 是绝配。
CI/CD 这条引擎讲完了。接下来进入第三部分,我们把前端这条支线的终点站——OSS + CDN——彻底讲透。
下一章 → 09 - 前端部署的本质:构建产物是一堆静态文件