1. 课程导论:平台工程与蓝绿发布门禁的核心理念

1.1 从 DevOps 到平台工程:演进逻辑

传统 DevOps 强调“谁构建,谁运行”,但在大规模微服务架构下,每个团队独立管理发布流水线、监控、基础设施,导致认知负载过高、工具碎片化严重。平台工程(Platform Engineering)应运而生,其核心思想是:构建一条内部开发者平台(IDP),将基础设施复杂性抽象为自助服务能力,让开发者专注于业务代码。

维度 传统 DevOps 平台工程
核心目标 消除开发与运维边界 降低认知负载,提升开发者体验
交付方式 脚本、CI/CD 流水线 自助服务 API、GUI、CLI
抽象层级 基础设施即代码 服务目录 + 黄金路径
变更风险 依赖个人经验 内置门禁与策略即代码
关键洞察: 平台工程不是取代 DevOps,而是通过“平台”这一中间层,将 SRE 的可靠性经验、安全策略、成本治理固化为可复用的服务模板,让开发团队在黄金路径上安全地高速迭代。

1.2 蓝绿发布门禁:安全变更的守门人

蓝绿发布是一种零宕机部署策略,通过维护两套完全相同的生产环境(蓝环境与绿环境),实现流量瞬间切换。然而,仅有部署策略远远不够——门禁(Gate) 是决定流量是否切换的决策点。一个成熟的蓝绿发布门禁必须包含以下维度:

  • 健康检查门禁: 新版本实例必须通过 Liveness/Readiness 探测,且错误率低于阈值。
  • 性能基线门禁: 响应时间 P99、吞吐量不得劣化超过 5%。
  • 日志与监控门禁: 关键业务指标(如订单成功率、支付转化率)无异常。
  • 安全合规门禁: 镜像签名验证、依赖漏洞扫描通过。
  • 人工审批门禁: 特定环境(如生产)需要变更经理确认。
蓝绿发布门禁决策流程 蓝环境(当前) v1.2.0 · 100% 流量 绿环境(新版本) v1.3.0 · 0% 流量 发布门禁检查 ① 健康检查 ② 性能基线 ③ 业务指标 ④ 安全合规 ⑤ 人工审批 通过 → 切换流量

1.3 服务目录:平台工程的“黄金导航图”

服务目录(Service Catalog)是内部开发者平台的核心元数据层。它不仅仅是 CMDB 的替代品,更是策略、门禁、黄金路径的绑定点。在蓝绿发布场景中,服务目录承担以下关键职责:

  1. 服务注册与发现: 记录每个服务的负责人、代码仓库、环境映射、依赖关系。
  2. 门禁策略绑定: 根据服务等级(Critical / Standard / Experimental)自动匹配不同的门禁规则。
  3. 发布审批链: 定义谁可以批准哪个环境的发布,支持多级审批。
  4. 变更历史追溯: 记录每次蓝绿切换的时间、结果、审批人,形成审计轨迹。
  5. 风险暴露视图: 展示当前所有服务的发布状态、门禁通过率、回滚次数。
服务目录在蓝绿发布中的定位 服务目录 元数据 + 策略 + 门禁 开发者 K8s / 网络 / 监控 门禁引擎 策略即代码 发布编排 Argo Rollouts / Spinnaker

1.4 服务目录设计的三大原则

原则 说明 蓝绿发布场景示例
1. 声明式策略绑定 门禁规则以声明式配置挂载在服务目录上,而非硬编码在流水线中 服务目录中 spec.gates.healthCheck.enabled: true
2. 环境感知 目录必须感知每个服务的环境拓扑(dev/staging/prod)及蓝绿关系 目录记录 environments.prod.blue: v1.2.0,environments.prod.green: v1.3.0
3. 可观测性集成 门禁决策结果、延迟、错误率必须回写到目录,形成闭环 目录展示 lastGateResult: passed,gateDuration: 12s
课程核心命题: 本课程将带你从零构建一个“蓝绿发布门禁感知”的服务目录。你将学会如何设计目录的数据模型、如何将门禁策略抽象为目录中的 CRD、如何通过 Operator 实现策略自愈,以及如何在 Argo Rollouts 中集成目录门禁。最终交付一个可直接运行的平台工程参考实现。