Hoy me gustaría compartir con vosotros mi opinión sobre un módulo de openstack muy poco conocido pero muy interesante sobre el cual llevo meses con mi equipo analizando y es Watcher. Este módulo nació en 2015 y su objetivo principal es la optimización de recursos analizando métricas de sistemas, procesamiento de eventos complejos y ejecutar planes de acciones. Ahora lo voy a desarrollar y váis a entender la importancia del mismo.
¿Como funciona el módulo?
Watcher nos presenta dos componentes clave y son los Goals y las Strategies. Como su nombre indica un Goal es un objetivo que queremos alcanzar y dentro de ese Goal tenemos las estrategias para conseguirlo. Os voy a dejar los Goals y Strategias que vienen predefinidos en Watcher aunque podremos generar los nuestros propios.
¿Que módulos he destacado y estoy analizando?
- En mi opinión uno de los recursos clave es Workload_balancing. Hemos comentado en algunos artículos que openstack no tiene sistemas de balanceo de carga en tiempo real, si que tiene a la hora de generar nuevos recursos los ejecuta en nodos menos cargados pero una vez guardados no balancea carga dinámicamente. Para esto tenemos el Goal en cuestión y permite tener varios tipos de estrategias:
- Workload Balance Migration Strategy: Migración de VM en un nodo de virtualización en función de la carga de CPU o RAM del mismo nodo a partir de un threshold dado.
- Storage Capacity Balnace Srategy: Migración de una VM de un pool de storage a otro en función de un threshhold en el storage. Esto nos sirve para evitar problemas o errores en capacidad pero tenemos que tener en cuenta que deberá migrar entre storage provocando paradas.
- Otro de los módulos clave en una Cloud Pública es Noisy neighbor o común mente conocido como vecino ruidoso. Esto nos permite definir una política de acción que permita ante la detección de una VM que cumpla con unas características de consumo en un nodo poder migrarlo o evacuarlo a un nodo de análisis
- También disponemos de otros Goals como la preparación de un nodo de mantenimiento permitiendo evacuar todas las VM de manera programada en un nodo.
Os comparto la documentación oficial donde podéis ver los distintos Goals y Strategies que nos proporciona nativamente Openstack para la optimización de vuestras Clouds:
https://docs.openstack.org/watcher/latest/strategies/index.html
¿Mi opinión?
Cada vez que profundizo más en la arquitectura de Openstack me doy cuenta que podemos llegar a optimizar y afinar la arquitectura y configuración de nuestra Cloud. Para una solución de Cloud Pública tener todos estos parámetros monitorizados, controlados y con planes de actuación nos permite ofrecer un servicio de calidad evitando problemas de rendimiento o problemas operativos en nuestros clientes y dar un servicio mas eficiente. Pese a que llevamos ya meses trabajando y preparando la integración productiva de este tipo de algoritmos creo que es algo muy poco habitual en la comunidad y que si conociéramos su potencial estaría prácticamente integrado como módulo Core de Openstack.