Este es un proyecto web escrito en Java.
Entonces, estoy escribiendo los scripts de compilación y despliegue. Para crear la compilación, usé hormiga. La construcción continua se realiza con Jenkins.
La construcción genera 3 artefactos diferentes:
- El archivo de guerra
- Una cremallera con diseños
- Un zip con imágenes
Hasta ahora, todo bien, pero ahora necesito escribir el script de implementación, que debería:
- Implemente la guerra (artefacto 1) en el tomcat que se ejecuta en el servidor 1
- Coloque el artefacto 2 en el servidor 1 en un directorio específico
- Coloque el artefacto 3 en el servidor 2 en un directorio específico
Estaba hablando con mi colega y me dijo que también deberíamos generar un artefacto (quizás deploy.xml ) que despliegue estos artefactos cuando se coloque en el servidor correcto.
Entonces habría otro script, que sería:
- Descargar los artefactos jenkins
- scp a cada servidor y coloque el deploy.xml allí
- invocar remotamente el deploy.xml
Lo que me incomoda un poco es el acto de tener el deploy.xml como un artefacto de compilación. La motivación detrás de esto sería poder realizar una implementación sin necesidad de tener acceso a los repositorios de VCS, por lo que una compilación sería autónoma, es decir, cualquier compilación podría entrar en producción solo con lo que generó Jenkins.
¿Dónde se deben colocar los scripts de implementación? ¿Deberían estar solo en el VCS o también deberían ser artefactos de construcción?
fuente
Respuestas:
Mi experiencia es que todo lo que se puede automatizar debería ser. Si puede describirlo como paso 1, paso 2, ... entonces debería ser un script. Si el script se puede generar automáticamente para incluir información específica de compilación (por ejemplo, etiqueta de revisión), entonces eso es lo que debe hacer. Esto no es por ser perezoso, sino por ser predecible y reproducible .
Nota bene: también debe tener un script de reversión generado automáticamente que pueda ser utilizado por cualquier persona del equipo en caso de que el script de implementación generado automáticamente se vuelva loco y manguee el servidor de producción.
fuente
Todo lo que Peter Rowell escribió es correcto, además quisiera:
Para el archivo de script de implementación
Para el proceso de implementación:
Esto depende más bien de su proceso y de cómo le gusta manejar las implementaciones.
fuente