2009-03-03 19 views
6

Tôi thấy thời gian và thời gian này một lần nữa. Người quản lý kiểm tra UAT muốn xây dựng mới để sẵn sàng kiểm tra vào thứ Sáu. Một trong những câu hỏi đầu tiên được hỏi, trong cuộc họp thử nghiệm trước là "Tôi sẽ thử nghiệm phiên bản nào?" (đó là một câu hỏi công bằng để hỏi). Căn phòng trở nên im lặng, sau đó một người nào đó sẽ trở lại với, "Tất cả các hội đồng có phiên bản riêng của họ, chỉ cần nhấp chuột phải và nhìn vào các tài sản ...".Trong kiến ​​trúc phân tán, tại sao khó quản lý các phiên bản?

Từ điểm kiểm tra của người quản lý kiểm tra, điều này không được sử dụng. Họ muốn có phiên bản/nhãn/thẻ trên mọi thứ cho họ biết họ đang làm gì. Họ muốn thông tin này dễ dàng được cung cấp.

Tôi đã thấy các giải pháp nơi phiên bản của các vùng khác nhau của hệ thống được lưu trữ trong kho dữ liệu, sau đó được hiển thị trên hộp về ứng dụng chính. Vấn đề là, điều này cần phải được duy trì.

Bạn đã thấy những giải pháp nào xung quanh vấn đề này khi gặp sự cố?

EDIT. Hệ thống phân phối bao gồm VB6, ASP cổ điển, VB.Net, C#, Dịch vụ Web (qua các phòng ban, vì vậy phiên bản nào chúng tôi đang sử dụng?), SQL Server 2005.

Trả lời

3

Tôi nghĩ rằng vấn đề là bạn và người quản lý kiểm tra của bạn đang nói về hai điều khác nhau. Phiên bản lắp ráp rất tuyệt vời cho các hội đồng, nhưng người quản lý kiểm tra của bạn đang nói về một phiên bản cấp cao hơn, một "phiên bản hệ thống", nếu bạn muốn. Ít nhất đó là đọc của tôi về bài viết của bạn.

Những gì bạn phải làm trong các tình huống như vậy là ánh xạ tất cả các thành phần khác nhau của bạn vào một phiên bản hệ thống. Bạn nói điều gì đó dọc theo dòng "Phiên bản 1.5 của hệ thống bao gồm Foo.Bar.dll v1.4.6 và Baz.Qux.dll v2.6.7 và (v.v.)". Địa ngục, trong một hệ thống phân tán, bạn có thể muốn các phiên bản khác nhau cho từng dịch vụ của bạn, mà có thể trong và của chính chúng, gồm các phiên bản khác nhau của .dll. Bạn có thể nói, ví dụ: "Phiên bản 1.5 của hệ thống bao gồm dịch vụ Foo v1.3, bao gồm Foo.dll v1.9.3 và Bar.dll v1.6.9 và dịch vụ Thanh v1.9, bao gồm Baz.dll v1.8.2 và Qux.dll v1.5.2 và (v.v.) ".

Làm những việc như thế này thường là công việc của kiến ​​trúc sư phần mềm và/hoặc người quản lý xây dựng trong tổ chức của bạn.

Có một số công cụ mà bạn có thể sử dụng để xử lý vấn đề này không liên quan gì đến ngôn ngữ bạn chọn. Yêu thích cá nhân của tôi hiện tại là Jira, ngoài việc theo dõi lỗi, có hỗ trợ phiên bản sản phẩm và bản đồ tuyệt vời.

1

Có thể muốn xem this page giải thích một số cách để tích hợp phiên bản nhất quán vào quá trình xây dựng của bạn.

+0

bài viết hay, cảm ơn –

0

Không sử dụng đánh số phiên bản dựa trên công trình cho bất kỳ điều gì ngoài tham chiếu nội bộ. Khi người quản lý UAT hỏi câu hỏi bạn nói "Friday's *".

Bí quyết duy nhất sau đó là đảm bảo ghi nhãn xảy ra đáng tin cậy trong kiểm soát nguồn của bạn.

* chèn thích hợp datestamp/nhãn đây

0

Chúng tôi sử dụng .NET và Subversion. Tất cả các hội đồng ứng dụng của chúng tôi chia sẻ một số phiên bản, có nguồn gốc từ một số sửa đổi lớn và nhỏ được cập nhật thủ công và số sửa đổi Subversion (<major>.<minor>.<revision>). Chúng tôi có một nhiệm vụ prebuild cập nhật số phiên bản này trong một tập tin AssemblyVersionInfo.vb được chia sẻ. Sau đó, khi người thử nghiệm yêu cầu số phiên bản, chúng tôi có thể cung cấp cho họ số đầy đủ gồm 3 phần hoặc chỉ bản sửa đổi lật đổ. Các thư viện mà chúng tôi tiêu thụ không thay đổi hoặc thay đổi không liên quan đến người thử nghiệm.

+0

Điều đó có ý nghĩa và có thể bao gồm một nửa số thành phần trong hệ thống của chúng tôi. Hoạt động tốt trên các hệ thống có các thành phần trên các công nghệ khác nhau. Tôi sẽ chỉnh sửa câu hỏi của tôi để đề cập đến điều này. Cảm ơn. – Ferdeen

1

Có một số yếu tố khác nhau góp phần gây ra sự cố. Trên đỉnh đầu của tôi, đây là một:

Một trong những lợi ích của kiến ​​trúc phân tán là chúng tôi có tiềm năng lớn để tái sử dụng bằng cách tạo dịch vụ và xuất bản giao diện của họ dưới dạng này hoặc dạng khác. Điều đó có nghĩa là các bản phát hành của một ứng dụng máy khách không nhất thiết phải đồng bộ chặt chẽ với các bản phát hành của các dịch vụ cơ bản. Vì vậy, một phiên bản mới của một ứng dụng doanh nghiệp có thể được phát hành sử dụng cùng một dịch vụ đáng tin cậy cũ mà nó đang sử dụng trong một năm. Sau đó, chúng tôi sẽ áp dụng một thẻ phát hành duy nhất trong trường hợp này như thế nào?

Tuy nhiên, đó là câu hỏi công bằng, nhưng câu hỏi đòi hỏi câu trả lời không tầm thường phải có ý nghĩa.

+0

"Vì vậy, phiên bản mới của ứng dụng doanh nghiệp có thể được phát hành sử dụng cùng một dịch vụ đáng tin cậy cũ đã được sử dụng trong một năm" - dựa trên kinh nghiệm của tôi, các ứng dụng kinh doanh có xu hướng không đáng tin cậy, đặc biệt là trong môi trường phát triển. – Ferdeen

+0

@Ferds: Không hoàn toàn chắc chắn tôi hiểu ý nghĩa của bạn. Tôi không nghĩ chúng ta đang nói về môi trường dev ở đây. Có vẻ như tình huống đang xảy ra trong môi trường UA. Và tôi đã thấy tình huống chính xác này trong nhiều môi trường. –

+0

Điều đó gây hiểu lầm. Tôi có nghĩa là các môi trường khác nhau, đặc biệt là những môi trường không ổn định. Ngay cả trong các môi trường khác nhau mà bạn (phát triển, người dùng doanh nghiệp và người quản lý) cần phải biết phiên bản "doanh nghiệp" hiện tại là gì. – Ferdeen

Các vấn đề liên quan