El pasado día 31 posiblemente fuiste uno de los afectados de la “caída” de Whatsapp, un servicio de mensajería con la friolera de 900 millones de usuarios en todo el mundo. Imaginad por un momento la infraestructura de esta compañía para dar servicio a tantos usuarios de manera simultánea; una auténtica barbaridad.En este artículo no os voy a hablar de la caída del coloso de la mensajería, pero sí quiero reflexionar sobre la importancia de eliminar los únicos puntos de fallo (SPOF del inglés Single Point of Failure) en toda arquitectura de sistemas y lo mal resuelto que está en la mayoría de empresas. Conoce todo sobre funciones de un consultor IT.
Single Point of Failure
Como hemos dicho antes, un SPOF es un punto único de fallo, en cristiano, un elemento dentro de tu plataforma que lleva a cabo una determinada función y no hay otro elemento que haga lo mismo, por lo que en caso de problemas con ese elemento, el servicio podría dejar de funcionar de manera parcial o total. Un SPOF puede ser desde un servidor a un elemento de red, como un router un firewall o un switch.
En la mente de toda persona que monta una arquitectura de sistemas está la de dar el servicio de la manera más optima posible y para ello buscas siempre una disponibilidad cercana al 100% (está claro que esto es imposible, no existen los sistemas perfectos, si un consultor te vende otra cosa, sospecha) y para ello es importante que eliminemos esos SPF en la medida de lo posible.
Por decirlo de alguna manera sencilla, lo contrario de un SPOF son los cluster o sistemas balanceados, que no son lo mismo ni mucho menos, pero ambos sirven para eliminar los SPOF y conseguir una disponibilidad del servicio más alta.
Sistemas Balanceados
Un sistema balanceado es una arquitectura en la que existe un elemento extra llamado balanceador (mejor dicho, al menos dos balanceadores, ya que estamos hablando de eliminar SPOF) que se encarga de repartir el tráfico que llega a él a través de un grupo de servidores con la misma función.
Este tipo de sistemas son usados principalmente en entornos web para repartir todas las peticiones http que llegan al sistema entre todos los servidores web configurados en el pool. Un sistema como éste nos permite continuar con el servicio en caso de caída de uno de los servidores de pool.
Sistemas Clusterizados
Este tipo de sistemas suele estar compuesto por nodos, que no son otra cosa que servidores que hacen una misma función pero a diferencia de los sistemas balanceados en el que los servidores del mismo pool no se hablaban entre sí, en un cluster sí lo hacen.
En esta comunicación entre nodos suelen intercambiar información sobre si un nodo está caído o no, si está funcionando con normalidad o si puede o no dar servicio. Cada producto implementa sus cluster en base a sus necesidades y es difícil generalizar en este punto.
Un cluster en su más puro sentido es un sistema que se ve como un todo y suele ser muy común para bases de datos o elementos de red como routers o switches.
En resumidas cuentas, un cluster te permite mejorar la disponibilidad de un servicio en particular, eliminado estos SPOF que tan mala prensa le estamos dando en este artículo. Al final, por mucho que nos pese como administradores de sistemas, el hecho de eliminar SPOF de tu plataforma es, como muchas otras cosas, una decisión de negocio. Si el coste de eliminar estos puntos de fallos es mayor que el dinero que dejas de ganar por una caída está claro que la existencia de esos SPOF está justificada, aunque tu reputación como compañía en ocasiones se vea dañada.