Kịch bản triển khai có nên là một tạo tác của bản dựng không?


13

Đây là một dự án web được viết bằng Java.

Vì vậy, tôi đang viết bản dựng và các kịch bản triển khai. Để tạo bản dựng, tôi đã sử dụng ant. Việc xây dựng liên tục được thực hiện với Jenkins.

Bản dựng tạo ra 3 tạo tác khác nhau:

  1. Hồ sơ chiến tranh
  2. Một zip với bố trí
  3. Một zip với hình ảnh

Cho đến nay, rất tốt, nhưng bây giờ tôi cần phải viết kịch bản triển khai, nên:

  • Triển khai chiến tranh (tạo tác 1) cho tomcat chạy trên máy chủ 1
  • Đặt tạo phẩm 2 vào máy chủ 1 trong một thư mục cụ thể
  • Đặt tạo phẩm 3 vào máy chủ 2 trong một thư mục cụ thể

Vì vậy, tôi đã nói chuyện với đồng nghiệp của tôi và ông nói rằng chúng ta cũng nên tạo một artifact (có thể deploy.xml ) mà triển khai những hiện vật khi được đặt tại máy chủ chính xác.

Vì vậy, sẽ có một kịch bản khác, đó sẽ:

  • Tải về các đồ tạo tác của jenkins
  • scp đến từng máy chủ và đặt tệp triển khai vào đó
  • gọi từ xa tệp XML

Điều khiến tôi hơi khó chịu là hành động có tệp triển khai như là một tạo phẩm xây dựng. Động lực đằng sau điều này là có thể thực hiện triển khai mà không cần có quyền truy cập vào kho lưu trữ của VCS, do đó, một bản dựng sẽ được khép kín, tức là mọi bản dựng chỉ có thể được sản xuất với những gì được tạo bởi Jenkins.

Các kịch bản triển khai nên được đặt ở đâu? Họ có nên chỉ ở VCS hay họ cũng nên xây dựng các tạo tác?


câu hỏi này là tốt / nó làm cho chúng tôi muốn cộng một / muốn tôi có thể trả lời
amara

Câu trả lời:


6

Kinh nghiệm của tôi là mọi thứ có thể được tự động hóa. Nếu bạn có thể mô tả nó như bước 1, bước 2, .... thì đó phải là một kịch bản. Nếu tập lệnh có thể được tạo tự động để bao gồm thông tin cụ thể về bản dựng (ví dụ: thẻ sửa đổi), thì đó là điều bạn nên làm. Điều này không phải vì mục đích lười biếng, mà vì mục đích có thể dự đoántái sản xuất .

Lưu ý: bạn cũng nên có một kịch bản hoàn nguyên được tạo tự động , có thể được sử dụng bởi bất kỳ ai trong nhóm trong trường hợp tập lệnh triển khai được tạo tự động trở nên điên rồ và làm hỏng máy chủ sản xuất.


3

Tất cả những gì Peter Rowell đã viết, là chính xác, ngoài ra tôi sẽ:

Đối với tệp kịch bản triển khai

  • nếu nó được viết bởi ai đó, nó cần phải được kiểm soát phiên bản.
  • nếu nó được tạo và có thể được tạo lại, nó thường không đi vào kiểm soát phiên bản.

Đối với quá trình triển khai:

  • Nếu bạn muốn các vật phẩm của mình được khép kín và nếu nó có thể được thực hiện dễ dàng, thì tệp có thể là một vật phẩm xây dựng, có nghĩa là nó được đóng gói với kết quả xây dựng theo cách có thể sử dụng để triển khai.
  • Mặt khác, việc triển khai ngày càng phức tạp hơn nên sớm hay muộn bạn sẽ cần một chương trình chuyên dụng (đọc một số mã) để triển khai và tạo tác Jenkins không còn tồn tại nữa.

Điều này khá phụ thuộc vào quy trình của bạn và cách bạn muốn xử lý việc triển khai.

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.