Автоскейлинг және SLA теңгерімі
Автоскейлинг және SLA теңгерімі
1) Мақсаттар мен қағидаттар
Автоскейлингтің мақсаты - SLO-ны (жасырындылық/қолжетімділік) ең төменгі бағада ұстау.
SLA, SLO, SLA Cost: «шексіз» масштабты қуғындамаймыз - бюджет шегінде қателіктер мен ақша лимиттерін шектейміз.
Жүктеменің ашық моделі: келетін сұраулар 'λ' қарқындылық ағынын қалыптастырады; жүйе 'N ≈ λ × W' (Литтл заңы) орташа параллелизмін қамтамасыз етуі тиіс, мұнда 'W' - қызмет көрсетудің орташа уақыты.
2) Триггерлерге қандай метриктер жарамды
Техникалық:- CPU/RAM/IO (қанықтыруға арналған прокси).
- Бәсекелестік (in-flight) және pool wait.
- p95/p99 application latency (SLO нақты көрсетеді).
- RPS/arrival rate (өтінім жылдамдығы).
- Кезектер: хабарламалардың тереңдігі, жасы, өңдеу жылдамдығы.
- Табысты транзакциялардың үлесі ≤ T сек (депозиттер, чек-аут).
- Операцияларды растау уақыты.
Ұсыным: 2-3 сигналдарды біріктіру: мысалы, сервистер үшін latency + pools және воркерлер үшін queue depth + age.
3) Реактивті vs болжамды скейл
Реактивті (feedback): HPA/ASG факті бойынша репликаларды ұлғайтады/азайтады. Қарапайым, бірақ кешігу бар.
Болжамды (feed-forward): күнтізбе/өткен телеметрия/маркет-ивенттер. pre-warm қамтиды: Δ t шегіне дейін N инстанцияларын көтеру.
Практикада: гибрид - baseline (минимум), оқиғалар алдындағы болжамды буст, реактивті жеткізеді.
4) Скейл-саясат және тұрақтылық параметрлері
Target tracking: мақсатты метриканы сақтау (мысалы, CPU 60%).
Step scaling: асып кеткен кездегі сатылар (дәнекерлеуде агрессивті).
Stabilization window/cooldown: флаппингті тегістеу (мысалы, 60-180 сек).
Min/Max: төменгі және жоғарғы шектері; max - ДБ/провайдер лимиттері шеңберінде.
5) Деңгейлерді үйлестіру (сәулет каскады)
1. Периметр/API-шлюз - икемді, бірақ лимиттермен және backpressure.
2. Сервистер - HPA latency/RPS/pool wait.
3. Кезектер/воркерлер - KEDA/ASG хабарламалардың тереңдігі/жасы бойынша.
4. ДБ/кэш - абайлап масштабтау (реплика/шардалау), алдын ала.
Ереже: бағдарламаны «деректерді» көтере алмастан жылдам ұлғайтпаңыз.
6) Кезектер және Литтл заңы (воркерлерді қалай санау керек)
'λ' (msg/s) кірісі және 'W' (s) орташа өңдеу уақыты бар кезек үшін:- Қажетті параллелизм: 'N _ min ≈ λ × W'.
- Шыңдар/қалдықтар бойынша қормен: 'N ≈ λ × W × (1. 2–1. 5)`.