1. 课程导论:Backstage 服务模板与容量水位 SLO 复核的背景、目标与课程整体框架
1.1 为什么需要关注服务模板发布后的容量水位?
在 Backstage 平台中,服务模板(Service Templates) 是开发者快速创建标准化微服务的核心入口。然而,模板发布后,团队往往只关注功能正确性,忽略了容量水位与 SLO(Service Level Objective)的持续复核。这会导致以下典型问题:
- 资源超分与浪费:模板默认资源规格(CPU/内存)过高,大量服务实例长期处于低负载状态。
- 热点与瓶颈:部分服务因模板未预设弹性伸缩策略,在流量突增时触发 P0 故障。
- SLO 盲区:容量水位未纳入 SLO 监控,团队无法感知“资源利用率是否健康”。
- 成本失控:云资源费用随服务数量线性增长,缺乏基于水位的成本优化机制。
核心观点:服务模板不仅是代码脚手架,更是容量治理的起点。发布后的 SLO 复核,是将“容量水位”从被动救火转变为主动治理的关键闭环。
1.2 课程目标与受众
| 维度 | 说明 |
|---|---|
| 课程目标 | 掌握在 Backstage 平台中,对已发布服务模板进行容量水位 SLO 复核的方法论、工具链与最佳实践。 |
| 核心受众 | SRE 工程师、平台工程师、容量规划专家、Backstage 平台维护者。 |
| 前置知识 | 了解 Backstage 基本概念(Entity、Catalog、Scaffolder);熟悉 SLO 与 SLI 基础;具备 Kubernetes 资源管理常识。 |
| 学习收益 | 能够独立设计容量水位 SLI、配置复核流水线、生成治理报告,并推动模板规格优化。 |
1.3 课程整体框架
本课程共分为 6 个模块,从概念到落地,逐步构建完整的复核体系:
- 模块一:容量水位 SLO 基础 — 定义 SLI、SLO、错误预算,以及它们与服务模板的关系。
- 模块二:Backstage 服务模板的容量元数据注入 — 如何在模板中声明资源规格、弹性策略与水位阈值。
- 模块三:数据采集与 SLI 计算 — 对接 Prometheus/Kubernetes Metrics API,计算 CPU、内存、QPS 等水位指标。
- 模块四:复核流水线设计与实现 — 在 Backstage 中创建自定义动作(Custom Action),触发复核 Job 并生成报告。
- 模块五:异常检测与治理闭环 — 基于水位 SLO 触发告警、自动创建 Ticket 或回滚模板版本。
- 模块六:案例实战与复盘 — 真实场景演练:从模板发布到水位 SLO 违规,再到优化迭代的全流程。
1.4 核心概念关系图
下图展示了服务模板、容量水位、SLO 复核三者之间的逻辑关系:
1.5 课程中的关键工具与平台组件
| 组件/工具 | 在本课程中的角色 |
|---|---|
| Backstage Scaffolder | 服务模板的定义、发布与版本管理入口。 |
| Backstage Catalog | 存储服务实例的容量元数据(如 resourceSpec、watermark)。 |
| Prometheus / Thanos | 采集运行时水位指标,提供 SLI 数据源。 |
| Kubernetes Metrics Server | 提供 Pod 级别的实时 CPU/内存使用数据。 |
| Backstage TechDocs | 承载复核报告与容量水位治理文档。 |
| 自定义 Backstage Plugin | 可视化展示水位 SLO 状态、历史趋势与违规事件。 |
1.6 课程预期产出
完成本课程后,你将能够交付以下成果:
- 一套可复用的 容量水位 SLI 定义规范(YAML/JSON Schema)。
- 一个 Backstage 自定义动作,用于自动触发复核流水线。
- 一份 水位 SLO 复核报告模板(Markdown + 图表)。
- 一个 治理闭环流程:从违规发现到模板版本回滚或规格调整。
提示:本课程所有实践环节均基于开源 Backstage 环境,你可以在自己的 Sandbox 中跟随操作。建议提前准备一个包含 2-3 个模拟服务的测试集群。