¿Cuál es la diferencia entre Juju y Puppet / Chef?

80

He intentado preguntarle a terceros sobre las diferencias clave entre Juju y Puppet / Chef. Los terceros no están muy familiarizados con Juju y no pudieron decirlo. Simplemente declararon que los otros tienen mucho impulso y que sería difícil superar su liderazgo.

¿Las personas más cercanas a Juju estarían dispuestas a resaltar las ventajas de este software y por qué superará a Puppet / Chef en el ámbito de la administración de configuraciones?

marca
fuente

Respuestas:

48

Mark, esta es una gran pregunta, y fue la primera que pregunté cuando alguien me habló de Juju. Estas son algunas de las grandes diferencias.

  • Juju encapsula los servicios: un encanto define todas las formas en que el servicio necesita para exponer o consumir datos de configuración a / desde otros servicios. Cómo hace un encanto eso es asunto del encanto. Puede usar cualquier herramienta, desde scripts de shell hasta Chef en modo solo, para hacerlo.

  • Juju organiza el aprovisionamiento: juju realiza un seguimiento de los recursos que tiene disponibles y puede agregarlos o eliminarlos según sea necesario. Actualmente, estos recursos son máquinas AWS EC2, nubes OpenStack (como HP Cloud), Microsoft Azure, Joyent, máquinas de metal desnudo a través de MAAS y un proveedor local LXC / KVM.

  • Juju hace que compartir sea fácil: cualquiera puede aportar un encanto a Juju Charm Store ; Estos encantos son investigados y revisados ​​por la comunidad de Juju.

Aquí hay algunas otras comparaciones que la gente ha hecho desde la web:

SpamapS
fuente
1
Puppet se ocupa de describir recursos, aprovisionar máquinas virtuales y compartir módulos también. ¿Puedes explicar cómo Juju lo hace diferente o mejor, o resuelve un problema diferente?
Poolie
No tenía conocimiento del aprovisionador de Puppet Cloud en el momento de esa respuesta. Los módulos de títeres no tenían espacios separados por nombre la última vez que lo verifiqué y, por lo tanto, presentan problemas de uso compartido que pueden requerir que un usuario modifique el código de un módulo de títeres para usarlo.
SpamapS
Hay espacios de nombres en títeres . No he usado mucho Puppet, pero entiendo que los problemas ocurren principalmente cuando dos módulos realmente intentan administrar la misma cosa lógica. ¿Juju tiene alguna forma sistemática de prevenir eso?
Poolie
Los espacios de nombres en Puppet han sufrido cambios recientes para que sea más fácil compartir un módulo de marionetas autónomo que funcione. En el pasado, uno necesitaba el equivalente de variables globales para comunicarse entre dos módulos. Juju no trata de ninguna forma con la configuración de la instancia, es solo un facilitador para la orquestación, por lo que no, no evitará que dos encantos luchen sobre un solo archivo.
SpamapS
1
Hola @SpamapS, esto es sobre tu segundo punto (también conocido como Juju organiza el aprovisionamiento). En Puppet podemos definir relaciones usando "require", "notify", etc. ¿No podemos simplemente usar estas construcciones para el aprovisionamiento de orquestación? ¿O Juju ofrece un nivel diferente de semántica de orquestación?
Denis Weerasiri
33

(Descargo de responsabilidad: soy el fundador de Puppet y CEO de Puppet Labs)

No conozco el juju terriblemente bien, pero por lo que puedo decir, de alguna manera se sientan en diferentes capas. Puppet es excelente para administrar los comportamientos y las capacidades de las máquinas en sí, mientras que juju parece estar principalmente dedicado a hablar sobre conjuntos de máquinas y en gran medida explica cómo hacer que las máquinas se comporten de manera específica ante herramientas externas como Puppet o scripts de shell.

Nuestra estrategia con Puppet es construir la mejor pila desde cero, mientras que juju parece ser una capa específica de la pila y dejar otras capas a otras herramientas. Por lo tanto, si bien puede resolver todo el problema con Puppet (aunque a veces con un poco más de trabajo de lo que le gustaría), deberá integrar juju con otras herramientas para hacer mucho.

Realmente, juju parece una versión local de CloudFormation de Amazon, aunque sin el gráfico y tal. Entonces, se puede usar con Puppet, etc., pero no es un reemplazo para él.

Luke Kanies
fuente
66
No estoy seguro de si la palabra correcta es acribillar aquí ... eso es como decir paquetes despejando el software para autotools / scons / setup.py. Si los paquetes intentaran hacer cada paso de cada compilación, ¡no tendríamos paquetes!
SpamapS
9

Aquí hay otra versión de cómo Juju encaja con otras herramientas de automatización:

Soy responsable de Cloud Strategy en Canonical, la compañía detrás de Ubuntu y Juju. Juju no es un competidor de Puppet o Chef. Juju puede instalar Puppet o Chef y desde un Charm, la encapsulación de un servicio de Juju, puede llamar a sus módulos Puppet existentes o recibos de Chef.

Entonces, ¿qué es Juju? Juju le permite implementar, integrar y escalar instantáneamente su pila / servicios / aplicaciones de TI. Las ganancias instantáneas de TI sin los dolores. Ya sea a través de la línea de comandos o la GUI.

Entonces, Juju está más cerca de PaaS que de la herramienta Devops, ya que puedes construir tu nube (Juju es el instalador predeterminado de OpenStack de Canonical), la infraestructura que se encuentra encima (servidores web / app / db, Hadoop, MongoDB, etc.) pero la mayoría notablemente, Juju permite que las aplicaciones se implementen e integren inmediatamente (la relación adicional entre Wordpress y MySQL configurará automáticamente las tablas y los datos de Wordpress dentro de MySQL).

También los servidores de aplicaciones (java, php, node.js, scala, etc.) pueden trabajar junto con el control de versiones, por lo tanto, es posible la implementación y el escalado automático de sus aplicaciones. Por lo tanto, a diferencia de PaaS, no está limitado a una pila de software específica, sino que aún obtiene las ventajas de implementación instantánea, integración y escalado. Piense en ello como un PaaS o FlexiPaaS flexible que implementa, integra y escala al instante sus servicios de software sin ser limitado o bloqueado.

Fuente - Advertencia: se requiere inicio de sesión.

Jorge Castro
fuente
3

En los términos más simples, juju encapsula el descubrimiento de servicios, un almacén de valores clave y la gestión de la configuración. Puppet / chef, etc. son gestión de configuración pura.

Juju se basa en eventos y utiliza un "nodo de arranque" central para realizar un seguimiento de los eventos y organizarlos. Se puede hacer que Puppet y chef aparezcan basados ​​en eventos, sin embargo, generalmente solo se ejecuta el trabajo relevante en un horario.

Afaik, no puede ejecutar juju en un estado distribuido o sin agente y esto es posible con la mayoría de los sistemas de gestión de configuración.

En su mayor parte, las marionetas, etc., son idiomas específicos del dominio, mientras que juju es un sistema, no un idioma.

J0hnG4lt
fuente