Como es bien sabido, pero no siempre tenido en cuenta, Microsoft Azure ofrece un SLA con un nivel del 99,95%.
Sin embargo conseguir este nivel de servicio, que suena estupendamente, no es tan simple ni automático, dado que se han de cumplir algunas condiciones, o mejor, especialmente una: se necesita implementar, y cito textualmente, “dos o más instancias en el mismo Conjunto de Disponibilidad”.
De la lectura de dicha sentencia se derivan dos elementos diferentes: dos instancias o máquinas virtuales diferentes, y un Conjunto de Disponibilidad (Availability Set en inglés)
Lógicamente el primer pensamiento que le viene al administrador de sistemas es que estamos, como poco, duplicando el coste de la infraestructura. Sin embargo esto no es cierto si ya estábamos considerando la necesidad de balancear cargas entre diversas máquinas. Es simplemente un problema de diseño.
Cuando se crean máquinas virtuales en Azure, estas disponen de unas ciertas garantías de supervivencia derivadas del hecho de que Microsoft asegura la realización de una serie de copias de dichas maquinas, que pueden estar replicadas local o geográficamente, garantizando su existencia frente a un fallo catastrófico de dicha máquina virtual.
Sin embargo, esto no certifica que podamos disponer de las máquinas durante los periodos de mantenimiento que establezca Microsoft. Si el fabricante tiene que hacer mantenimiento y un conjunto de servidores (que pueden estar en un mismo Rack o contenedor) se paran por algún motivo planificado, dejaremos de tener disponibilidad de nuestra máquina o servicio.

Tener una segunda, o tercera maquina equivalente, pongamos por ejemplo un servidor IIS tampoco asegura que este servicio no se detenga al mismo tiempo, por mucho que nos hayamos tomado la molestia de implementar un balanceador de carga.
La solución, que garantiza la disponibilidad y el SLA citado anteriormente es la utilización de Conjuntos de Disponibilidad que en esencia consiste en asociar varias maquinas (al menos dos) a un conjunto que cumple la condición fundamental de que no se detendrán todas las maquinas al mismo tiempo porque se van a colocar en contenedores o racks diferentes.

Sin embargo es importante recordar que un Conjunto de disponibilidad NO sustituye nunca al Balanceador de Carga, cuya función es repartir las cargas de trabajo entre un grupo de máquinas que realizan tareas similares, al margen de que estén o no todas en funcionamiento.
Dicho esto el siguiente paso es implementar las soluciones de una manera coherente, estudiada y práctica.
Referencias:
Manage the availability of Virtual Machines – Cynthia Nottingham
Azure Load Balancer overview – Sean Wheeler
Load balancing for Azure infrastructure services – Sean Wheeler
Descubre cómo SOGETI puede ayudarte a dar el salto a la nube.
Borja Cabellos es licenciado en Ciencias Químicas, experto en Sistemas de Seguridad y arquitecto de infraestructuras IT, con más de 20 años de experiencia en proyectos IT orientados a negocio, especializado en tecnologías Microsoft y en la prestación de servicios de gestión en proyectos informáticos de diversa índole tecnológica y en diversos sectores como energía, defensa y gobierno, dentro de SOGETI España.
0 comments on “Conjuntos de Disponibilidad y Balanceo de Carga”