Despliegue de aplicaciones con Puppet


10

Soy nuevo en Puppet y aunque he estado usando sistemas * nix durante muchos años, nunca he trabajado como administrador de sistemas o en operaciones.

Actualmente estoy escribiendo manifiestos de Puppet para alojar un conjunto de aplicaciones web (PHP / MySQL / MongoDB, código en git). Claramente, Puppet necesita tener algún conocimiento de las aplicaciones reales porque configuraré un host virtual para cada una, pero no estoy seguro de si Puppet debería administrar cosas como la implementación del código y la creación de la base de datos.

¿Es Puppet una herramienta adecuada para la implementación de aplicaciones? Si no, ¿me puede recomendar una herramienta más apropiada?


3
Si viene a esto más adelante, todas las respuestas son buenas, no solo lea la que elegí como respuesta.
michaeltwofish

Respuestas:



9

Puppet se usa para implementaciones en muchas organizaciones grandes, pero no siempre es perfecto. Gran parte depende de su metodología de implementación. ¿Está implementando en muchas máquinas a la vez? ¿Haces implementaciones continuas?

Algunas organizaciones usan Puppet creando paquetes de sus implementaciones y luego haciendo que Puppet haga cumplir la política para estar en la versión correcta de ese paquete. Debido a que Puppet incluye el concepto de entornos, puede utilizar entornos para realizar implementaciones en etapas (por ejemplo, desarrollo, prueba, producción).

Otras organizaciones usan Puppet para organizar la implementación ya sea disparando un rsync, git checkout o algunas copias recursivas de archivos usando Puppet (aunque eso es bastante lento).

También hay otras herramientas bastante buenas disponibles para la implementación. He usado Whiskey Disk en el pasado (una simple herramienta de rubí) y me gustó mucho.

(Descargo de responsabilidad, trabajo en Puppet Labs)


Gracias. Las implementaciones se realizan en dos servidores equilibrados, que actualmente utilizan rsync manual.
michaeltwofish

4

Si desea crear un paquete a partir de su aplicación, puede buscar en FPM . El código está en GitHub .


Gracias por el consejo. No estamos creando paquetes en este caso, pero FPM parece interesante, y podemos usarlo para otras tareas.
michaeltwofish

4

Puppet no es la herramienta adecuada para implementar aplicaciones en mi opinión.

Yo uso Jenkins para construir e implementar nuestro código para probar y organizar.

Jenkins es originalmente un servidor de integración continua, pero es realmente flexible y modular. Existen muchos complementos para Jenkins que pueden ayudarlo a implementar sus aplicaciones:

Para nuestra aplicación, configuré Jenkins con Publish over SSH que copia un archivo WAR creado con éxito en el servidor de destino y luego ejecuto un script que hace la copia de seguridad y la implementación. ¡Espero que esto ayude!


Estamos usando Jenkins para CI, por lo que esta es definitivamente una opción interesante para explorar, gracias.
michaeltwofish


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.