1. 课程导论:平台工程与蓝绿发布门禁的核心理念
1.1 从 DevOps 到平台工程:演进逻辑
传统 DevOps 强调“谁构建,谁运行”,但在大规模微服务架构下,每个团队独立管理发布流水线、监控、基础设施,导致认知负载过高、工具碎片化严重。平台工程(Platform Engineering)应运而生,其核心思想是:构建一条内部开发者平台(IDP),将基础设施复杂性抽象为自助服务能力,让开发者专注于业务代码。
| 维度 | 传统 DevOps | 平台工程 |
|---|---|---|
| 核心目标 | 消除开发与运维边界 | 降低认知负载,提升开发者体验 |
| 交付方式 | 脚本、CI/CD 流水线 | 自助服务 API、GUI、CLI |
| 抽象层级 | 基础设施即代码 | 服务目录 + 黄金路径 |
| 变更风险 | 依赖个人经验 | 内置门禁与策略即代码 |
关键洞察: 平台工程不是取代 DevOps,而是通过“平台”这一中间层,将 SRE 的可靠性经验、安全策略、成本治理固化为可复用的服务模板,让开发团队在黄金路径上安全地高速迭代。
1.2 蓝绿发布门禁:安全变更的守门人
蓝绿发布是一种零宕机部署策略,通过维护两套完全相同的生产环境(蓝环境与绿环境),实现流量瞬间切换。然而,仅有部署策略远远不够——门禁(Gate) 是决定流量是否切换的决策点。一个成熟的蓝绿发布门禁必须包含以下维度:
- 健康检查门禁: 新版本实例必须通过 Liveness/Readiness 探测,且错误率低于阈值。
- 性能基线门禁: 响应时间 P99、吞吐量不得劣化超过 5%。
- 日志与监控门禁: 关键业务指标(如订单成功率、支付转化率)无异常。
- 安全合规门禁: 镜像签名验证、依赖漏洞扫描通过。
- 人工审批门禁: 特定环境(如生产)需要变更经理确认。
1.3 服务目录:平台工程的“黄金导航图”
服务目录(Service Catalog)是内部开发者平台的核心元数据层。它不仅仅是 CMDB 的替代品,更是策略、门禁、黄金路径的绑定点。在蓝绿发布场景中,服务目录承担以下关键职责:
- 服务注册与发现: 记录每个服务的负责人、代码仓库、环境映射、依赖关系。
- 门禁策略绑定: 根据服务等级(Critical / Standard / Experimental)自动匹配不同的门禁规则。
- 发布审批链: 定义谁可以批准哪个环境的发布,支持多级审批。
- 变更历史追溯: 记录每次蓝绿切换的时间、结果、审批人,形成审计轨迹。
- 风险暴露视图: 展示当前所有服务的发布状态、门禁通过率、回滚次数。
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 中集成目录门禁。最终交付一个可直接运行的平台工程参考实现。