¿Que es LBaaS?
LBaaS es el servicio de Openstack que nos permite disponer de un balanceador de carga como servicio.
Para quienes no sepan que es un balanceador de carga, es una
tecnología que permite disponer de un servidor virtual con una IP, este
servidor virtual está respaldado por un grupo de servidores reales que
proporcionan algún recurso a los clientes. La función del balanceador es
distribuir las peticiones de cliente a través del grupo de servidores,
esta distribución se puede hacer en base a varios algoritmos tal como:
- Round Robin: Selecciona servidores secuencialmente. Es el algoritmo predeterminado.
- Leastconn: Selecciona el servidor con el menor número de conexiones – se recomienda para las sesiones más largas.
- Source: Selecciona el servidor que se desea utilizar en función de un hash de la IP de origen, es decir, la dirección IP del usuario. Es un método para asegurar que un usuario se conecte siempre al mismo servidor.
- Sticky Sessions: Algunas aplicaciones requieren que un usuario continúe accediendo al mismo servidor de backend. Esta persistencia se logra a través de las sticky sessions, utilizando el parámetro appsession en el backend que lo requiera.
Otra características de los balanceadores es la detección de fallos
en un servidor y su capacidad de eliminar una ruta hacia este, cuando
esto sucede los clientes no se enteran del fallo en el servidor real ya
que se redirigen a otro servidor operativo.
En resumen, las funciones principales de los balanceadores de carga
son atender las solicitudes de los clientes mitigando los problemas de
cuellos de botella al repartir la carga entre varios nodos y evitar los
fallos cuando un servidor de un pool cae, aportando alta disponibilidad.
OpenStack LBaaS
Actualmente en Openstack la implementación de balanceadores de carga
corre a cargo del proyecto Neutron el cuál implementa la versión 2 de LBaaS. Este servicio permite configurar un balanceador que se ejecuta fuera
de las instancias y dirige el tráfico hacia ellas en función de la
configuración realizada.
El servicio OpenStack LBaaS lo presta un conocido software de código abierto como es HAProxy.
HAProxy proporciona balanceo de carga TCP/HTTP y es el que utiliza por
defecto OpenStack. No obstante, desde la v2 existe la opción de utilizar
una implementación alternativa de LBaaS llamada [Octavia] la cuál está totalmente integrada con Neutron y LBaaS v2.
A continuación podemos ver un vídeo demostrativo de LBaaS por gentileza de Rackspace:
Espero que os haya resultado interesante.
Hasta otra!
José Manuel Hernández
José Manuel Hernández