HA (Alta Disponibilidad) de la Plataforma
La plataforma está diseñada para trabajar en situaciones de volumetrías elevadas dando siempre un servicio estable, reduciendo al mínimo los tiempos de indisponibilidad de la Plataforma.
Para ello, y tal y como se ha descrito previamente, la plataforma proporciona un diseño modular escalable horizontalmente, donde un cluster de servidores da respuesta a las peticiones que llegan a la Plataforma. Este clúster no solo aporta un rendimiento óptimo mediante el correcto dimensionamiento del despliegue, sino que además permite que los distintos nodos de cada componente se respalden los unos a los otros para proporcionar la alta disponibilidad necesaria en proyectos de esta índole.
El siguiente gráfico representa los porcentajes de disponibilidad típicos en función de la infraestructura desplegada para tratar las peticiones, para lo cual la plataforma está preparada y por tanto se adecuará dicha infraestructura para proporcionar el nivel de disponibilidad requerido.
Además, al tratarse de un despliegue elástico basado en Docker y Kubernetes, la Plataforma reaccionará automáticamente ante la detección de caída o bajo rendimiento en los módulos de ingesta y procesamiento, añadiendo nuevos nodos al cluster de forma dinámica y el proxy comenzará a redireccionar peticiones hacia ellos.
De esta manera, la robustez, alta disponibilidad y escalabilidad de la Plataforma queda garantizada en todos los niveles:
Ingesta masiva y constante de información.
Capacidad de procesamiento en tiempo real.
Almacenamiento y procesado batch de la información.
Monitorización del estado de los componentes
Basar el despliegue de la plataforma en contenedores y una plataforma CaaS ayuda a mejorar la Alta Disponibilidad de la plataforma, ya que el propio CaaS se encarga de comprobar la salud de los contenedores (servicios de la plataforma) y asegurarse de que están activos.
El propio CaaS ofrece monitorización activa y constante de los módulos de plataforma que lo precisen, asegurando la alta disponibilidad de los mismos. Esta monitorización es configurable dependiendo del protocolo del servicio a monitorizar.
Para TCP:
Para HTTP:
Configurados los healthchecks por módulo, es ahora el CaaS el que realiza la monitorización, comprobando el estado de salud de manera constante lanzando peticiones o heartbeats en los que se comprueba si el puerto (tcp) está a la escucha o la invocación al endpoint (http) devuelve el código indicado.
En caso de que la respuesta sea errónea, el orquestador del CaaS se encarga de re desplegar el servicio para asegurar que no haya pérdida del mismo, pudiendo tomar dos tipos de acciones principales:
Redesplegar el servicio completo.
Redesplegar el servicio sólo cuando haya al menos un número parametrizable de contenedores en estado correcto.