Resumen
Ansible® y Chef son herramientas open source de la comunidad para automatizar la TI. Ambas pueden simplificar las operaciones de TI y el trabajo de DevOps mediante la automatización de las tareas rutinarias, como la configuración y la preparación de los sistemas, la implementación del software y la gestión de las actualizaciones en muchos servidores o dispositivos del extremo.
Ansible es conocida por su facilidad de uso, la cual se debe a un enfoque más flexible y sin agentes que no requiere la instalación de software adicional en los objetivos de la automatización. En cambio, Chef utiliza un enfoque basado en agentes; es decir, se deben instalar sistemas de software adicionales en cada máquina. Otro aspecto clave que las diferencia es que Ansible utiliza YAML, un lenguaje de configuración basado en Python que los administradores pueden aprender a usar fácilmente, ya que está orientado a ellos; mientras que Chef usa Ruby, un lenguaje específico de dominio (DSL) pensado para los desarrolladores, el cual implica adquirir muchos conocimientos nuevos.
En este artículo se explican en detalle las similitudes y las diferencias entre Ansible y Chef.
Versiones con soporte de las herramientas open source más comunes de automatización
¿Qué lugar ocupan Ansible y Chef dentro del gran conjunto de herramientas de automatización? Ansible, Chef, Salt y Puppet son cuatro de las herramientas open source que más se utilizan para automatizar la TI. Si bien cada una de ellas utiliza un enfoque de automatización distinto, todas están disponibles como soluciones empresariales que ofrecen diferentes proveedores de software. Muchas empresas de TI utilizan más de una solución para distintos fines, o incluso las combinan.
- Red Hat adquirió Ansible en 2015, la cual está disponible como Red Hat® Ansible Automation Platform.
- Progress adquirió Chef en 2020, la cual está disponible en una serie de productos comerciales, entre los que se incluye Chef Enterprise Automation Stack.
- VMWare adquirió Salt, con el nombre comercial de SaltStack, en 2020 y la incluyó como parte de la cartera de productos de vRealize Automation, que recientemente cambió de nombre a VMware Aria Automation. En 2022, Broadcom adquirió VMware.
- Perforce brinda soporte para Puppet, la cual está disponible en una serie de productos comerciales, entre los que se incluyen Puppet Enterprise y Puppet Bolt.
Diferencias en los enfoques de automatización de la TI de Ansible y Chef
Ansible
Ansible es una aplicación de software open source de la línea de comandos para la automatización de la TI que está escrita en Python.Permite configurar sistemas, implementar software y organizar los flujos de trabajo avanzados para respaldar la implementación de las aplicaciones, las actualizaciones de los sistemas, la configuración y el funcionamiento de la red y mucho más. Red Hat Ansible Automation Platform es un producto basado en Ansible que se adquiere a través de una suscripción y ofrece varias funciones empresariales.
La fortaleza de Ansible proviene de su comunidad. Hasta la fecha (otoño de 2022 en el hemisferio norte), su repositorio principal de GitHub cuenta con miles de colaboradores y decenas de miles de otros repositorios que dependen de Ansible. AnsibleFest, su famosa conferencia de usuarios, forma parte de la Red Hat Summit anual, y se organizan encuentros de Ansible con frecuencia en todo el mundo. Esta comunidad de usuarios entusiastas pone de manifiesto la gran cantidad de especialistas en Ansible y colaboradores que posibilitan su integración sólida con otros proyectos populares de software. Los usuarios de Ansible pueden acceder a cientos de módulos y complementos que permiten ampliar sus funciones.
El diseño de Ansible se centra en la simpleza y la facilidad de uso. También prioriza la seguridad y la confiabilidad, ya que contiene pocos factores que se deben ajustar. Utiliza OpenSSH para el traslado (y otros medios de transporte y modos de extracción alternativos) y emplea un lenguaje que las personas pueden comprender, el cual permite a los usuarios comenzar a usar la herramienta rápidamente sin mucha capacitación de por medio.
Ansible utiliza los conceptos de nodo de control (el lugar donde se ejecuta) y nodos gestionados (los dispositivos que se automatizan, que suelen ser máquinas Linux® o Windows). Dado que no tiene agentes, puede comunicarse con los dispositivos sin la necesidad de instalar una aplicación ni un servicio en el nodo gestionado. Ansible Automation Platform puede distribuir trabajos de automatización en los nodos de ejecución mediante la tecnología conocida como malla de automatización.
Con los playbooks de Ansible, que son archivos escritos en YAML, un lenguaje comprensible para las personas, los usuarios de Ansible pueden organizar con precisión distintas partes de la infraestructura. Ansible utiliza un enfoque de programación procedimental (o imperativo), en el que se intenta conservar la configuración de la infraestructura de TI estableciendo los pasos para lograr el estado deseado.
Chef
Chef es una plataforma open source de automatización de la TI escrita en Ruby DSL que transforma la infraestructura en código. Tal como sucede con los playbooks de Ansible, Chef trabaja con definiciones reutilizables conocidas como cookbooks y recipes para automatizar la configuración, la implementación y la gestión de la infraestructura en las redes, ya sea en las instalaciones, en la nube o en un entorno híbrido.
A diferencia de Ansible, utiliza una arquitectura basada en agentes. Su servidor se ejecuta en la máquina principal, y el cliente Chef lo hace como agente en cada máquina cliente. Además, cuenta con un elemento adicional denominado estación de trabajo, el cual posee todas las configuraciones que se prueban y luego se extraen del servidor Chef principal a las máquinas cliente sin utilizar ningún comando. Dado que se necesita vasta experiencia como programador para gestionar las configuraciones que se extraen, el uso de Chef resulta más complejo en comparación con otras herramientas de automatización, incluso para los especialistas de DevOps con amplios conocimientos.
Terminología de la automatización
El término arquitectura basada en agentes, que se utiliza en Chef, hace referencia a un modelo de infraestructura y automatización que requiere la ejecución de sistemas de software específicos, denominados agentes, en los entornos gestionados. Es necesario instalar el agente y todas sus dependencias en cada nodo objetivo, lo cual implica que se deba contar con reglas y verificaciones de seguridad adicionales. Esto puede suponer un desafío a la hora de automatizar los objetos donde no puede ejecutarse o no está disponible el agente. Además, los agentes necesitan mantenimiento.
La arquitectura sin agentes que se utiliza en Ansible es una forma de automatizar y administrar los dispositivos de TI sin la necesidad de instalar agentes en los entornos gestionados. El software de control se conecta a las máquinas remotas mediante conexiones SSH y comienza a gestionarlas sin perder mucho tiempo en la configuración. Esta arquitectura elimina la necesidad de mantener un sistema de implementación luego de que se completa la etapa de configuración.
La gestión de la configuración es un proceso que busca mantener los sistemas informáticos, los servidores y el software en un estado deseado y uniforme. Garantiza que un sistema funcione como se espera a medida que se realizan cambios. Además, este proceso se puede automatizar para reducir los costos, la complejidad y el riesgo de que se cometan errores manuales.
Los términos DevOps y DevSecOps significan operaciones de desarrollo y desarrollo, seguridad y operaciones, respectivamente. Se trata de enfoques que abordan la cultura, la automatización y el diseño de plataformas, e integran la seguridad como una responsabilidad compartida durante todo el ciclo de vida de la TI. La similitud entre DevOps y DevSecOps radica en que siempre tuvieron el mismo objetivo: que la seguridad sea parte del enfoque de DevOps. Sin embargo, ahora muchas personas se refieren a este enfoque como DevSecOps para que su inclusión sea evidente.
YAML significa otro lenguaje de marcado más (o YAML no es un lenguaje de marcado), y se trata de un lenguaje de serialización de los datos que suele usarse para codificar archivos de configuración. Además, está diseñado para que las personas puedan comprenderlo fácilmente y utilizarlo con otros lenguajes de programación. YAML se basa en la notación de objetos JavaScript (JSON).
La solución de automatización preferida
Para elegir una solución de automatización, es necesario tener en cuenta no solo las funciones disponibles en la actualidad, sino también las perspectivas a largo plazo para la plataforma. Si bien tanto Chef como Ansible tienen gran capacidad de adaptación y ofrecen amplia interoperabilidad con las máquinas de control que se ejecutan en Linux y Unix y los nodos que pueden funcionar en Windows, Ansible se destaca por su comunidad open source activa y el respaldo que le brinda Red Hat.
También es habitual que las empresas utilicen varias soluciones de automatización. Ansible se conecta a un amplio ecosistema de integraciones compatibles y puede utilizarse para organizar muchas otras herramientas de automatización y gestión de la configuración. También permite automatizar los sistemas en los principales proveedores de nubes públicas, como Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, etc.
Si la comparamos con Chef, Ansible es la opción más elegida entre los usuarios que prefieren la sencillez, la facilidad de uso y las soluciones de automatización sin agentes. Además, cuenta con una comunidad extensa de colaboradores y asociaciones, su adopción está muy extendida en diversas áreas de TI, como la automatización de las redes y la infraestructura, y tiene gran reconocimiento por su integración con las demás herramientas.
Lea los comentarios de los clientes, los partners y los analistas sobre Ansible Automation Platform.
Red Hat marca la diferencia
Red Hat Ansible Automation Platform es un producto probado, con seguridad reforzada, que se obtiene a través de suscripciones, ofrece a las empresas soporte durante todo el ciclo de vida y se caracteriza principalmente por su tecnología open source. Ansible, su proyecto upstream, se beneficia de la experiencia y el conocimiento de los miles de colaboradores en todo el mundo.
La plataforma incluye varios elementos del proyecto upstream, más de 140 conjuntos certificados Red Hat Ansible Content Collections de más de 60 partners y herramientas de retorno sobre la inversión (ROI) como servicio que le permiten abordar la instalación, la configuración y el soporte de la automatización en su empresa sin incertidumbres. Crea una experiencia integral para los equipos interdisciplinarios y permite que los equipos de operaciones, los ingenieros y los desarrolladores de la automatización intercambien el contenido listo para usar.
Las funciones de Red Hat Ansible Automation Platform, como Red Hat Insights y el análisis de la automatización, brindan información accesible sobre el rendimiento de la automatización, para que pueda medir su impacto y supervisar o resolver los problemas con mayor precisión. La malla de automatización le permite ajustar la capacidad de control y de ejecución por separado, lo cual acerca la automatización a los extremos donde es necesaria, prácticamente sin tiempo de inactividad. Esto le permite obtener una experiencia más uniforme, desde el centro de datos hasta la nube y las ubicaciones del extremo de la red.
Ansible es una excelente opción para automatizar la TI sin agentes y de forma sencilla, y se destaca por su facilidad de uso, su flexibilidad y su gran comunidad de usuarios.
Informe de IDC: Ansible Automation Platform ofrece valor empresarial
De acuerdo con las investigaciones de IDC, las empresas que estandarizan sus operaciones con Ansible Automation Platform logran grandes mejoras en la eficiencia operativa de la TI, así como su velocidad y capacidad de ajuste, que se traducen en beneficios en promedio anual de USD 14,81 millones y un retorno sobre la inversión de 668 % en un período de tres años.