Comment testez-vous les modifications apportées aux plugins Jenkins avant de les déployer?


14

Si vous avez déjà été mordu par une mise à niveau de plugin qui a cassé certaines fonctionnalités, vous devez avoir réfléchi à ce problème: Quelle devrait être la politique de mise à niveau des plugins Jenkins? Comment testez-vous les modifications avant de les déployer?

Quelqu'un est-il allé jusqu'à avoir une instance de test exécutant des tâches factices pour tester les nouvelles versions ou priez-vous simplement que la mise à niveau des versions ne brise rien?


Vous voulez dire la politique d'équipe de Jeankins ou la politique de votre (organisation)?
Dan Cornilescu

Je prendrais un instantané du nœud Jenkins avant la mise à niveau et le testerais simplement. D'après mon expérience, Jenkins n'a jamais été un élément essentiel à la mission. S'il est "inactif" pendant 15 minutes parce qu'une mise à niveau du plugin l'a interrompu, il ne bloque généralement pas la production, donc une intervention manuelle est acceptable. Bien sûr, si ce n'est pas le cas pour vous (et Jenkins doit être à 100% HA), ce n'est pas la bonne approche.
Assaf Lavie

@DanCornilescu ma politique d'organisation car c'est pour notre serveur interne Jenkins
Michael Pereira

@AssafLavie Cela dépend fortement de la façon dont Jenkins fonctionne: serveur autonome, machine virtuelle, conteneur docker, pods kubernetes (notre cas). Il peut ne pas être facile de prendre un instantané de l'état actuel pour le restaurer tel quel. Dans notre cas, nous pouvons cloner le volume EBS contenant les données Jenkins, mais c'est un processus manuel et fastidieux pour restaurer à la fois le conteneur et le volume de données dans un état spécifique.
Michael Pereira

Bonjour @MichaelPereira si l'une des deux réponses ci-dessous a résolu votre question, veuillez envisager de l' accepter en cliquant sur la coche. Cela indique à la communauté plus large que vous avez trouvé une solution et donne une certaine réputation au répondeur et à vous-même. Il n'y a aucune obligation de le faire. Si vous ne pensez pas avoir répondu à votre question, n'hésitez pas à vous engager avec les auteurs dans les commentaires.
Richard Slater

Réponses:


4

Selon les politiques de l'entreprise où je travaille, nous avons des environnements de développement, de pré-production et de production (sur certains services, le développement peut être manquant). Et le chemin de la nouvelle version preprod-> tests-> validation-> prod.

Dans notre cas, les travaux en préprod sont assez lourds et complexes pour être sûrs que nous n'avons pas besoin de prier lors de la mise en œuvre dans prod :)

Remarque : Nous utilisons svn pour maintenir et livrer la configuration. Nous n'apportons pas de modifications sur place.


Comment maintenez-vous la configuration des différents serveurs Jenkins? Manuellement?
Michael Pereira

Nous utilisons svn pour maintenir et livrer la configuration. Nous n'effectuons pas de modifications sur place
Romeo Ninov

J'ai l'impression que cela ne répond pas tout à fait à la question. Cette réponse décrit comment vous déployez les modifications, mais pas comment vous testez les modifications via le pipeline de déploiement.
jayhendren

2

Nous avions besoin d'un environnement Jenkins 100% HA. nous mettons souvent à jour les plugins / Jenkins lui-même.

Cela provoque un gros mal de tête si la construction se casse après la mise à niveau.

Le moyen le plus sûr de trier cela est vraiment d'obtenir une configuration Demo Jenkins. Peut-être que sur la même machine utilisant plusieurs applications Tomcat, vous pouvez obtenir cela moins cher.

Ce que nous avons fait, c'est créer une machine virtuelle (de démonstration) distincte et répliquer la configuration du produit sur la machine virtuelle de démonstration. Avant de modifier / mettre à niveau quoi que ce soit, nous prendrions un instantané des deux machines virtuelles. Ensuite, nous testerions les mises à niveau sur Demo VM. Si cela fonctionne bien, changez-le sur Prod.

Je suppose que vous pouvez rechercher la communauté (comme SE / SO) si quelqu'un a rencontré des problèmes avec le plugin que vous prévoyez.


0

Je déclencherais toujours manuellement une réexécution ou deux sur au moins une étiquette verte récente (ou presque verte) sur chaque projet / branche concernée qui utilise le plug-in respectif et vérifie que j'obtiens les mêmes résultats. Juste pour être sur le côté sécuritaire.

Tout écart de résultat devrait être examiné pour déterminer s'il est causé par la mise à jour du plugin ou non. Peut-être quelques réexécutions supplémentaires avec les anciens et les nouveaux plugins?


Bien sûr pas de problème.
Dan Cornilescu

Par expérience, mes opinions ne sont souvent pas très populaires, donc en général j'ai tendance à éviter les projecteurs si possible :) Je ne suis pas non plus familier avec les outils de mod. Mais cela ne me dérange pas d'aider, surtout si c'est nécessaire - j'ai de grands espoirs pour ce site.
Dan Cornilescu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.