2009-08-31 39 views
9

Vì vậy, tôi có một trang web ASP.NET MVC mà tôi đang phát triển và không bao giờ có chiến lược triển khai tốt để thay đổi, các lược đồ cơ sở dữ liệu đặc biệt có thể liên quan đến nhiều bước và thời gian.Giúp tôi tìm ra một chiến lược triển khai

Dưới đây là các bước tôi đang tìm kiếm việc cần làm và muốn có các đề xuất về cách thực hiện hoặc các công cụ (tốt nhất là miễn phí). Vui lòng chỉ ra bất kỳ bước nào thiếu hoặc những điều tôi đang làm sai.

Edit: Tôi sẽ liệt kê các công cụ tôi đã sử dụng để giải quyết từng giai đoạn

  1. Kiểm tra tất cả các mã từ kiểm soát nguồn (chẳng đả)
  2. xây dựng gỡ lỗi và phiên bản relese. Phiên bản phát hành cần các chuỗi kết nối khác nhau trong web.config. (MSBUILD)
  3. Chạy tất cả các bài kiểm tra đơn vị
  4. Đối với mỗi trang (aspx) kết hợp tất cả các tệp JS được tham chiếu và mã nội tuyến vào một tệp. Tương tự với css
  5. Giảm thiểu các tệp JS và CSS.
  6. Sao lưu CSDL sống và dữ liệu
  7. triển khai sơ đồ cơ sở dữ liệu thay đổi để sống máy chủ
  8. upload tất cả các file có tính mới hoặc đã thay đổi đến máy chủ.
  9. Sao lưu tất cả mã và nguồn lưu trữ kiểm soát nguồn của tôi vào ổ đĩa ngoài và có thể trực tuyến.

Tôi may mắn là trang web của tôi sẽ không có bất kỳ khách truy cập nào từ 1 giờ sáng đến 4 giờ chiều để tất cả điều này có thể được thực hiện mà không cần phải dàn dựng máy chủ, v.v ...?

Tôi biết câu hỏi của mình dài nhưng điều này có thể sẽ giúp ích cho rất nhiều người.

Trả lời

2

MSBuild (hoặc có thể là bất kỳ công nghệ xây dựng nào khác) có lẽ là đặt cược tốt nhất của bạn để tự động hoàn thành tất cả các tác vụ này.

Bạn có thể sử dụng MSBuild để thực hiện từ 1 đến 4 mà không gặp vấn đề gì. Chúng tôi update our web configs with MSBuild using an XMLUpdate task và chúng tôi cũng chạy một số tập lệnh awk để tăng thêm một số mã được tạo của chúng tôi bằng cách sử dụng Exec task.

Đối với # 5 và # 6, bạn có thể muốn sử dụng Exec để thực thi một số tập lệnh để lấy các tệp sao lưu và chạy chúng chống lại các phiên bản sản xuất, tuy nhiên tôi không phải là quản trị viên SQL. nếu đó là cách tốt nhất, hoặc nếu đã có MSBuild nhiệm vụ cho việc này.

Để sao chép tệp thực, có nhiệm vụ Copy và có thể là các công việc khác, nhưng bạn có thể cần phải sử dụng xcopy hoặc tập lệnh tùy chỉnh.

Quản lý việc xây dựng sản phẩm của bạn là một công việc lớn, nhưng đó là lý do chính xác mà các công nghệ như MSBuild và Ant đã được tạo.

0

Tôi đã thử những điều sau đây cho việc triển khai trên máy chủ sản xuất, sử dụng Nant để xử lý logic:

1) Kiểm tra thư mục với xây dựng phiên bản mới nhất cho số sửa đổi.

Nếu một phiên bản mới hơn có sẵn:

2) Fetch tập tin với trang web được biên soạn và các kịch bản cơ sở dữ liệu (xem dưới đây).

3) Đưa trang web ngoại tuyến (thêm app_offline.htm).

4) Áp dụng tập lệnh cơ sở dữ liệu (xem bên dưới).

5) Đặt trang web trực tuyến (xóa app_offline.htm).


Liên quan đến việc thay đổi lược đồ cơ sở dữ liệu, tôi đã được lấy cảm hứng từ some posts by K. Scott Allen. Một phiên bản ngắn trong số này là:

1) Viết từng thay đổi mới vào giản đồ cơ sở dữ liệu (bảng, chỉ mục, dữ liệu hạt giống) và lưu trữ từng thay đổi mới trong các tệp riêng biệt (ví dụ: schema-001.0001.sql, schema-001.0002.sql, v.v.). Giữ các tệp này trong một thư mục riêng biệt, ví dụ: sql\schema.

2) Script misc. đối tượng (thủ tục được lưu trữ, chức năng, trình kích hoạt và chế độ xem) trong các tệp riêng biệt trong các thư mục riêng biệt, ví dụ: sql\procedures\uspGetProducts.sql, sql\procedures\uspUpdateProduct.sql, sql\functions\, sql\triggers\, sql\views\

3) Khi triển khai: a) Thả tất cả các misc. các đối tượng từ phần 2, b) áp dụng các thay đổi lược đồ từ phần 1 chưa được áp dụng trước, c) và cuối cùng tạo lại tất cả các misc. các đối tượng từ phần 2.

Các tập lệnh này có thể được triển khai tự động bằng ví dụ: Nant kịch bản trên máy chủ sản xuất.

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