Load Balancers en GCP

Vamos a hablar sobre los tipos de Load Balancers que podemos encontrar en GCP.

¿Qué es un Load Balancer?

Basicamente, como su nombre lo indica, es un punto de entrada de trafico que tiene el principal rol de distribuir una carga entre una x cantidad de Backends. El objetivo principal es mejorar la disponibilidad, redundancia y eficiendcia de nuestros servicios/aplicaciones repartiendo la carga “por igual” entre todos nuestros servidores de backend.

Este es el concepto principal, pero a esto se agregan muchas caracteristicas que permitirán agregar valor a este rol pasando de ser una herramienta de proxy o traspaso de trafico a una herramienta robusta que se transformará una herramienta critica para la disponibilización de nuestros servicios.

¿Cómo Funciona un Load Balancer?

Cuando las solicitudes de usuarios o clientes llegan a una aplicación o sitio web, en lugar de dirigirse a un único servidor, se envían al balanceador de carga. Este, a su vez, se encarga de distribuir estas solicitudes entre un grupo de servidores disponibles según ciertas reglas o algoritmos predefinidos. Los algoritmos pueden basarse en varios factores, como la cantidad mínima de conexiones actuales, la capacidad de procesamiento del servidor, o incluso la latencia.

Caracteristicas principales de CLB en GCP:

Dirección IP Anycast Única:

Permite que una sola dirección IP anycast actúe como frontend para todas las instancias de backend a nivel mundial, facilitando el balanceo de carga entre regiones

Autoscaling

Capaz de escalar según el crecimiento de usuarios y tráfico.

Balanceo de Carga Definido por Software:

Se trata de un servicio gestionado, distribuido y definido por software para todo el tráfico.

Integración con Cloud Armor

Integración de seguridad que nos permitira protegernos de ataques de DDoS y protección avanzada.

SSL Offloading

Nos permitirá simplificar la administración de los certificados a nivel de LB y aplicaciones.

Categorización principal: L4 o L7

Balanceadores de Carga de Capa 4 (L4):

  • Operan en la capa de transporte del modelo OSI, tomando decisiones de enrutamiento basadas en direcciones IP y números de puerto.
  • Son capaces de manejar tráfico TCP, UDP y otros protocolos de capa de transporte.

Balanceadores de Carga de Capa 7 (L7):

  • Funcionan en la capa de aplicación.
  • Permite tomar decisiones de enrutamiento más sofisticadas basadas en el contenido de las solicitudes, como URL, cookies, o encabezados HTTP.
  • Son ideales para aplicaciones web complejas que requieren enrutamiento basado en comportamientos específicos de la aplicación.

Componentes principales de un Load Balancer

En este caso, esta sección de esta nota puede aplicar para la mayoría de las Nubes ya que, en general, todos los LB tienen estos componentes:

1. FrontEnd:

  • Se refiere a la configuración de punto de entrada de nuestro trafico (nuestro endpoint de acceso).
  • Puede ser una IP Publica o Privada (dependiendo si es interno o externo).

2. Backend:

  • Son los Targets finales del trafico.
  • El backend se refiere al grupo de servidores o instancias que reciben el tráfico distribuido por el Load Balancer.
  • Los servidores backend pueden estar organizados en uno o varios grupos de backend, dependiendo de las necesidades específicas.

3. Health Checks

  • Los chequeos de salud son pruebas automatizadas que el LB realiza regularmente para asegurar que los servidores del backend estén funcionando correctamente.
  • Normalmente, por cada ruta de trafico testearemos el tráfico es especifico de ese workflow.
  • Esto asegura que el tráfico solo se dirija a servidores que están funcionando adecuadamente.
  • Este punto es fundamental para el troubleshooting.

4. Reglas de Enrutamiento

  • Especialmente los que operan en la L7, pueden definirse reglas de enrutamiento para controlar cómo se maneja el trafico entrante. Esto puede basrse en caracteristicas como la URL, los HTTP headers, o los métodos de solicitud.
  • Estas reglas permiten implementar comportamientos complejos, como el balanceo de carga basado en contenido, Redirects, y Forwards de URL.

Tipos de Load Balancers en GCP

Los Load Balancers de GCP tienen diferentes tipos y subtipos. En general, varía la tecnología subyacente implementada: Maglev, Andromeda, Google Front Ends, and Envoy son los productos utilizados en el Backend de GCP para ejectuar los load balancers.

Maglev

  • Maglev se aplica en Passthrough Network Load Balancers, optimizando el manejo de tráfico a gran escala sin alterar la dirección IP original del cliente.

Andromeda

  • Andromeda, es utilizado en las VPC de Google y en los Internal Load Balancers HTTPs y TCP/UDP en redes privadas.

Google Front Ends (GFEs)

  • Google Front Ends (GFEs) se utilizan en External HTTP(S) Load Balancers y SSL Proxy Load Balancers, manejando el tráfico entrante de Internet y proporcionando seguridad y rendimiento en el borde de la red.

Envoy

  • Envoy se utiliza en Internal HTTP(S) Load Balancers, permitiendo enrutamiento avanzado y gestión de tráfico para microservicios dentro de la red interna.
LOAD BALANCER DEPLOYMENT MODE TRAFFIC TYPE NETWORK SERVICE TIER LOAD-BALANCING SCHEME † 
APPLICATION LOAD BALANCERS Global external HTTP or HTTPS Premium Tier EXTERNAL_MANAGED 
Regional external HTTP or HTTPS Premium or Standard Tier EXTERNAL_MANAGED 
Classic HTTP or HTTPS Global in Premium Tier Regional in Standard Tier EXTERNAL 
Regional internal HTTP or HTTPS Premium Tier INTERNAL_MANAGED 
Cross-region internal HTTP or HTTPS Premium Tier INTERNAL_MANAGED 
PROXY NETWORK LOAD BALANCERS Global external TCP with optional SSL offload Premium Tier EXTERNAL_MANAGED 
Classic TCP with optional SSL offload Global in Premium Tier Regional in Standard Tier EXTERNAL 
Regional external TCP Premium or Standard Tier EXTERNAL_MANAGED 
Regional internal TCP without SSL offload Premium Tier INTERNAL_MANAGED 
Cross-region internal TCP without SSL offload Premium Tier INTERNAL_MANAGED 
PASSTHROUGH NETWORK LOAD BALANCERS External Always regional TCP, UDP, ESP, GRE, ICMP, and ICMPv6 Premium or Standard Tier EXTERNAL 
Internal Always regional TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH, and GRE Premium Tier INTERNAL 

Deployment Modes

Tipos de Implemementaciones de LB en GCP:

Global

Este tipo de LB, puede distribuir el trafico entre varias regiones georgraficas al rededor del mundo. Permite que el tráfico sea dirigido a la región más cercana al usuario, reduciendo la latencia y mejorando la experiencia.

Regional

En este caso, distribuye el tráfico únicamente dentro de una región geográfica específica. Por ejemplo, podemos desplegar nuestro LB en US-CENTRAL1. Y el LB solo podrá interacionar con servicios dentro de esa region.

Clásico

El modo Clásico se asocia generalmente con los Load Balancers de primera generación o más tradicionales, que ofrecen una configuración más básica y menos características en comparación con las opciones más modernas. Aunque el término específico y sus características pueden variar entre proveedores de nube, generalmente, el modo clásico proporciona balanceo de carga a nivel de conexión sin capacidades avanzadas de enrutamiento basado en contenido o inspección de aplicaciones.

Cross-regional

A diferencia del Global, este tipo de LB solo podrá distribuir el trafico entre Regiones específicas. Un LB cross-regional podría dirigir el tráfico principalmente dentro de ciertas regiones mientras proporciona la capacidad de failover a otras regiones en caso de una interrupción.

Proxy vs. PassThrough

Dependiendo del tipo de trafico, tenes la opción de elegir entre Proxy Network LB o PassThrough LB.

¿Cuál es la diferencia?

Proxy LBs

Las conexiones de los clientes terminan en el LB. Luego se abre una nueva conexión desde el LB al backend. Los Application LB y los Proxy NLB funcioan de esta manera. Utilizan GFEs o Envoy.

Passthrough LBs

Estos LB no terminan las conexiones en el LB sino que reenvian el paquete al Backend sin modijficar el Source, Destinantion y puerto. Las conexiones terminan en el Backend y las respuesta del backend al cliente se realizan desde el Backend al cliente. Sin pasar por el LB. esto se llama Direct Server Return (DSR).

Los PLB deben utilizarse cuando es necesita preservar la IP del client en la información del paquete.

Premium vs Standard Tier en GCP

  • Tier Premium: El tráfico circula por una ruta de Alta Calidad del Global Backbone de GCP. Paquetes entran y salen por un “Google Edge Peering point” que asegura que la conexión se hará lo mas cerca del cliente posible. Todos los ILB siempre utilizan la Tier Premium, al igual que el ELB L7 Global solo puede configurarse en esta tier.
  • Tier Standard: El tráfico entra y sale de la red de Google en un punto de interconexión cercano a la región de Google Cloud donde se configura el balanceador. No todos los balanceadores de carga se pueden desplegar en Tier Standard.

Demo

Para ver como configurar un ILB podes seguir el Paso a Paso de la siguiente nota: Distribución de Tráfico con el Balanceador de Carga HTTP Interno de GCP


Posted

in

,

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.