Bagaimana Anda menguji perubahan pada plugin Jenkins sebelum menerapkannya?


14

Jika Anda pernah digigit oleh peningkatan plugin yang merusak beberapa fungsi, Anda harus memikirkan masalah ini: Apa yang seharusnya menjadi kebijakan peningkatan plugin Jenkins? Bagaimana Anda menguji perubahan sebelum menerapkannya?

Adakah yang memiliki contoh uji yang menjalankan pekerjaan palsu untuk menguji versi baru atau apakah Anda hanya berdoa agar peningkatan versi tidak merusak apa pun?


Apakah maksud Anda kebijakan tim Jeankins atau kebijakan (organisasi) Anda?
Dan Cornilescu

Saya akan mengambil snapshot dari node Jenkins sebelum memutakhirkan dan hanya mengujinya. Dalam pengalaman saya, Jenkins tidak pernah menjadi komponen kritis misi. Jika "down" selama 15 menit karena beberapa peningkatan plugin merusaknya, biasanya tidak memblokir produksi dengan cara apa pun, sehingga intervensi manual dapat diterima. Tentu saja, jika itu tidak berlaku untuk Anda (dan Jenkins harus 100% HA), itu bukan pendekatan yang tepat.
Assaf Lavie

@DanCornilescu kebijakan organisasi saya karena ini untuk server Jenkins internal kami
Michael Pereira

@ AssafLavie Itu sangat tergantung pada cara Jenkins menjalankan: Server mandiri, VM, buruh pelabuhan, pod kubernet (case kami). Mungkin tidak mudah untuk mengambil snapshot dari kondisi saat ini untuk mengembalikannya apa adanya. Dalam kasus kami, kami dapat mengkloning volume EBS yang menyimpan data Jenkins tetapi ini merupakan proses manual dan memakan waktu untuk mengembalikan volume kontainer dan data ke kondisi tertentu.
Michael Pereira

Hai @MichaelPereira jika salah satu dari dua jawaban di bawah ini telah menyelesaikan pertanyaan Anda, mohon pertimbangkan untuk menerimanya dengan mengklik tanda centang. Ini menunjukkan kepada komunitas yang lebih luas bahwa Anda telah menemukan solusi dan memberikan reputasi kepada penjawab dan diri Anda sendiri. Tidak ada kewajiban untuk melakukan ini. Jika Anda tidak merasa bahwa pertanyaan Anda telah dijawab, jangan ragu untuk terlibat dengan penulis dalam komentar.
Richard Slater

Jawaban:


4

Menurut kebijakan perusahaan tempat saya bekerja, kami memiliki lingkungan dev, preprod, dan prod (pada beberapa service dev dapat hilang). Dan jalur preprod-> tes-> validasi-> prod versi baru.

Dalam kasus kami, pekerjaan di preprod cukup berat dan cukup rumit untuk memastikan kami tidak perlu berdoa ketika menerapkannya di prod :)

Catatan : Kami menggunakan svn untuk mempertahankan dan mengirimkan konfigurasi. Kami tidak melakukan perubahan di tempatnya.


Bagaimana Anda mempertahankan konfigurasi server Jenkins yang berbeda? Secara manual?
Michael Pereira

Kami menggunakan svn untuk mempertahankan dan memberikan konfigurasi. Kami tidak melakukan perubahan di tempat
Romeo Ninov

Saya merasa ini tidak sepenuhnya menjawab pertanyaan. Jawaban ini menjelaskan bagaimana Anda menerapkan perubahan, tetapi tidak bagaimana Anda menguji perubahan melalui pipa penyebaran.
jayhendren

2

Kami membutuhkan lingkungan Jenkins 100% HA. kita sering meng-upgrade plugin / Jenkins itu sendiri.

Ini menyebabkan sakit kepala yang besar jika build rusak setelah upgrade.

Cara paling aman untuk menyortir ini adalah benar-benar mendapatkan setup Demo Jenkins. Mungkin pada mesin yang sama menggunakan beberapa aplikasi Tomcat, Anda dapat mencapai ini lebih murah.

Apa yang kami lakukan adalah membuat VM (Demo) yang terpisah dan mereplikasi pengaturan prod pada Demo VM. Sebelum mengubah / meningkatkan apa pun, kami akan mengambil snapshot dari kedua VM tersebut. Kemudian kami akan menguji peningkatan pada Demo VM. Jika berhasil, ubah di Prod.

Saya kira Anda dapat mencari komunitas (seperti SE / SO) jika ada yang menghadapi masalah dengan plugin yang Anda rencanakan.


0

Saya selalu secara manual memicu satu atau dua ulang pada setidaknya satu label hijau (atau hampir hijau) baru-baru ini pada setiap proyek / cabang yang relevan yang menggunakan plugin masing-masing dan memeriksa apakah saya mendapatkan hasil yang sama. Hanya untuk berada di sisi yang aman.

Perbedaan hasil apa pun perlu diselidiki untuk menentukan apakah itu disebabkan oleh pembaruan plugin atau tidak. Mungkin beberapa lagi berjalan kembali dengan plugin lama dan baru?


Tentu saja, tak masalah.
Dan Cornilescu

Dari pengalaman masa lalu pendapat saya sering tidak begitu populer, jadi secara umum saya cenderung menghindari sorotan jika memungkinkan :) Saya juga tidak terbiasa dengan alat mod. Tapi saya tidak keberatan membantu, terutama jika diperlukan - saya punya harapan besar untuk situs ini.
Dan Cornilescu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.