Una gran cantidad de herramientas están apareciendo en el mercado para ayudar a los administradores de sistemas y a los DevOps a simplicar su trabajo y a automatizar procesos en cantidades ingentes de servidores.
Presentamos tres ejemplos de herramientas de este tipo:
- Puppet, con una gran madurez, open source, basado en ruby, con agentes en los servidores a gestionar. Se basa en un lenguaje de dominio propio que permite generar estados finales en los servidores por medio de “manifests”. Orientado a administradores de sistemas, da soporte de monitorización de los cambios. Cada media hora, el servidor se pone en contacto con los clientes y evalúa los cambios. Esto es posible gracias al “catalog”. Permite comprobar el estado final deseado de los servidores y, si no es correcto, cambia el estado para que sea el que queramos. Tiene soporte para Windows y Linux, pero si queremos AIX o Solaris, toca usar la versión Enterprise.
- Chef, con objetivos similares a Puppet, permite generar recipes basados en lenguaje ruby. Orientado más a desarrolladores, con experiencia en ruby, posee una curva de aprendizaje menor que la de Puppet, pero con un mayor control sobre el estado final del servidor. Posee una aproximación procedural, lo que facilita el control de los procesos hasta llegar al final del estado deseado.
- Ansible, con una clara diferencia con los demás, no necesita de un servidor maestro ni tampoco de agentes que se instalen en los nodos a gestionar. Se basa en una estación con el mapa de los servidores a gestionar y las credenciales SSH para su conexión. Basado en Python, usa playbooks para saber el estado final deseado de los servidores. El playbook es ejecutado en orden, lo que lo hace más simple de entender. Los playbooks están escritos en Yaml (Similar al XML), lo que permite una interpretación sencilla de las instrucciones alojadas en él.
La pregunta sería, ¿cuál elegir de los tres?
En principio, no hay un claro ganador. Si queremos automatizar tareas y monitorizar estados finales en granjas de servidores, gestionado por administradores de sistemas, Puppet es la solución más sencilla.
Si queremos un lenguaje más cercano a programadores, con objetivos similares a Puppet, orientado a desarrolladores, Chef es nuestro ganador.
Sin embargo, si queremos sencillez, tenemos máquinas sin agentes, sin ser un número excesivamente grande, orientado a orquestación, no a monitorización continua, Ansible es nuestro claro ganador.
Como grata sorpresa, y con un camino por delante prometedor, Ansible con su posibilidad de gestionar servidores sin necesidad de agentes está despuntando, aunque es muy joven todavía, ya forma parte de la familia RedHat desde 2015, y parece que cada vez más empresas lo están utilizando.
¿Cuál será vuestra apuesta de futuro? En CLEFormación podemos orientaros.