¿Qué herramienta de gestión de la configuración debo utilizar? Puppet en primer plano
En los años noventa y principios de los noventa, las empresas no tenían que hacer malabarismos con demasiados servidores. El auge de la computación en nube ha cambiado todo eso. Tecnologías como la virtualización y los contenedores hacen que la infraestructura típica se componga de muchos servidores que alojan muchas aplicaciones.
Como siempre, un fuerte aumento de escala dificulta el mantenimiento de la visibilidad y el control. Con la proliferación de servidores en las infraestructuras empresariales, han surgido aplicaciones para ayudar a los profesionales de TI. Suelen denominarse herramientas de gestión de la configuración (CM) o de ejecución remota (RE). Estas herramientas permiten un proceso denominado infraestructura como código (IaC), en el que un entorno informático se representa mediante un lenguaje de programación, y la herramienta automatiza las acciones necesarias para adecuar el entorno a este estado. Esto puede incluir acciones como instalar software, añadir usuarios o particionar dispositivos de almacenamiento.
Hay cuatro grandes actores en este espacio: Puppet, Ansible, Chef y SaltStack. A continuación profundizamos en Puppet, la opción más popular, que puede utilizarse para despliegue masivo de KernelCare.
Lo bueno: Líder del mercado por una razón
Puppet existe desde 2005, y ha sido una herramienta de CM líder desde entonces. Puppet goza de la credibilidad que le confiere el hecho de haber sido utilizado por grandes nombres: Google, Reddit, Dell, PayPal, Oracle, Stanford, etc. Puppet es una aplicación de código abierto, desarrollada en Ruby, y funciona en todos los grandes sistemas operativos. PuppetLabs ofrece soporte y una versión comercial para empresas.
Puppet se compone tanto de una interfaz gráfica de usuario (GUI) como de una interfaz de línea de comandos (CLI) basada en Ruby. Puppet sigue una arquitectura cliente-servidor (o agente-maestro): usted instala Puppet Server en sus servidores, y luego instala Puppet Agent en los nodos requeridos. La interfaz web es muy intuitiva y facilita la gestión de nodos en tiempo real.
La gran ventaja de Puppet es su larga estabilidad. Puppet es una herramienta madura, sólida y bien desarrollada. La instalación es sencilla, y la arquitectura es tal que los errores de sintaxis son fáciles de triage-Puppet no compilará un catálogo si hay problemas. Puppet funciona bien con construcciones a nivel de shell, y las herramientas de automatización e informes de cumplimiento son sólidas. El soporte es generalmente bueno.
Puppet Forge, el enorme repositorio/biblioteca de Puppet, está bien organizado y facilita el manejo de los módulos. La calidad de los módulos es inigualable, y su equipo PuppetLabs marca aquellos que soporta o aprueba, lo que proporciona tranquilidad a los usuarios. Puppet tiene una gran comunidad de desarrollo, y el nivel de gestor de cuentas técnicas (TAM) de Puppet ofrece un soporte fantástico.
Lo malo: No es tan ágil como otros
El tamaño de Puppet es una de sus grandes fortalezas; pero también es una de sus debilidades. Pregunte en el mundo DevOps, y encontrará gente quejándose de que los errores pueden tardar en ser corregidos, y que las peticiones de nuevas características caen en saco roto. También encontrará gente quejándose de que PuppetLabs puede ser insistente al intentar persuadirle para que compre la versión comercial del producto.
También hay cierta lentitud técnica. Puppet requiere agentes en los nodos; estos agentes requieren paquetes, lo que puede causar problemas con los grupos de seguridad que requieren aprobación adicional. Puppet requiere infraestructura extra para soportar una verdadera automatización: por ejemplo, componentes extra a menudo necesitan ser instalados en el servidor de destino, incluso si ya no tienes masters. El uso de múltiples maestros hace que la ejecución remota sea más complicada. Todo esto puede suponer una sobrecarga.
El mayor obstáculo de todos es que mientras Puppet CLI actualmente soporta Ruby puro, se están moviendo hacia hacer su CLI compatible exclusivamente con su DSL interno (lenguaje específico de dominio). Esto supone una curva de aprendizaje muy pronunciada para los usuarios actuales y nuevos, e introduce problemas de escalabilidad.
En general
Para despliegues más pequeños, ágiles y a corto plazo, Puppet puede no ser la mejor opción. Los usuarios necesitan aprender el DSL de Puppet, ya que las tareas avanzadas normalmente requieren la entrada de la CLI. Esta base de código DSL puede crecer a medida que se escala, causando problemas.
Sin embargo, Puppet es ideal para despliegues más complejos o a largo plazo. Si está gestionando un conjunto fijo de máquinas, o gestionando la deriva de la configuración, es la mejor opción. Puppet es muy estable, y hay una buena razón por la que es la opción a la que recurren las grandes empresas capaces de gestionar una infraestructura heterogénea. La instalacion es suave, el rendimiento es robusto, y la comunidad de soporte es la mejor en el negocio.
Vea este vídeo para aprender a desplegar KernelCare
con Puppet:
Obtenga una prueba GRATUITA de 7 días con soporte de KernelCare
Lea más resúmenes de soluciones del equipo de KernelCare aquí:
- ¿Qué herramienta de gestión de la configuración debo utilizar? Chef en primer plano
- ¿Qué herramienta de gestión de la configuración (CM) utilizar? Enfoque en SaltStack
- ¿Qué herramienta de gestión de la configuración debo utilizar? Ansible en primer plano
- ¿Qué solución de gestión de vulnerabilidades elegir? Enfoque en Qualys
- ¿Qué solución de gestión de vulnerabilidades elegir? Rapid7 en el punto de mira
