Equilibrio de carga en operaciones
1) Por qué el equipo operativo controla el equilibrio
El equilibrio de carga no es sólo una asignación de solicitudes. Se trata de una capa de gestión de riesgos y rendimiento: limitación del radio de falla, latencia predecible, economías de escala, aislamiento de «vecinos ruidosos», impacto directo en la ejecución de SLO y coste de incidencias.
2) Capas de equilibrio: de la red a las operaciones empresariales
L3/L4 (IP/puerto): simple y rápido (DSR, ECMP, IPVS, LVS). Ideal para servicios TCP/UDP, corredores, gateways.
L7 (HTTP/gRPC/WebSocket): enrutamiento por ruta/encabezados/metadatos; canario, A/B, geo- y política de cliente-aware.
GSLB/GeoDNS/Anycast: distribución mundial por regiones/RoR, teniendo en cuenta el retraso, la proximidad y la salud de las regiones.
Equilibrio intra-servicio: clientes con discovery de servicio (xDS, Consul, Eureka), balanceadores de cliente (gRPC pick_first/round_robin), mesh de servicio.
3) Algoritmos de distribución y cuándo aplicarlos
Round-Robin (RR): una opción básica simple con nodos homogéneos y consultas cortas.
Conexiones Least (LC): mejor con diferentes duraciones de consulta.
Least Request/Peak EWMA: reduce adaptativamente la latencia con peticiones y ruidos «largos».
Weighted RR/LC: toma en cuenta la potencia de los nodos o "cost guardrails'.
Consistent Hashing (Rendezvous/Maglev): para llaves sticky (usuario, escritorio/habitación, cesta), reduce la reconversión al escalar.
Power of Two Choices: buena aproximación de LC con una carga alta con menos telemetría.
Solicitudes Hedged/Retry Budgeted: consultas paralelas para ponerse al día con el presupuesto de Retray para p99.
4) Sesiones, estado y adhesividad
Sesiones Sticky (cookie/IP/ID): cuando la caché está habitada localmente o hay un contexto stateful (por ejemplo, una mesa en vivo en iGaming).
Contras: efecto hotspot, es más difícil evacuar los nodos.
Solución: adhesivos TTL cortos, llevando el estado a repositorios externos (Redis, session store), shared-nothing y event-sourcing donde sea posible.
5) Health-checks y protección contra flapping
Verificaciones de contenido L7 (asssert por cuerpo/título) en lugar de «200-como-éxito».
Muestras combinadas: TSD + NTTR + interno '/ready 'con diferentes temporizadores.
Debauns: n fracasos → excepción; m éxitos → regreso a la piscina.
Detección de errores: exclusión automática de nodos con alta tasa de error/latencia (ejection).
6) Políticas de Taimout, Retraye y backpressure
Retrés orientados a Budget: limitación del tiempo total del usuario (por ejemplo, 800 ms SLA → 2 retriables × 200 ms + stock).
Circuit Breakers: limitar las solicitudes/conexiones/errores simultáneos.
Quotas/Rate Limits: los límites de «per-tenant/per-IP/per-key» en el borde.
Server-side queueing: colas cortas o fallas con clara degradación para no «acelerar» la cola de latencia.
7) Equilibrio global y tolerancia a fallas
Geo-routing: por retraso (latency-based), por región del cliente, por salud.
Anycast + health-probes: convergencia instantánea de rutas cuando PoP cae.
Jerarquía de falleros: RoR→region→oblako; DR frío/caliente/caliente.
Traffic Partitioning: productos/aislamientos legales (países, proveedores de pagos, segmentos VIP).
8) Equilibrio de flujo y tiempo real
WebSocket/SSE/gRPC-stream: conexiones a largo plazo → monitoree conexiones/nodo, redistribución en scale-out.
Sticky por usuario o por habitación/mesa a través del hashing consistente.
Drain/PreStop Hooks: desahuciar correctamente las conexiones cuando se lanzan y el auto-skale.
9) Seguridad perimetral
Terminación TLS, HSTS, ALPN; mTLS para el este-oeste.
WAF/bot management hasta el equilibrador de aplicaciones.
DDoS-защита: rate-limits, challenge-/proof-of-work, upstream scrubbing.
Políticas como código (OPA/Kyverno/Envoy RBAC).
10) Observabilidad y SLO para el equilibrio
SLI: consultas acertadas, error/sec, p50/p95/p99 latencia, saturaciones (CPU/conn/epoll).
Métricas por backend: rate de solicitud, rate de error, latencia de EWMA → entrada a algoritmos.
Logs L7: Corleen con lanzamientos (anotaciones), banderas fich, canarios.
Alertas: por burn-rate presupuesto de errores y por síntomas del cliente (sintética externa).
11) Auto-Scaling y costo-eficiencia
HPA/VPA/KEDA: escala por RPS, colas, métricas personalizadas.
Weighted-routing a costo: las regiones/nubes más baratas ganan más peso con una carga normal.
Warm pools/calefacción: instancias precalentadas para no «atrapar» un inicio frío.
12) Gestión de cambios: canary, shadow, blue-green
Canary-routing: 1%→5%→25% con parada automática cuando se degrada por SLO.
Tráfico de sombras: duplicar solicitudes en una nueva versión sin responder al cliente (para validación).
Azul-Verde: conmutación instantánea de la tabla de enrutamiento/VIP; retroceso rápido.
13) Configuración y GitOps
Una única fuente de verdad: rutas, pesos, políticas de taimaut y límites - en el repositorio.
Promoción de la configuración por miércoles (dev→stage→prod) con la misma paipline.
Validación y pruebas de configuración: linternas, dry-run, simulación de tarjetas de tráfico.
14) Casos privados (dominios regulados)
Proveedores de pago/CUS: canales paralelos, cambio de calidad/tiempo de respuesta; proveedor de servicios de SLO.
Multi-jurisdicciones: geo-enrutamiento, política de contenido/límites por país.
segmentos VIP: pesas/canales individuales aumentados por SLO, «plumas» de degradación UX.
15) Anti-patrones
Un equilibrador como «único punto de falla».
Sticky por IP por NAT - clústeres «pegajosos» y distorsión del tráfico.
RR versátil en consultas pesadas/largas - crecimiento de las colas p99.
Retraídas sin presupuesto y sin idempotencia es una tormenta de peticiones.
Control de salud sólo TCP - «verde» cuando la aplicación no funciona.
Las sesiones adhesivas «eternas» sin TTL son imposibles de evacuar los nodos.
Las confecciones se ordenan manualmente, sin rugir ni promoción - deriva e incidentes.
16) Lista de verificación de implementación
- Nivel seleccionado: L4/L7/GSLB, objetivos y áreas de responsabilidad definidas.
- El algoritmo de distribución corresponde al perfil de carga (EWMA/LC/Hash).
- Hashing consistente donde se necesita un contexto stateful.
- Health-checks combinados, outlier-ejection, debouns.
- Taimauts/retraos/límites - como código, con presupuestos de tiempo.
- Observabilidad per-backend y sintética del cliente; alertas burn-rate.
- Canary/blue-green + shadow traffic; retroceso rápido.
- GitOps para configuraciones; dry-run y pruebas de rutas.
- Plan de DR y jerarquía de Fallover (RoR→region→oblako).
- Aislamiento de cohortes y proveedores VIP/legales.
17) Ejemplo de flujo arquitectónico
1. GSLB (latency-based) dirige al cliente a la región saludable más cercana.
2. Edge/L7 balanceador aplica WAF, TLS, rate-limits, canario 5%.
3. Service mesh distribuye por podas con LC + EWMA, excluyendo a los outliers.
4. Para mesas de tiempo real - consistent hashing por 'table _ id', sticky TTL 10 min.
5. El HPA escala frontends a través de RPS y colas; warm pool → sin inicio frío.
6. Observabilidad: dashboard p50/p95/p99, error-rate, saturations, burn-rate.
7. En degradación: nodos auto-eject, reducción de canario, cambio a proveedor de repuesto, reversión de versiones.
18) Resultado
El equilibrio de carga es una disciplina operativa que conecta la red, la aplicación, los datos y el SLO empresarial. El nivel correctamente seleccionado (L4/L7/GSLB), los algoritmos adecuados, los controles estrictos de salud, las políticas de temporización y retracción, la observabilidad y el control GitOps convierten el equilibrio de la «caja de ajustes» en un mecanismo de suministro de servicios sostenible y económico.