Wie können Sie Änderungen an Jenkins-Plugins testen, bevor Sie sie bereitstellen?


14

Wenn Sie jemals von einem Plugin-Upgrade gebissen wurden, das einige Funktionen beeinträchtigt hat, müssen Sie sich Gedanken über dieses Problem gemacht haben: Wie sollte die Upgrade-Richtlinie für Jenkins-Plugins lauten? Wie testen Sie Änderungen, bevor Sie sie bereitstellen?

Hat irgendjemand eine Testinstanz zum Testen der neuen Versionen gestartet oder beten Sie nur, dass ein Upgrade der Versionen nichts kaputt macht?


Meinen Sie die Teampolitik von Jeankins oder die Politik Ihrer Organisation?
Dan Cornilescu

Ich würde vor dem Upgrade einen Schnappschuss des Jenkins-Knotens machen und ihn einfach ausprobieren. Nach meiner Erfahrung war Jenkins noch nie eine wichtige Komponente. Wenn es 15 Minuten lang "down" ist, weil ein Plugin-Upgrade es kaputt gemacht hat, blockiert es normalerweise die Produktion in keiner Weise. Manuelle Eingriffe sind daher akzeptabel. Wenn dies bei Ihnen nicht der Fall ist (und Jenkins muss 100% HA sein), ist dies natürlich nicht der richtige Ansatz.
Assaf Lavie

@DanCornilescu meine Organisationsrichtlinie, da dies für unseren internen Jenkins-Server ist
Michael Pereira

@AssafLavie Das hängt stark von der Art und Weise ab, wie Jenkins ausgeführt wird: Standalone-Server, VM, Docker-Container, kubernetes Pods (unser Fall). Es ist möglicherweise nicht einfach, einen Schnappschuss des aktuellen Status zu erstellen, um ihn so wie er ist wiederherzustellen. In unserem Fall können wir das EBS-Volume klonen, auf dem sich die Jenkins-Daten befinden. Es ist jedoch ein manueller und zeitaufwändiger Prozess, um sowohl den Container als auch das Daten-Volume in einem bestimmten Zustand wiederherzustellen.
Michael Pereira

Hallo @MichaelPereira, wenn eine der beiden unten stehenden Antworten Ihre Frage gelöst hat, akzeptieren Sie sie bitte , indem Sie auf das Häkchen klicken. Dies zeigt der breiteren Community an, dass Sie eine Lösung gefunden haben, und verleiht dem Antwortenden und sich selbst einen gewissen Ruf. Es besteht keine Verpflichtung dazu. Wenn Sie das Gefühl haben, dass Ihre Frage nicht beantwortet wurde, wenden Sie sich bitte an die Autoren in den Kommentaren.
Richard Slater

Antworten:


4

Gemäß den Richtlinien des Unternehmens, in dem ich arbeite, haben wir Entwicklungs-, Pre-Prod- und Prod-Umgebungen (bei einigen Service-Entwicklern kann dies fehlen). Und der Pfad der neuen Version preprod-> tests-> validation-> prod.

In unserem Fall sind Jobs in Preprod schwer und komplex genug, um sicherzugehen, dass wir nicht beten müssen, wenn wir sie in Prod implementieren :)

Hinweis : Wir verwenden svn, um die Konfiguration zu verwalten und bereitzustellen. Wir nehmen keine Änderungen vor.


Wie pflegen Sie die Konfiguration der verschiedenen Jenkins-Server? Manuell?
Michael Pereira

Wir verwenden svn, um die Konfiguration zu pflegen und bereitzustellen. Wir nehmen keine Änderungen vor Ort vor
Romeo Ninov

Ich habe das Gefühl, dass dies die Frage nicht ganz beantwortet. In dieser Antwort wird beschrieben, wie Sie Änderungen bereitstellen, nicht jedoch, wie Sie die Änderungen über die Bereitstellungspipeline testen.
Jayhendren

2

Wir brauchten eine 100% HA Jenkins-Umgebung. Wir aktualisieren oft Plugins / Jenkins selbst.

Dies verursacht große Kopfschmerzen, wenn der Build nach dem Upgrade abbricht.

Der sicherste Weg, dies zu sortieren, ist ein Demo Jenkins-Setup. Wenn Sie mehrere Tomcat-Anwendungen auf demselben Computer verwenden, können Sie dies möglicherweise billiger erreichen.

Wir haben eine separate (Demo) VM erstellt und die Produktkonfiguration auf der Demo-VM repliziert. Bevor wir etwas ändern / aktualisieren, würden wir einen Schnappschuss von beiden VMs machen. Dann würden wir die Upgrades auf Demo VM testen. Wenn es gut funktioniert, ändern Sie es auf Prod.

Ich denke, Sie können die Community (wie SE / SO) nachschlagen, wenn jemand Probleme mit dem Plugin hat, für das Sie planen.


0

Ich würde immer manuell ein oder zwei Wiederholungen für mindestens ein aktuelles grünes (oder fast grünes) Label in jedem relevanten Projekt / Zweig auslösen, das das entsprechende Plugin verwendet, und prüfen, ob ich die gleichen Ergebnisse erhalte. Nur um auf der sicheren Seite zu sein.

Jede Ergebnisdiskrepanz muss untersucht werden, um festzustellen, ob sie durch das Plugin-Update verursacht wird oder nicht. Vielleicht noch ein paar Wiederholungen mit den alten und neuen Plugins?


Sicher kein Problem.
Dan Cornilescu

Aus früheren Erfahrungen sind meine Meinungen oft nicht so populär, deshalb neige ich dazu, das Rampenlicht zu meiden, wenn möglich :) Ich bin auch nicht mit den Mod-Werkzeugen vertraut. Aber es macht mir nichts aus zu helfen, besonders wenn es gebraucht wird - ich habe große Hoffnungen für diese Seite.
Dan Cornilescu
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.