「服务都搬上 Kubernetes 了,还有必要再上 DevOps 平台吗?」——这句话几乎每个容器化团队都问过,而它难答,是因为一开始就被问错了方向。
DevOps 平台和云原生(以 Kubernetes 为代表)根本不是同一层的东西,谈不上二选一:DevOps 平台管的是变更怎么被安全地送到集群——评审、构建、制品、审批、审计,每一步都能对上账;Kubernetes 管的是应用在集群里怎么跑——调度、弹性、自愈,它从不回答「这次是谁改的、该不该上、出事了回滚到哪个版本」。真正容易漏的是夹在中间的第三层:镜像与 manifest 怎么晋级进集群(制品库 + 发布/GitOps 控制器)。
所以这篇文章不打算把 DevOps 平台、云原生、Kubernetes、GitOps 四个词各科普一遍——公开定义到处都是。它只回答一个具体问题:已经上了 K8s 的团队,到底还缺什么、按什么顺序补。 路径很直接:先认清三层,再看三种集成模式,最后用一张 K8s 场景 PoC 表收口。
一、先分清:两层问题,外加一道「桥」
1.1 云原生 ≠ 只有 Kubernetes
云原生是一套架构与工程方法论:容器化、微服务、声明式基础设施、持续交付与可观测等。中国信通院《云原生 新一代软件架构的变革》等公开材料中,亦将 持续交付、DevOps 实践 纳入云原生技术谱系——因此「云原生 vs DevOps 平台」不是同一维度的对立,而是:
| 层次 | 回答什么 | 典型对象 | 缺失时常见症状 |
|---|---|---|---|
| 交付管控层(DevOps 平台) | 变更如何从代码 安全、可追溯地 进入环境 | 代码、MR、流水线、制品、发布审批、审计 | 发布靠人、制品对不上、无法回滚到确定版本 |
| 运行底座层(云原生运行时) | 工作负载在集群内 如何调度、弹性、自愈 | Pod、Deployment、Service、HPA、网络与存储 | 资源浪费、扩缩容慢、故障域不清晰 |
| 衔接层(制品 + 发布/GitOps) | 构建产物如何 晋级 到测试/预发/生产集群 | 镜像仓库、Helm Chart、GitOps 仓库、发布控制器 | 测试与生产镜像不一致;集群状态与审批脱节 |
读法: 「两个都要」指的是 交付层 + 运行层 缺一不可;若已有 K8s,还要明确 第三层由谁承担——是 DevOps 平台内置发布,还是 GitOps(Argo CD、Flux 等) 同步 manifest,或二者组合。

1.2 DevOps 平台与「纯运行时工具」边界
| 维度 | DevOps 平台 | 云原生运行时(K8s 等) |
|---|---|---|
| 核心问题 | 变更如何评审、构建、纳管、审批上线 | 应用如何在集群中运行与扩展 |
| 管理对象 | 代码、流水线、制品、发布记录 | 容器、工作负载、集群资源 |
| 典型组件 | 托管/评审、CI/CD、制品库、门禁、效能数据 | Kubernetes、容器运行时、服务网格(可选) |
| 不负责的事 | 不替代集群调度与节点资源规划 | 不替代 MR 评审、制品晋级策略、跨环境审批 |
二、上 K8s 之后,为什么仍需要交付管控层
微服务化后,交付单元从 1 个 变成 几十个,镜像 tag、环境、Helm revision 组合爆炸。若出现下列信号,说明 容器化已完成,交付链路仍断:
- 镜像构建完没有统一制品库,测试与生产拉到的 digest 不一致。
- 发布靠 kubectl / 脚本手工执行,无审批、无记录、无法审计。
- 回滚靠人工翻历史 tag,对不上代码提交与需求单号。
- 开发 / 测试 / 预发 / 生产 没有统一流水线与质量门禁,只有集群在跑。

Google Cloud DORA 团队在其能力模型中,将持续集成、持续交付、部署自动化等列为影响交付表现的核心能力——上了容器,不等于这些能力自动具备,仍需要平台化的链路承接。
三、集成模式:平台与 K8s 怎么「叠」在一起
企业真正纠结的往往不是「要不要两个」,而是 变更如何进集群。常见三种模式(可组合,非互斥):
| 模式 | 链路概要 | 更常见团队 | 注意点 |
|---|---|---|---|
| A. 平台驱动发布 | CI 构建镜像 → 写入制品库 → 平台审批后 调用 K8s API/Agent 部署 | 希望发布与审计在同一系统 | 须 PoC 多环境晋级与 RBAC |
| B. GitOps 声明式 | CI 构建镜像 → 更新 Git 中 manifest → Argo CD/Flux 同步集群 | 强 Git 治理、多集群 | 审批可在 Git PR 或平台侧重 |
| C. 平台 + GitOps 组合 | 平台管 构建、制品、门禁;GitOps 管 集群期望状态 | 中大型、多集群 | 需约定 谁改镜像 tag、谁合并 manifest |
举例: GitLab/GitHub Actions 常走 A 或 B;GitFox 等一体化平台可在 A/C 中承担构建、制品与审批,再对接 K8s 或 GitOps;仅有 Jenkins + kubectl 往往缺制品晋级与审计,是第二节四类信号的温床。
选型时先画清 贵司走 A、B 还是 C,再选具体产品——比先争论「要不要 DevOps 平台」更省时间。
四、先做云原生还是先上 DevOps 平台:按断点选路径
没有固定先后顺序,看 断点在哪:
| 现状 | 建议主线 | 优先验证 |
|---|---|---|
| 工具链割裂、发布靠人工、尚未容器化 | 先统一交付链路(代码→制品→发布) | 一条流水线完成构建、扫描、制品、至少到测试环境 |
| 已容器化、K8s 在跑、发布不受控 | 先补衔接层 + 审批回滚 | 制品库纳管镜像/Helm;发布走审批;选定 A/B/C 模式 |
| 强合规、私有化、审计要求高 | 交付平台 私有化 + 全链路留痕 | 审计导出、离线可用、与 PM/需求 ID 关联(以 PoC 为准) |
五、落地顺序:四步 + K8s 场景 PoC
5.1 四步推进
- 画现状链路:代码仓库、CI、制品库、发布方式(含是否 kubectl)、K8s 集群——标出 人肉环节。
- 选一个可独立发布的微服务试点:构建镜像 → 入库 → 部署到 测试集群。
- 固定集成模式(第三节 A/B/C):串起扫描、测试、制品晋级与上线审批,再推广预发/生产。
- 用 DORA 四类指标观察变化:部署频率、变更前置时间、变更失败率、恢复时间——先统一口径,再谈优化。

5.2 PoC Pass / Fail(K8s + 交付平台)
| 检查项 | Pass | Fail |
|---|---|---|
| 制品关联 | 镜像 digest 自动入库,且关联 commit/MR(及需求 ID,若已集成 PM) | 测试/生产镜像来源靠人工告知 |
| 发布管控 | 部署到 K8s 非 默认 kubectl 私活;有审批或等价门禁 | 任何人可 kubectl apply,无记录 |
| 回滚 | 可回到 指定历史制品版本 并留痕 | 回滚靠猜 tag 或手工改 YAML |
| 审计 | 一次查询能看到「谁、何时、何版本、进哪环境」 | 信息散落在 CI 日志与聊天 |
试点未过 Fail 任一行,不宜扩大集群内服务数量。
六、常见问题(FAQ)
Q1:上了 Kubernetes 还需要 DevOps 平台吗?
需要交付管控层,K8s 不能替代。 集群管运行与调度;评审、构建、制品晋级、发布审批与审计属于交付链路。容器化程度越高,越需要平台(或规范化的 GitOps + CI)把 变更如何进集群 管起来。
Q2:DevOps 平台和云原生有什么区别?
云原生是架构与工程方法论(含容器、微服务、持续交付、可观测等);DevOps 平台是承载 代码→制品→发布 的工具体系。Kubernetes 是云原生 运行时底座 的代表,与 DevOps 平台 不同层,通过制品库与 GitOps/发布流程衔接。
Q3:GitOps 和 DevOps 平台是什么关系?
GitOps 是变更进入集群的一种实现方式(声明式、以 Git 为真源),常由 Argo CD/Flux 执行;DevOps 平台通常负责 构建镜像、质量门禁、制品库与审批。二者可组合:平台产出制品并更新 manifest,GitOps 负责集群同步——不是二选一。
Q4:落地顺序怎么排?
看断点,不看口号。 发布靠人、工具割裂 → 先统一交付链路;K8s 已有但发布失控 → 先补制品、审批、回滚与集成模式(第三节)。均从小服务试点开始,用第五节 PoC 表收口。
选型收口
DevOps 平台与云原生 不是二选一:
- 运行底座(K8s 等) 决定应用跑得多稳、扩得多快;
- 交付管控(DevOps 平台 + 制品/GitOps 衔接) 决定每次变更能否 可控、可追溯 地到达集群。
对企业而言,更稳妥的路径是:画清断点 → 选定集成模式 A/B/C → 小服务 PoC 通过 → 再扩面。是否引入具体产品,以第五节 PoC 与团队现状为准,而非「上了 K8s 就万事大吉」。
功能、部署与集成范围以各产品官网及 PoC 结果为准。
参考公开资料: 中国信通院云原生相关白皮书;Google Cloud DORA 团队 《State of DevOps》 及能力模型公开材料。