Làm thế nào để bạn kiểm tra các thay đổi đối với các plugin Jenkins trước khi triển khai chúng?


14

Nếu bạn từng bị cắn bởi một bản nâng cấp plugin đã phá vỡ một số chức năng, bạn hẳn đã nghĩ một chút về vấn đề này: Chính sách nâng cấp plugin của Jenkins là gì? Làm thế nào để bạn kiểm tra các thay đổi trước khi triển khai chúng?

Có ai đã đi xa đến mức có một phiên bản thử nghiệm chạy các công việc giả để kiểm tra các phiên bản mới hay bạn chỉ cầu nguyện rằng việc nâng cấp các phiên bản sẽ không phá vỡ bất cứ điều gì?


Bạn có nghĩa là chính sách nhóm của Jeankins hoặc chính sách (của tổ chức) của bạn?
Dan Cornilescu

Tôi sẽ chụp nhanh nút Jenkins trước khi nâng cấp và chỉ cần kiểm tra nó. Theo kinh nghiệm của tôi, Jenkins chưa bao giờ là một thành phần quan trọng trong nhiệm vụ. Nếu nó "xuống" trong 15 phút vì một số nâng cấp plugin đã phá vỡ nó, thì nó thường không chặn sản xuất theo bất kỳ cách nào, vì vậy can thiệp thủ công là chấp nhận được. Tất nhiên, nếu đó không phải là trường hợp của bạn (và Jenkins phải là 100% HA), thì đó không phải là phương pháp đúng đắn.
Assaf Lavie

@DanCornilescu chính sách tổ chức của tôi vì đây là cho máy chủ Jenkins nội bộ của chúng tôi
Michael Pereira

@AssafLavie Điều đó phụ thuộc rất nhiều vào cách Jenkins đang chạy: Máy chủ độc lập, VM, thùng chứa docker, vỏ kubernetes (trường hợp của chúng tôi). Có thể không dễ dàng để có một ảnh chụp nhanh về trạng thái hiện tại để khôi phục nó như hiện tại. Trong trường hợp của chúng tôi, chúng tôi có thể sao chép khối lượng EBS giữ dữ liệu Jenkins nhưng đó là một quá trình thủ công và tốn thời gian để khôi phục cả vùng chứa và khối lượng dữ liệu về trạng thái cụ thể.
Michael Pereira

Xin chào @MichaelPereira nếu một trong hai câu trả lời dưới đây đã giải quyết được câu hỏi của bạn, vui lòng xem xét chấp nhận nó bằng cách nhấp vào dấu kiểm. Điều này cho biết với cộng đồng rộng lớn hơn rằng bạn đã tìm thấy giải pháp và mang lại danh tiếng cho cả người trả lời và chính bạn. Không có nghĩa vụ phải làm điều này. Nếu bạn không cảm thấy rằng câu hỏi của bạn đã được trả lời, xin vui lòng tham gia với các tác giả trong các bình luận.
Richard Slater

Câu trả lời:


4

Theo các chính sách của công ty nơi tôi làm việc, chúng tôi có môi trường dev, preprod và prod (trên một số nhà phát triển dịch vụ có thể bị thiếu). Và đường dẫn của phiên bản mới preprod-> tests-> verify-> prod.

Trong trường hợp của chúng tôi, các công việc trong preprod rất nặng nề và phức tạp để đảm bảo chúng tôi không cần phải cầu nguyện khi thực hiện trong prod :)

Lưu ý : Chúng tôi sử dụng svn để duy trì và cung cấp cấu hình. Chúng tôi không thay đổi tại chỗ.


Làm thế nào để bạn duy trì cấu hình của các máy chủ Jenkins khác nhau? Thủ công?
Michael Pereira

Chúng tôi sử dụng svn để duy trì và cung cấp cấu hình. Chúng tôi không thực hiện thay đổi tại chỗ
Romeo Ninov

Tôi cảm thấy như thế này không hoàn toàn trả lời câu hỏi. Câu trả lời này mô tả cách bạn triển khai các thay đổi, nhưng không phải là cách bạn kiểm tra các thay đổi thông qua đường ống triển khai.
jayhendren

2

Chúng tôi cần một môi trường 100% HA Jenkins. chúng tôi thường nâng cấp plugin / Jenkins.

Điều này gây ra một cơn đau đầu lớn nếu bản dựng bị hỏng sau khi nâng cấp.

Cách an toàn nhất để sắp xếp việc này là thực sự nhận được thiết lập Demo Jenkins. Có thể trên cùng một máy sử dụng nhiều ứng dụng Tomcat, bạn có thể đạt được mức giá rẻ hơn này.

Những gì chúng tôi đã làm là tạo một VM (Demo) riêng biệt và sao chép thiết lập prod trên VM Demo. Trước khi thay đổi / nâng cấp bất cứ điều gì, chúng tôi sẽ chụp nhanh cả hai máy ảo. Sau đó, chúng tôi sẽ kiểm tra các bản nâng cấp trên Demo VM. Nếu nó hoạt động tốt, thay đổi nó trên Prod.

Tôi đoán bạn có thể tra cứu cộng đồng (như SE / SO) nếu bất kỳ ai gặp phải bất kỳ vấn đề nào với plugin bạn đang lên kế hoạch.


0

Tôi luôn luôn kích hoạt một hoặc hai lần chạy lại trên ít nhất một nhãn màu xanh lá cây (hoặc gần như xanh lục) gần đây trên mỗi dự án / chi nhánh có liên quan sử dụng plugin tương ứng và kiểm tra xem tôi có nhận được kết quả tương tự không. Chỉ cần được ở bên an toàn.

Bất kỳ sự khác biệt nào về kết quả sẽ cần được điều tra để xác định xem chúng có phải do cập nhật plugin hay không. Có lẽ một vài lần chạy lại với cả plugin cũ và mới?


Chắc chắn không có vấn đề.
Dan Cornilescu

Từ kinh nghiệm trong quá khứ, ý kiến ​​của tôi thường không phổ biến, vì vậy nói chung tôi có xu hướng tránh sự chú ý nếu có thể :) Tôi cũng không quen với các công cụ mod. Nhưng tôi không ngại giúp đỡ, đặc biệt là nếu cần - tôi có hy vọng cao cho trang web này.
Dan Cornilescu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.