advanced
Load balancers
Используйте load balancers для health checks, routing algorithms, connection draining, sticky sessions, TLS, failover и capacity planning.
Load balancers распределяют трафик по здоровым backend'ам. L4 (TCP) маршрутизируют по IP/port с минимальной инспекцией. L7 (HTTP) — по host, path, headers и могут вставлять cookies для stickiness.
Алгоритмы: round-robin, least connections, weighted, consistent hash (session affinity). Health checks убирают нездоровые targets; connection draining ждёт in-flight при deploy.
┌── App-1
Client → LB ─┼── App-2
└── App-3
Sticky sessions упрощают server-side state, но усложняют rolling updates — по возможности внешнее хранилище сессий.
На интервью: failover при падении зоны; health checks на лёгкий dedicated endpoint; idle timeout с app keep-alive.
Типовые ошибки: health check OK при мёртвых зависимостях; sticky на draining nodes; TLS без session reuse.
Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.
Чеклист:
- L4 vs L7 по потребностям маршрутизации.
- Health check тем же путём/стеком, что пользователи.
- Drain перед снятием инстансов.
- Внешняя сессия при horizontal scaling.