Ya busqué en Google y leí el artículo "títere-o-al-chef-esa-es-la-pregunta" .
Me interesan los casos de uso, las implementaciones del mundo real en las que la gente había elegido uno u otro en base a problemas reales.
Estoy particularmente interesado en la integración con problemas de zapatero (sé que la marioneta es un enfoque estándar en esta dirección); ¿Alguien tiene alguna experiencia en la integración de zapatero-chef ?
Gracias por adelantado
Respuestas:
Para ser honesto, creo que esto se reduce a un punto de vista simple: Chef parece más una solución programática imperativa, el uso de ruby como el lenguaje instantáneamente me hace esperar que alguien lo haya portado a Python, como es la forma del mundo con todo Las ideas de Ruby.
Sin embargo, eso no es lo que quieres para este tipo de cosas. Desea hablar al vacío donde estará el sistema y declarar:
"Al invocar el puerto 80 desde el norte, el demonio llamado nginx. Su tarea es servir".
"Un usuario debe existir, su nombre debe ser chiggsy y debe ser uno de los poderosos en el grupo de la rueda".
"Levanta un muro de fuego, delgado en los lugares 80,443,8080"
Y así sucesivamente, aunque quizás en un lenguaje menos florido.
Puppet apoya ese paradigma mejor de la OMI. Hubiera usado cualquiera de los dos, no tenía preferencia, pero cuando se trataba de eso, la declaración me convenía más.
Marioneta.
fuente
He escrito una comparación detallada de Chef vs Puppet aquí: Puppet vs Chef: 10 razones por las que Puppet gana . Aunque no incluye casos de uso, espero que brinde algunos puntos de partida útiles para las personas que se preguntan qué herramienta elegir para la automatización de su infraestructura.
fuente
Perdón por la verbosidad. Use la herramienta que le facilita realizar su trabajo. Ese es el punto de la automatización, ¿verdad?
Historia: He usado títeres en conciertos pasados y el mes pasado pasé aproximadamente una semana tratando de acostumbrarme al chef para ver si cambiaría mi nuevo concierto.
No salté.
Jerga: Un problema desafortunado con ambos sistemas es la sobrecarga de jerga. (recetas, plantillas, nodos, roles, atributos, proveedores) Sigue y sigue. Encontré que Chef dio un paso más allá. (Cuchillo, Shef, etc.)
Madurez del código: basta con decir que el chef me pareció demasiado crudo. Se parece mucho a la marioneta en el marco de tiempo de .21 / .22 hace 3-4 años. Hay mucho flujo en marcha.
Por no decir que tampoco ha sucedido en títeres. (Re-descubrí muchas características geniales en títeres que solo han aparecido en los últimos años. - ¡coincidencia de expresiones regulares!)
Ruby: No me gustó toda la sobrecarga de rubíes en Chef. (necesitas gema y rastrillo antes de comenzar) Puedes usar rubí para resolver problemas complejos en títeres a la factora, pero no tienes que hacerlo si no quieres.
Complejidad: no me gustó el enfoque de GUI en chef. Me doy cuenta de que es bonito y la marioneta tiene una interfaz web en proceso como complemento, pero creo que debería estar más desacoplada.
Chef tiene una arquitectura mucho más compleja. Puede escalar mejor, pero hay muchos puntos potenciales de falla.
http://wiki.opscode.com/display/chef/Architecture
Chef necesita couchdb, rabbitmq y solr además del servidor API y la interfaz web.
Solo quiero una interfaz simple de cliente / servidor que no necesite un marco MVC además de un complejo almacén de datos detrás.
Puppet es mucho más simple en ese departamento. (por no decir que no hay muchos complementos para hacerlo más desordenado)
Realización del trabajo: al final, fui con lo que sabía. Después de pasar una semana de pirateo lateral y apenas poder hacer lo básico con Chef, pude volver a títeres y resolver mis necesidades básicas en unas pocas horas. (gestión de paquetes, gestión de usuarios, plantillas de archivos de configuración)
Advertencia sobre los módulos: Puppet tiene un cambio reciente al uso de "módulos" que son aportados por terceros. No terminé usando estos y encontré una amplia gama en su calidad. Asegúrese de mirar debajo de las sábanas y ver qué y cómo funcionan antes de profundizar en ellas.
fuente
Aquí hay una opinión: los hemos probado todos en nuestra empresa y preferimos títeres. Simplemente porque es fácil de usar.
fuente
Yo mismo he visto casos en los que administrar 1000 hosts con diferentes configuraciones es mucho más fácil con Puppet. De hecho, compañías como Google usan títeres para su despliegue.
La arquitectura de diseño principal de la marioneta es tal que funciona mucho mejor que otras si la configura de la manera correcta. Por ejemplo, agregar sus datos personalizados para sus configuraciones personalizadas, etc., los enlaces a continuación pueden proporcionar información http://slashroot.in/puppet-tutorial-installing-puppet-master-and-puppet-agent
http://slashroot.in/puppet-tutorial-how-does-puppet-work
fuente
Esto puede haber cambiado desde la última vez que lo probé, pero cuando estaba probando chef en RHEL no había una forma clara de instalarlo. Alguien había creado un repositorio yum que tenía todos los paquetes necesarios, pero terminó instalando 200 paquetes impares. Puppet, por otro lado, tiene un solo rpm (y un par de dependencias).
fuente