資源分配
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中的實時過程。當優先級正式化時,默認情況下,配額和限制(例如代碼,隔離和彈性)以及決策得到指標和成本的支持,系統將始終保持高峰,保護關鍵漏洞,並且不會「耗盡」預算。