Hệ thống của chúng tôi bao gồm nhiều trang web .NET, thư viện lớp và cơ sở dữ liệu MSSQL. Chúng tôi sử dụng SVN để kiểm soát nguồn và TeamCity để tự động xây dựng đến một máy chủ thử nghiệm.Mẹo về quản lý phụ thuộc cho bản phát hành?
Nhóm của chúng tôi thường làm việc trên 4 hoặc 5 dự án cùng một lúc. Chúng tôi cố gắng thực hiện nhiều thay đổi trong một bản giới thiệu khổng lồ mỗi 2-4 tuần.
Vấn đề của tôi là theo dõi tất cả các phụ thuộc cho giới thiệu. Ví dụ:
Trang web A không thể phát trực tiếp cho đến khi chúng tôi triển khai Thư viện X của lớp B, được xây dựng dựa vào thư viện Trunk of Class C, cần cập nhật Config Y và Z và Database Update D, cần Migration Script E ...
Nó trở nên phức tạp hơn - như đảm bảo dự án của mỗi nhà phát triển thực sự tương thích với những người khác và đang xây dựng dựa trên cùng một phiên bản. Vâng, đây là vấn đề về quản lý cũng như vấn đề kỹ thuật.
Hiện nay giải pháp không tối ưu của chúng tôi là:
- một Bảng tính năng danh sách chưa đi vào vận hành chưa
- dựa vào bộ nhớ và trực giác của chúng tôi khi lập kế hoạch việc triển khai, cho đến khi chúng tôi khá chắc chắn chúng tôi đã nghĩ về mọi thứ ...
- sự kiện chạy khô trên môi trường Dàn dựng của chúng tôi. Đó là một dấu hiệu tốt nhưng chúng tôi thường không chắc liệu Staging có đồng bộ 100% với Live - một phần của vấn đề mà tôi hy vọng sẽ giải quyết hay không.
- một số tiền được trang trí vào ngày phát hành.
Cho đến giờ rất tốt, trừ đi một số cuộc gọi gần. Nhưng khi hệ thống của chúng tôi phát triển, tôi muốn một hệ thống quản lý phát hành khoa học hơn cho phép linh hoạt hơn, như có thể triển khai một sự thay đổi hoặc sửa lỗi đơn lẻ, an toàn trong kiến thức rằng nó sẽ không làm hỏng bất cứ thứ gì khác.
Tôi đoán giải pháp tốt nhất liên quan đến một số loại hệ thống đánh số phiên bản và có thể sử dụng công cụ quản lý dự án. Chúng tôi là một khởi nghiệp, vì vậy chúng tôi không quá nóng về tôn giáo gắn bó với các quá trình cứng nhắc, nhưng chúng tôi rất vui để bắt đầu, cung cấp nó không thêm chi phí nhiều hơn giá trị của nó.
Tôi rất muốn nghe lời khuyên từ các nhóm khác đã giải quyết vấn đề này.
Dự án nằm trong các thư mục riêng biệt trong một kho lưu trữ duy nhất. Một ví dụ về sự phụ thuộc lẫn nhau là trang web, trang web dành cho thiết bị di động và API của chúng tôi đều tham chiếu cùng một thư viện logic nghiệp vụ. Điều đó, cùng với một số dự án khác, tham khảo các thư viện tiện ích tương tự. Đồng ý rằng chúng tôi không hoàn toàn sử dụng CI, và tôi thích ý tưởng về các nhánh ổn định. Nhưng điều đó sẽ chăm sóc mã. Điều gì về cơ sở dữ liệu, cấu hình, kịch bản di chuyển, và các yếu tố khác? – realworldcoder
@Andrew: Tất cả điều này thuộc về bên cạnh mã của bạn vào repo svn của bạn. –