Una sola puerta

Proxy reverso

Como un load balancer, recibe todo. Pero no reparte por carga: mira cada pedido y lo manda al servicio que corresponde.

→ avanzar · S notas del orador · F pantalla completa · O vista general

Deslizá hacia abajo para recorrerla. Las simulaciones se activan al llegar a cada una.

Del LB al proxy

Mismo lugar, otra pregunta

/usuarios/ordenes/pagos/static

Los dos están adelante y reciben todo. La diferencia es qué miran para decidir a dónde va cada pedido.

Elige entre iguales, por carga. Las tres apps son copias: da lo mismo cuál atiende.

Elige entre distintos, por ruta. Mira la URL y la manda al servicio que sabe responderla.

Enrutamiento

Reglas: ruta → servicio

/usuarios/ordenes/pagos/static

El proxy tiene una tabla de reglas. La primera que coincide con la ruta decide el servicio. Cambiala en vivo.

Reglas del proxy
  • Sin regla para una ruta: 404 desde el proxy.
  • Regla hacia el servicio equivocado: el pedido llega, pero el servicio no conoce la ruta y el 404 lo da él.
  • También se puede enrutar por host (api. vs. www.) o por header (X-Version: 2).
Una sola puerta

El cliente conoce una sola dirección

el cliente siempre le habla a tienda.com

Atrás puede haber uno, cuatro o veinte servicios. El cliente no lo sabe: solo conoce al proxy.

Reglas del proxy
  • Partir un servicio en dos es agregar una regla: el cliente no cambió nada, y adelante no hubo que escribir código ni deployar.
  • Los servicios no quedan expuestos a internet: solo el proxy.
En la puerta

Lo que se resuelve una sola vez, adelante

/usuarios/ordenes/pagos/staticcachérespuestacifrado

Como todo pasa por el proxy, hay tareas que conviene hacer ahí y no repetirlas en cada servicio.

Proxy + LB

Primero la ruta, después la carga

cada cajita es una réplica, con los pedidos que atendió

El proxy elige el servicio por la ruta. Adentro de cada servicio hay varias copias, y entre ellas se balancea como en la clase anterior.

  • Muchos proxies hacen las dos cosas: enrutan y balancean.
  • Cada servicio escala por separado, según su propia carga.
Riesgos

Si se cae la puerta, se cae todo

👆 clic en un proxy para apagarlo

Todo el tráfico pasa por el proxy: es un punto único de falla.

  • Se mitiga con un esquema activo/pasivo: la pasiva queda en espera y toma el tráfico si la activa se cae (failover).
  • Suma un salto más de latencia a cada pedido.
  • Tentación peligrosa: meter lógica de negocio en el proxy.
Detalle

API gateway: un proxy reverso para APIs

NavegadorApp móvilsin tokenrespuesta401429404

Todo API gateway es un proxy reverso; no todo proxy reverso es un API gateway. Suma lo que importa con clientes de una API.

App móvil: se porta bien, 1 pedido/s y casi siempre con token.

  • Agregación: un pedido del cliente → varios servicios → una sola respuesta (espera al más lento).
  • BFF (backend for frontend): un gateway por tipo de cliente, web y móvil.
Resumen

LB, proxy reverso y API gateway

⚖️ Load balancer

  • Elige entre: copias iguales.
  • Por: carga.
  • Además: health checks.

🔀 Proxy reverso

  • Elige entre: servicios distintos.
  • Por: ruta (path, host, header).
  • Además: TLS, caché, compresión, ocultar el backend.

🔑 API gateway

  • Elige entre: servicios distintos.
  • Por: ruta + quién es el cliente.
  • Además: autenticación, límites por cliente, agregación, métricas de uso.

En la práctica: Nginx · HAProxy · Envoy · Traefik · Caddy — gateways: Kong · AWS API Gateway · Azure API Management · Apigee