Jak testujesz zmiany we wtyczkach Jenkins przed ich wdrożeniem?


14

Jeśli kiedykolwiek ugryzła Cię aktualizacja wtyczki, która zepsuła niektóre funkcje, musisz pomyśleć o tym problemie: jakie powinny być zasady aktualizacji wtyczek Jenkins? Jak testujesz zmiany przed ich wdrożeniem?

Czy ktoś posunął się tak daleko, że ma instancję testową, która uruchamia fałszywe zadania do testowania nowych wersji, czy tylko modlisz się, aby uaktualnienie wersji niczego nie zepsuło?


Czy masz na myśli politykę zespołu Jeankinsa czy politykę (organizacji)?
Dan Cornilescu,

Zrobiłbym migawkę węzła Jenkins przed aktualizacją i po prostu przetestowałem. Z mojego doświadczenia wynika, że ​​Jenkins nigdy nie był kluczowym elementem misji. Jeśli „nie działa” przez 15 minut, ponieważ zepsuła go jakaś aktualizacja wtyczki, zwykle nie blokuje w żaden sposób produkcji, więc ręczna interwencja jest dopuszczalna. Oczywiście, jeśli tak nie jest w twoim przypadku (a Jenkins musi mieć 100% HA), nie jest to właściwe podejście.
Assaf Lavie,

@DanCornilescu moja polityka organizacji, ponieważ dotyczy to naszego wewnętrznego serwera Jenkins
Michael Pereira

@AssafLavie Zależy to w dużej mierze od sposobu działania Jenkinsa: samodzielny serwer, VM, kontener dokerów, kubernetes pods (nasz przypadek). Wykonanie migawki bieżącego stanu może nie być łatwe do przywrócenia w obecnym stanie. W naszym przypadku możemy sklonować wolumin EBS zawierający dane Jenkinsa, ale jest to ręczny i czasochłonny proces przywracania zarówno kontenera, jak i woluminu danych do określonego stanu.
Michael Pereira,

Cześć @MichaelPereira, jeśli jedna z dwóch poniższych odpowiedzi rozwiązała pytanie, rozważ zaakceptowanie go , klikając znacznik wyboru. Oznacza to szerszej społeczności, że znalazłeś rozwiązanie i daje pewną reputację zarówno użytkownikowi, jak i odbiorcy. Nie ma takiego obowiązku. Jeśli uważasz, że nie ma odpowiedzi na twoje pytanie, zachęcamy do kontaktu z autorami w komentarzach.
Richard Slater

Odpowiedzi:


4

Zgodnie z polityką firmy, w której pracuję, mamy środowiska deweloperów, produktów i produktów (w niektórych usługach deweloperów może brakować). I ścieżka nowej wersji preprod-> testy-> walidacja-> prod.

W naszym przypadku zadania w preprodukcie są wystarczająco duże i złożone, aby mieć pewność, że nie musimy się modlić, gdy wdrażamy w prod :)

Uwaga : Używamy svn do utrzymywania i dostarczania konfiguracji. Nie wprowadzamy zmian w miejscu.


Jak utrzymujesz konfigurację różnych serwerów Jenkins? Ręcznie?
Michael Pereira

Używamy svn do utrzymywania i dostarczania konfiguracji. Nie wprowadzamy zmian w miejscu
Romeo Ninov

Wydaje mi się, że to nie do końca odpowiada na pytanie. Ta odpowiedź opisuje sposób wdrażania zmian, ale nie sposób testowania zmian za pomocą potoku wdrażania.
jayhendren

2

Potrzebowaliśmy środowiska Jenkins w 100% HA. często aktualizujemy wtyczki / samą Jenkins.

Powoduje to duży ból głowy, jeśli kompilacja zepsuje się po aktualizacji.

Najbezpieczniejszym sposobem na posortowanie tego jest zainstalowanie wersji demonstracyjnej Jenkins. Być może na tej samej maszynie z wieloma aplikacjami Tomcat możesz osiągnąć to taniej.

Stworzyliśmy oddzielną (Demo) maszynę wirtualną i zreplikowaliśmy konfigurację prod na maszynie demonstracyjnej. Przed zmianą / aktualizacją czegokolwiek zrobilibyśmy migawkę obu maszyn wirtualnych. Następnie przetestowalibyśmy aktualizacje na Demo VM. Jeśli działa dobrze, zmień go w Prod.

Myślę, że możesz sprawdzić społeczność (np. SE / SO), jeśli ktoś napotkał jakiekolwiek problemy z wtyczką, którą planujesz.


0

Zawsze ręcznie uruchamiałem ponowne uruchomienie lub dwa na co najmniej jednej niedawnej zielonej (lub prawie zielonej) etykiecie na każdym odpowiednim projekcie / gałęzi, która używa odpowiedniej wtyczki i sprawdzam, czy otrzymuję te same wyniki. Po prostu być po bezpiecznej stronie.

Wszelkie rozbieżności w wynikach należy zbadać, aby ustalić, czy są one spowodowane aktualizacją wtyczki, czy nie. Może jeszcze kilka powtórzeń ze starymi i nowymi wtyczkami?


Pewnie nie ma problemu.
Dan Cornilescu

Z dotychczasowych doświadczeń moje opinie często nie są tak popularne, więc generalnie staram się unikać reflektora, jeśli to możliwe :) Nie jestem również zaznajomiony z narzędziami mod. Ale nie mam nic przeciwko pomaganiu, zwłaszcza jeśli jest to potrzebne - mam duże nadzieje na tę stronę.
Dan Cornilescu
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.