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.