Câu hỏi
Có một lý do chính đáng KHÔNG sử dụng SVN cho các triển khai sản xuất, hay đây chỉ là một trường hợp sở thích cá nhân và không có trường hợp thực sự chống lại SVN?
Lý lịch
Nơi làm việc của tôi có văn hóa gắn thẻ phát hành trong SVN và sau đó triển khai các bản phát hành đó trực tiếp đến các máy chủ web khác nhau bằng cách sử dụng svn co
hoặc svn switch
bao gồm trực tiếp vào sản xuất.
Cá nhân tôi có một vấn đề với điều này vì tôi tin rằng nếu không sử dụng tập lệnh xây dựng và triển khai hoặc một số hình thức hoặc triển khai tự động, bạn sẽ mất các cài đặt môi trường tích hợp vì chúng không có giấy tờ. Tuy nhiên, nhiều hơn thế tôi có một cảm giác đặc biệt rằng có thể có một mối nguy hiểm tiềm ẩn khi làm điều đó đã bị bỏ qua, một cái gì đó vẫn chưa nuôi cái đầu xấu xí của nó.
Tôi đã đưa ra mối quan tâm của mình với các nhân viên hoạt động, những người chịu trách nhiệm triển khai mã cho các môi trường khác nhau của chúng tôi (dàn dựng, tiền sản xuất, sản xuất), v.v.
Biên tập:
Ý tôi là gì về xây dựng và triển khai:
Ví dụ: nếu nhà phát triển yêu cầu cài đặt web.config được thêm cho một môi trường cụ thể. Web.config thường không được giữ trong svn và vì vậy các tệp này được cập nhật thủ công mà không có bất kỳ dạng tập lệnh xây dựng tự động nào. Vì vậy, nếu họ bị mất hoặc OPS quên thêm một trường vào web.config để phát hành thì bạn có vấn đề.
Tập lệnh xây dựng sử dụng XMLPoke để tự động tạo web.config phù hợp với một môi trường cụ thể là lý tưởng ở chỗ bạn có tập lệnh có thể phiên bản, ghi lại tất cả các thay đổi cần thiết cho từng môi trường của bạn.
Phương pháp xây dựng và triển khai hiện tại
Đối với dự án đang được đề cập, nhà phát triển xây dựng bản phát hành theo cách thủ công, các dự án khác có bước xây dựng tự động với NANT hoặc MSBuild đều ổn.
Di chuyển cơ sở dữ liệu cho hầu hết các dự án là thông qua các tập lệnh DB hoặc tập lệnh di chuyển (Migrator.NET) hoặc Gói CMS.
CI thường được Team City thực hiện trên cơ sở mỗi lần đăng ký, chúng tôi có quy trình xem xét mã rằng tất cả các vé được thực hiện trong các chi nhánh và sau đó được xem xét để xác thực và tính chính xác / chất lượng trước khi kiểm tra vào thân cây (hoạt động tốt).
Tuy nhiên, việc triển khai mã thực tế luôn diễn ra khá nhiều thông qua SVN, thông qua việc kiểm tra một bản phát hành được gắn thẻ hoặc nói chung là SVN Switch. Đây là một điều gì đó kỳ quặc với tôi rằng chúng tôi đang sử dụng kho lưu trữ của chúng tôi như một phần của quy trình triển khai.
Cấu hình thường không thay đổi rất thường xuyên, điều duy nhất sẽ có trong các tệp cấu hình là thông tin cụ thể về môi trường. Mọi thứ khác đều nằm trong db.
Đừng hiểu sai ý tôi, nó hoạt động tốt. Tuy nhiên tôi muốn thử và thúc đẩy xây dựng và triển khai tự động. Tôi đã sử dụng điều này với Rails và Capistrano và cho các dự án cá nhân sử dụng Cygwin, Nant và SSH.
Quan trọng hơn, tôi sẽ cần các đối số hợp lệ rất cụ thể để khiến các đồng nghiệp của mình thay đổi sang sử dụng bản dựng và triển khai Tự động.
Hoặc KHÔNG có đối số hợp lệ thực sự nào chống lại việc sử dụng SVN cụ thể để triển khai vào sản xuất?