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).

Нажимая кнопку, вы соглашаетесь на обработку данных.