Tại thời điểm nào bạn nên chuyển sang phát hành bản dựng?


17

Một trong những thực tiễn được nêu trong Giao hàng liên tục của Jez Humble là bạn nên xây dựng một gói và sau đó phát hành nó cho từng môi trường mà bạn triển khai, để bản triển khai và các vật phẩm đã được thử nghiệm nhiều lần trước khi đi vào sản xuất.

Tôi hoàn toàn ủng hộ ý tưởng này.

Mặt khác, các bản dựng chế độ gỡ lỗi cung cấp cho bạn các dấu vết ngăn xếp với số dòng rất hữu ích trong môi trường thử nghiệm, cũng như khả năng gỡ lỗi từ xa. Nhưng, bạn muốn gửi một bản phát hành để sản xuất.

Vì vậy, đối với những người tuân theo nguyên tắc đầu tiên, tại thời điểm nào bạn chuyển từ gỡ lỗi sang phát hành bản dựng?

Có phải trước khi triển khai lần đầu tiên vào môi trường thử nghiệm, việc tính toán chi phí mất chế độ gỡ lỗi có đáng để trả tiền để đảm bảo bạn đang kiểm tra ứng viên phát hành thực tế sớm không? Hoặc bạn có xây dựng lại tại một số điểm trong quy trình quảng cáo, hình dung rằng bạn sẽ tin tưởng vào quy trình xây dựng trên phần mềm? Hay bạn chỉ cần vặn tất cả và triển khai các phiên bản gỡ lỗi để sản xuất?

Lưu ý: Tôi biết điều này không thực sự áp dụng cho các ngôn ngữ được dịch bởi vì bạn thường có thể bật công tắc trong cấu hình thay vì thực hiện trong thời gian xây dựng.


Cảm ơn tất cả các câu trả lời của bạn. Thực phẩm tốt cho suy nghĩ. Nhưng tôi nghĩ rằng "Điểm thay đổi các bản dựng phụ thuộc chủ yếu vào chi phí tái tạo lỗi" được đánh dấu để xóa quá trình suy nghĩ của tôi.
pdr

Câu trả lời:


5

Vì vậy, đối với những người tuân theo nguyên tắc đầu tiên, tại thời điểm nào bạn chuyển từ gỡ lỗi sang phát hành bản dựng?

Chúng tôi chuyển sớm, khi mã nguồn có số phiên bản và được đẩy vào hàng đợi xây dựng Debian. Tuy nhiên, chúng tôi đang trong tình huống may mắn khi làm phần mềm khoa học với đầu vào và đầu ra được chỉ định rõ ràng và ít tương tác hệ thống, do đó, chi phí tái tạo một tình huống lỗi là khá thấp.

Đây cũng là câu trả lời chung của tôi: Điểm thay đổi bản dựng phụ thuộc chủ yếu vào chi phí tái tạo lỗi. Nếu giá trị này rất cao, tôi thậm chí sẽ gửi các bản dựng gỡ lỗi để kiểm tra khách hàng. Trong khi điều đó có nguy cơ thất bại trong xây dựng cho việc xây dựng sản xuất, điều này vẫn có thể rẻ hơn so với việc dành hàng tuần để tái tạo trường hợp thử nghiệm.


3

Vì vậy, đối với những người tuân theo nguyên tắc đầu tiên, tại thời điểm nào bạn chuyển từ gỡ lỗi sang phát hành bản dựng?

Ngay khi chúng tôi đến QA, chúng tôi chuyển sang phát hành bản dựng. Nhưng bất cứ khi nào chúng tôi xây dựng một bản phát hành, quá trình xây dựng của chúng tôi cũng xây dựng một phiên bản gỡ lỗi của các dlls. Điều này cho phép chúng tôi nhanh chóng thả các dll gỡ lỗi vào môi trường QA và nhận thêm thông tin nếu cần.

Cả hai phiên bản phát hành và gỡ lỗi của các dll đều được sao lưu và giữ trong vài năm.


2

Trong môi trường của chúng tôi, mã được triển khai tại nhiều trang web. Và do đó nên có bối cảnh khác nhau được áp dụng cho từng trường hợp triển khai. Thông thường, chúng tôi triển khai nó ở một nơi "ít rủi ro" hơn và xem trải nghiệm.

Việc triển khai này vẫn đang được sản xuất do đó, đây không phải là chế độ 'gỡ lỗi'. Nhưng nó cũng cho rằng thử nghiệm được thực hiện tốt.

Tất nhiên, với chế độ gỡ lỗi tắt, việc gỡ lỗi nhanh mã (trên trang web) có thể khó khăn. Nhưng nếu phát hành thất bại, sản xuất chuyển trở lại phát hành trở lại.

Tuy nhiên, chúng tôi cố gắng duy trì hoặc tạo một môi trường giống hệt nhau, có thể tái tạo một môi trường như vậy để kiểm tra lại. (Tôi biết điều này không phải là tầm thường để làm) nhưng đôi khi tất cả những gì chúng ta cần là tái tạo các giao dịch / đầu vào.

Vấn đề là, bao nhiêu sự cám dỗ, phát hành chế độ gỡ lỗi không nên được sản xuất. Mặc dù, tôi sẽ không nói đây là một quy tắc.

Một điều nữa là, bản phát hành vẫn được gọi là bản dùng thử cho đến khi nó được thiết lập (bằng cách chạy trong thời gian đáng kể) các cơ sở khác chưa chấp nhận.

Có một vài thực tiễn khác để đảm bảo rằng quá trình xây dựng bản thân nó không hoàn toàn bị lỗi. Xem điều này: Một cách đơn giản để cải thiện chất lượng phát hành trong môi trường RAD


2

Chúng tôi có các máy phát triển của chúng tôi được thiết lập để xây dựng các bản dựng gỡ lỗi. Nhưng một khi các nhà phát triển cam kết mã, một gói triển khai được tạo trong môi trường tích hợp liên tục của chúng tôi (TeamCity) và được xây dựng để phát hành. Vì vậy, bất cứ khi nào chúng tôi quyết định triển khai lên QA, chúng tôi sẽ lấy gói triển khai mới nhất từ ​​máy chủ CI và đẩy nó ra, để nó luôn được phát hành trừ khi nó nằm trên máy dev.

BTW, đối với một số ngôn ngữ, ngay cả khi xây dựng để phát hành, bạn vẫn có thể tạo các biểu tượng gỡ lỗi. Ví dụ, trong .NET, có cài đặt "chỉ pdb" cho phép tối ưu hóa nhưng vẫn tạo các tệp gỡ lỗi. Rõ ràng việc gỡ lỗi đối với phiên bản phát hành là khó khăn hơn vì nó không tương đương giữa các dòng, nhưng nó vẫn có thể hữu ích trong một vài lần.

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.