GH GambleHub

Автоскейлінг і баланс SLA

Автоскейлінг і баланс SLA

1) Цілі та принципи

Мета автоскейлінгу - тримати SLO (латентність/доступність) при мінімальній вартості.
SLA↔SLO↔SLA Cost: не женемося за «нескінченним» масштабом - скейлимося в межах бюджету помилок і грошових лімітів.
Відкрита модель навантаження: приходять запити формують потік інтенсивності «λ»; система повинна забезпечити середній паралелізм'N ≈ λ × W'( закон Літтла), де'W'- середній час обслуговування.


2) Які метрики годяться в тригери

Технічні:
  • CPU/RAM/IO (proxy для насичення).
  • Конкурентність (in-flight) і pool wait.
  • p95/p99 application latency (реально відображає SLO).
  • RPS/arrival rate (швидкість заявок).
  • Черги: глибина, вік повідомлень, швидкість обробки.
Бізнес-SLI:
  • Частка успішних транзакцій ≤ T сек (депозити, чек-аут).
  • Час підтвердження операцій.

Рекомендація: комбінувати 2-3 сигнали: наприклад, latency + pools для сервісів і queue depth + age для воркерів.


3) Реактивний vs предиктивний скейл

Реактивний (feedback): HPA/ASG збільшують/зменшують репліки по факту. Просто, але є лаг.
Предиктивний (feed-forward): календар/минула телеметрія/маркет-івенти. Включає pre-warm: підняти N інстансів за Δ t до піку.
На практиці: гібрид - 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)`.
Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.