首页 / 知识库 / 系统架构体系 / 项目到底如何部署

08 - 现代项目里 CI/CD 具体在跑什么

上一章讲了流水线的通用五步。这一章我们落到我们这套现代项目(前端 OSS+CDN、后端 Docker+Serverless)里,看看流水线在前端和后端上具体各自跑什么。理解了这个,你就明白为什么说”CI/CD 是把整套东西串起来的引擎”。

一个项目,通常有两条支线

我们的项目分前端和后端,它们的构建和部署方式不同,所以流水线通常分成两条支线(可以在同一个流水线里,也可以拆成两个):

              ┌──▶ 前端支线:build → 推 OSS → 刷新 CDN
git push ─────┤
              └──▶ 后端支线:docker build → 推镜像 → 部署 Serverless

[配图:一次 push 后分叉成上下两条流水线,上面是前端到 CDN,下面是后端到 Serverless]

前端支线:build 完推到 OSS + CDN

前端的流水线做这几件事:

  1. 拉代码 + 装依赖npm install
  2. 构建npm run build,产出 dist/ 目录(一堆静态文件)
  3. 部署
    • dist/ 里的文件上传到 OSS(对象存储)
    • 刷新 CDN 缓存,让全国用户马上拿到新版本

关键点:前端产物是静态文件,“部署”本质就是把文件传到 OSS 这个货架上,没有”启动服务”这一说,所以特别快。

后端支线:打成 Docker 镜像推到 Serverless

后端的流水线做这几件事:

  1. 拉代码 + 装依赖 + 测试
  2. 构建docker build,按 Dockerfile 把代码 + 运行环境打成一个Docker 镜像
  3. 推镜像:把镜像推送到镜像仓库(云厂商提供的、专门存镜像的地方)
  4. 部署:通知 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 - 前端部署的本质:构建产物是一堆静态文件