¿Cómo prueba los cambios en los complementos de Jenkins antes de implementarlos?

14

Si alguna vez te mordió una actualización de complemento que rompió algunas funciones, debes haber pensado un poco sobre este problema: ¿Cuál debería ser la política de actualización de complementos de Jenkins? ¿Cómo prueba los cambios antes de implementarlos?

¿Alguien ha llegado tan lejos como para tener una instancia de prueba ejecutando trabajos ficticios para probar las nuevas versiones o simplemente reza para que la actualización de las versiones no rompa nada?

Michael Pereira
fuente
¿Te refieres a la política del equipo de Jeankins o la política de tu (organización)?
Dan Cornilescu
Tomaría una instantánea del nodo Jenkins antes de actualizar y simplemente probarlo. En mi experiencia, Jenkins nunca ha sido un componente de misión crítica. Si está "inactivo" durante 15 minutos porque alguna actualización del complemento lo rompió, generalmente no bloquea la producción de ninguna manera, por lo que la intervención manual es aceptable. Por supuesto, si ese no es el caso para usted (y Jenkins debe ser 100% HA), no es el enfoque correcto.
Assaf Lavie
@DanCornilescu la política de mi organización, ya que es para nuestro servidor interno de Jenkins
Michael Pereira
@AssafLavie Eso depende en gran medida de la forma en que Jenkins se está ejecutando: servidor independiente, VM, contenedor acoplable, vainas kubernetes (nuestro caso). Puede que no sea fácil tomar una instantánea del estado actual para restaurarlo tal como está. En nuestro caso, podemos clonar el volumen de EBS que contiene los datos de Jenkins, pero es un proceso manual y lento para restaurar tanto el contenedor como el volumen de datos a un estado específico.
Michael Pereira
Hola @MichaelPereira, si alguna de las dos respuestas a continuación ha resuelto tu pregunta, considera aceptarla haciendo clic en la marca de verificación. Esto indica a la comunidad en general que ha encontrado una solución y le da cierta reputación tanto al respondedor como a usted mismo. No hay obligación de hacer esto. Si no cree que su pregunta haya sido respondida, no dude en comunicarse con los autores en los comentarios.
Richard Slater

Respuestas:

4

De acuerdo con las políticas de la empresa donde trabajo, tenemos entornos de desarrollo, preprod y prod (en algunos servicios pueden faltar desarrolladores). Y la ruta de la nueva versión preprod-> tests-> validation-> prod.

En nuestro caso, los trabajos en preprod son lo suficientemente pesados ​​y complejos como para asegurarnos de que no necesitamos orar cuando se implementan en prod :)

Nota : Usamos svn para mantener y entregar la configuración. No hacemos cambios en el lugar.

Romeo Ninov
fuente
¿Cómo mantiene la configuración de los diferentes servidores Jenkins? ¿A mano?
Michael Pereira
Usamos svn para mantener y entregar la configuración. No hacemos cambios en el lugar
Romeo Ninov
Siento que esto no responde la pregunta por completo. Esta respuesta describe cómo implementa los cambios, pero no cómo prueba los cambios a través de la canalización de implementación.
jayhendren
2

Necesitábamos un entorno 100% HA Jenkins. a menudo actualizamos los complementos / Jenkins en sí.

Esto causa un gran dolor de cabeza si la compilación se rompe después de la actualización.

La forma más segura de solucionar esto es obtener una configuración Demo Jenkins. Tal vez en la misma máquina que usa múltiples aplicaciones Tomcat, puede lograr esto más barato.

Lo que hicimos fue crear una VM separada (Demo) y replicar la configuración de productos en la VM Demo. Antes de cambiar / actualizar cualquier cosa, tomaríamos una instantánea de ambas máquinas virtuales. Luego probaríamos las actualizaciones en Demo VM. Si funciona bien, cámbielo en Prod.

Supongo que puede buscar la comunidad (como SE / SO) si alguien ha tenido algún problema con el complemento que está planeando.

Mihir Deshpande
fuente
0

Siempre activaba manualmente una o dos repeticiones en al menos una etiqueta verde (o casi verde) reciente en cada proyecto / rama relevante que usa el complemento respectivo y compruebo que obtengo los mismos resultados. Sólo para estar en el lado seguro.

Debería investigarse cualquier discrepancia de resultados para determinar si son causadas por la actualización del complemento o no. ¿Quizás algunas repeticiones más con los complementos antiguos y nuevos?

Dan Cornilescu
fuente
Claro, no hay problema.
Dan Cornilescu
Por experiencia pasada, mis opiniones a menudo no son tan populares, por lo que en general tiendo a evitar ser el centro de atención si es posible :) Tampoco estoy familiarizado con las herramientas de modificación. Pero no me importa ayudar, especialmente si es necesario: tengo muchas esperanzas en este sitio.
Dan Cornilescu