1. 课程导论:弹性伸缩的背景与挑战、服务画像的概念引入、SLA在弹性伸缩中的核心地位
1.1 弹性伸缩的背景与核心挑战
在云原生架构中,弹性伸缩(Auto Scaling)是保障业务连续性与成本效率的核心手段。然而,实际生产环境中的伸缩决策远比“CPU > 80% 就扩容”复杂得多。错误的伸缩策略可能导致服务雪崩、资源浪费或SLA违约。
核心矛盾: 弹性伸缩需要在“响应速度”与“稳定性”之间取得平衡。过度激进的扩容导致成本失控,过度保守的缩容则引发性能瓶颈。
当前弹性伸缩面临的主要挑战包括:
- 指标单一化: 仅依赖CPU/内存等基础指标,无法反映真实业务负载。
- 启动延迟: 实例启动、注册、预热需要时间,伸缩动作存在滞后效应。
- 流量突发: 秒级流量尖峰可能导致扩容来不及完成,造成请求超时。
- 状态依赖: 有状态服务的伸缩涉及数据迁移、会话保持等复杂问题。
- 成本失控: 缺乏精细化策略,导致非高峰时段资源冗余。
1.2 服务画像:从“黑盒”到“可量化特征”
服务画像(Service Profiling)是指通过多维度的特征提取,将服务的运行时行为、资源依赖、流量模式等抽象为一组可量化的标签与指标集合。它解决了传统弹性伸缩中“所有服务一视同仁”的粗粒度问题。
| 画像维度 | 关键特征 | 对伸缩的影响 |
|---|---|---|
| 资源画像 | CPU敏感型 / 内存敏感型 / IO密集型 | 决定伸缩触发指标的选择与权重 |
| 流量画像 | 平稳型 / 周期波动型 / 突发尖峰型 | 决定伸缩策略的激进程度与预测模型 |
| 依赖画像 | 强依赖DB / 依赖缓存 / 无状态 | 决定缩容时的优雅下线策略 |
| 启动画像 | 冷启动时长 / 预热周期 / 健康检查耗时 | 决定扩容的提前量计算 |
| 成本画像 | 实例单价 / 预留实例比例 / Spot使用率 | 决定伸缩的预算约束与实例类型选择 |
| 对比维度 | 传统弹性伸缩 | 基于服务画像的SLA驱动伸缩 |
|---|---|---|
| 触发指标 | CPU / 内存 / 网络IO | SLA指标(延迟、错误率、吞吐量)+ 画像特征 |
| 决策粒度 | 全局统一策略 | 按服务画像差异化策略 |
| 响应模式 | 被动响应(阈值触发) | 主动预测 + 被动响应混合 |
| 成本控制 | 无成本感知 | 成本画像约束 + 预算感知 |
| 效果验证 | 资源利用率变化 | SLA达成率 + 业务指标验证 |