资源分配
1)挑战与原则
资源分配是将需求(负载,项目,事件)与供应(CPU/RAM/IO/网络,许可证,人员,预算)匹配到目标SLO和FinOps限制下的系统方法。
基本原则:- SLO-first:资源有质量目标;选取是承受它的工具。
- Fairness+Priority:所有人的公平份额,但优先级-保证。
- 分裂:我们限制爆炸无线电的"贪婪"负载。
- Elasticity:自动扩展/压缩以满足实际需求。
- Cost-aware:每个额外资源必须对SLO/收入产生可理解的影响。
- 基于Evidence的:通过遥测和实验验证解决方桉。
2)资源分类
计算:CPU/Memory/GPU,容器池,无伺服配额。
存储:IOPS/带宽,热/热/冷层,缓存。
网络:egress/ingress, CDN,私人通道,IP池。
数据:DWH/流媒体中的插槽/窗口资源,后门窗口。
人:呼叫时段,IC/释放,SRE/Dev时间(时钟/冲刺)。
供应商:供应商限额(PSP/KYC/CDN)、限额和连接。
3)优先级模型(投资组合)
Tier-0:重要的流失(登录、付款)。有保证的资源,单独的池。
Tier-1:业务关键(核心产品,D-1报告)。首选配额。
Tier-2/3:支持/研究。Burstable,预算限制。
项目:Impact × Urgency × Confidence × Cost →等级;SAV/投资组合中的协调。
4)分配政策(担保,配额,限制)
担保人(专有人员):虚构股份/储备金;对于Tier-0/1。
Burstable:基本配额+自由占用至限额的权利。
Best-effort: 没有保证,可以取代.
Quota/Limit-as-Code:所有配额和限额均以声明方式描述(策略存储库)。
Preemption/Pod Disruption Budget:可以以什么速度取代谁。
网络配额:egress/tenant,与提供商的连接限制。
5)多重性和隔离
Namespace/Account per tenant:单独的限制、预算、审计。
嘈杂的邻居:cgroups/requests/limits/IO-throttling;单独的nods用于"重"任务。
P95绝缘体:SLO是根据笔触计算的,非平均值;爆破不应该打破邻居的p95。
数据点:VIP/区域的单独池存储层和缓存层。
6)自动缩放和弹性
HPA/VPA/Cluster-autoscaler:通过SLI/SLI代理进行缩放(latency p95,queue depth),而不仅仅是CPU。
分级分级:在峰值窗口/事件之前。
Warm pools:用于快速滑板的加热节点/连接。
网络/CDN:通过RUM/Anycast/POP负载自动重构。
7)队列、服务类和SLA
类:"黄金/银/青铜",目标等待时间和错误预算。
队列/总线:优先级,Tier-0的各个部分,DLQ。
Backpressure:用于内核保护的drop/shape/slow学科。
自适应Taymout/Retrai:服务类别和当前状态。
8)人力资源
班次和覆盖范围:交通匹配(追随太阳),P1+P2达到顶峰。
SRE/Dev焦点:KPI的每反应/启动时间(例如50/50)的百分比。
资源查询:每小时/冲刺的RFC模板,透明的优先级队列。
9)金融模型(FinOps)
单位经济学:$/1K查询,$/成功支付,$/GiB Logs。
预算和差额:帐户/特许权配额,超支警告。
优化:热/热/冷存储,木刻采样,非关键现货池。
Showback/Chargeback:团队/男高音的成本报告激励效率。
10)提供商管理
限制和窗口:合同的TPS和PSP/KYC/CDN的队列;日历中的计划窗口。
Failover配置文件:多供应商之间的权重和路由。
脉搏度量:响应时间、容错性、成本/成功操作。
11)分布成熟度度量
SLO Adherence按等级:黄金/银/青铜的合规性百分比。
资源效率:CPU/RAM/IO(中位数/p95)的处置。
Cost per SLO点:保持目标SLO的成本变化。
Throttling/Preemption rate:我们排挤的频率和人。
热点MTTA:应对池/tenant过热的时间。
公平指数:Tenant之间的延迟/配额分布(基尼/变异)。
12)支票单
在更改分布之前
- 定义了SLO目标和服务类别。
- 有负荷遥测(p95/p99,生长,季节性)。
- 配额/限额在Git中进行了描述,并进行了咆哮。
- 测试邻居效应(隔离测试)。
- 回滚计划和护卫队已经准备就绪。
每周运营一次
- 池处置热图和热点报告。
- FinOps报告:$/ed.,超支,异常。
- 提供商限额和SLA已得到满足。
- 队列:班级内的延迟,没有饥饿。
- CAPA在工作中发现的瓶颈。
13)模板(想法)
13.1配额政策(YAML)
yaml tenant: vip-eu class: gold compute:
cpu:
request: "8000m"
limit: "12000m"
memory:
request: "16Gi"
limit: "24Gi"
storage:
tier: hot iops_min: 8000 network:
egress_mbps_cap: 500 slo:
latency_p95_ms: 250 preemption:
protected: true burst:
allowed: true max_factor: 1.5
13.2自动缩放配置文件(片段)
yaml autoscaling:
metric: "queue_depth" # или biz_sli.payment_latency_p95 target: 200 min_replicas: 6 max_replicas: 60 warm_pool: 4 cooldown_sec: 120
13.3类服务和队列
yaml class: gold sla:
wait_p95_ms: 150 queue:
partition: "gold-eu"
retry_policy:
attempts: 2 backoff_ms: 200 backpressure: "shape" # иначе drop/slow
13.4资源申请(人员)
RFC: RES-OPS-2025-11
Цель: усилить on-call P2 на пике ноябрьских промо (EU)
Период: 2025-11-25..2025-12-05
Обоснование: прогноз трафика +30%, прошлогодний p95 MTTA ↑
Запрос: +1 P2 слот/сутки, +IC в prime-time
14)程序与自动化
计划者机器人:计算流量历史和目标SLO,PR到策略存储库的配额。
Guardrails-bot:在配额/超额分配不足的情况下向派遣人员发出停止信号。
Comms-bot:超支/置换/班级变更命令通知。
注释:版本/服务窗口更改工作时间的权重/配额(之后取消支持)。
15)反模式
脱颖而出,没有SLO和遥测。
一个大池供所有人使用,没有隔离"嘈杂的邻居"。
没有上限的失控爆破→"扼杀"邻居。
缺少backpressure/队列 →雪球taymout。
忽略日志成本/egress是"安静"的预算泄漏。
没有季节性/高峰的固定配额→不可用或超支。
16)实施路线图(4-8周)
1.奈德。1-2:资源和服务清单;类分配(gold/silver/bronze);主要配额;基本的SLO。
2.奈德。3-4:启用SLI代理自动缩放;设置队列和后置压力;隔离Tier-0池。
3.奈德。5-6: FinOps报告(美元/日,配额,预算差额);warm-pools和彩绘滑板在高峰日。
4.奈德。7-8:计划者/Guardrails自动化,tenant内阁(配额/价值可见),季度评论公平和热点。
17)结果
资源分配不是一次性设置,而是嵌入在SLO,遥测和FinOps中的实时过程。当优先级正式化时,默认情况下,配额和限制(例如代码,隔离和弹性)以及决策得到指标和成本的支持,系统将始终保持高峰,保护关键漏洞,并且不会"耗尽"预算。