advanced
Горизонтальное масштабирование
Добавляйте инстансы безопасно: stateless сервисы где возможно, осознанный shared durable state и сигналы autoscaling.
Горизонтальное масштабирование добавляет инстансы сервиса вместо более мощной машины. Лучше работает при **stateless** app tier: сессии в Redis, загрузки в object storage, sticky sessions только если неизбежны.
Traffic → LB → [App₁, App₂, App₃] → Shared DB / Cache / Queue
| Требование | Зачем | |------------|-------| | Stateless handlers | Любой инстанс может обслужить запрос | | Shared durable state | БД, cache, object storage — не локальный диск | | Health checks | LB убирает плохие инстансы | | Autoscaling signals | CPU, RPS, queue depth, custom SLI |
Планируйте **rolling deploys** и математику connections: больше инстансов — больше pool connections к БД без pooler.
На интервью: stateless vs sticky sessions; когда проще vertical scale; lag autoscaling при скачках; trade-off data locality.
Типовые ошибки: in-memory sessions на нескольких pod; локальные file uploads; scaling до исправления синхронного DB bottleneck.
Компромисс — эластичная ёмкость против сложности распределённой системы и стоимости N машин.
Чеклист:
- Сессии и uploads снаружи инстанса.
- Autoscale по пользовательским сигналам где возможно.
- Deploy с новыми инстансами mid-traffic.
- Лимиты connections на инстанс.