2008-09-15 33 views
6

Chúng tôi hiện đang triển khai các ứng dụng web bằng cách tạo cơ sở dữ liệu và chạy tập lệnh SQL thông qua trình phân tích truy vấn. Sau đó, chúng tôi sao chép đầu ra từ "trang web xuất bản" và thiết lập trang web đó trong IIS.Điều gì có thể là cách tốt để triển khai các ứng dụng Web ASP.Net?

Chúng tôi đã thấy websetup trong studio trực quan, nhưng phần đó dường như được ghi lại một cách mỏng manh. Ví dụ, chúng tôi không rõ làm thế nào để yêu cầu người dùng cho IP và mật khẩu của máy chủ SQL. Chúng tôi cũng có xu hướng để các trang web được triển khai theo cách này xuất hiện dưới các thư mục như http://example.com/project, thay vì chỉ http://example.com.

Sau đó, có vấn đề với AJAX.Net không được cài đặt hoặc một số hoặc bản vá khác không được áp dụng.

Cho đến nay, chúng tôi có quyền truy cập vật lý vào máy chủ. Khá sớm mặc dù chúng tôi sẽ được vận chuyển CDROMs. Sự cân bằng thực tế giữa can thiệp thủ công và tự động hóa là gì?

Trả lời

7

Tránh triển khai Visual Studio và tự động hóa càng nhiều càng tốt. Các dự án triển khai Web và NAnt có thể là bạn của bạn!

Tóm lại, thiết lập triển khai của chúng tôi:

  1. Chúng tôi sử dụng RedGate SQL sự khác biệt giữa kịch bản dev và cơ sở dữ liệu trực tiếp.

  2. Tệp xây dựng NAnt gọi MSBUILD để xây dựng dự án triển khai web (.wdproj), nén lên ứng dụng web thu được kết quả (cùng với tập lệnh thay đổi SQL) và sau đó tải tệp zip lên máy chủ.

  3. Ở phía máy chủ, có một tệp xây dựng NAnt khác có ứng dụng ngoại tuyến, sao lưu cơ sở dữ liệu, sao lưu trang web. chạy tập lệnh thay đổi SQL, giải nén phiên bản mới và đưa ứng dụng trực tuyến lên.

Bước 3 thường chạy "thủ công" (một lần nhấp đúp), nhưng đôi khi được lên lịch vào đêm khuya. Bạn có thể làm chính xác như vậy từ một CDROM, hoặc thậm chí viết một ứng dụng Windows Forms khá nhỏ như một trình bao bọc.

Rất vui khi cung cấp chi tiết về tập lệnh NAnt nếu bạn quan tâm.

+0

Bạn có thể xem các tệp NAnt của mình không? –

+0

Nếu có thể, vui lòng cho chúng tôi xem các tệp NAnt. Cảm ơn. – codegasm

2

Bạn đã thử sử dụng dự án Web Deployment chưa? Có hỗ trợ cho VS 2008 cũng bây giờ ..

+1

web không giúp tôi đồng bộ hóa cơ sở dữ liệu. Điều tốt về dự án triển khai web là nó phát hiện ra nhiều lỗi hơn trong quá trình xây dựng. –

+0

Cảm ơn phản hồi. Tôi sẽ giữ bài đăng ở đây. Có thể hữu ích cho người khác. –

0

Tôi triển khai hầu hết các ứng dụng ASP.NET cho máy chủ Linux.Dưới đây là quy trình làm việc tiêu chuẩn của tôi:

  • tôi sử dụng một kho lưu trữ mã nguồn (như Subversion)
  • Trên máy chủ, tôi có một kịch bản bash nào sau đây:
    • Kiểm tra ra mã mới nhất
    • Liệu một xây dựng (tạo ra DLL)
    • lọc các tập tin xuống yếu tố cần thiết (loại bỏ file mã ví dụ)
    • Backs lên cơ sở dữ liệu
    • Triển khai các tập tin đến máy chủ web trong thư mục có tên với ngày hiện tại
    • Cập nhật cơ sở dữ liệu nếu một sơ đồ mới được bao gồm trong việc triển khai
    • Làm cho quá trình cài đặt mới một mặc định vì vậy nó sẽ được phục vụ với tiếp theo nhấn

Thanh toán được thực hiện với các phiên bản dòng lệnh của Subversion và xây dựng được thực hiện với xbuild (msbuild công việc giống nhau từ dự án Mono). Hầu hết các phép thuật được thực hiện trong ReleaseIt.

Trên máy chủ dev của mình, về cơ bản tôi có tích hợp liên tục nhưng ở bên sản xuất tôi thực sự SSH vào máy chủ và bắt đầu triển khai thủ công bằng cách chạy tập lệnh. Kịch bản của tôi được khéo léo gọi là 'triển khai' vì vậy đó là những gì tôi gõ vào dấu nhắc bash. Tôi rất sáng tạo. Không phải.

Trong sản xuất, tôi phải nhập 'triển khai' hai lần: một lần để kiểm tra, xây dựng và triển khai vào thư mục ngày và một lần để đặt thư mục đó làm phiên bản mặc định. Kể từ khi các thư mục được ngày, tôi có thể trở lại bất kỳ triển khai trước đó chỉ đơn giản bằng cách gõ 'deploy' từ bên trong thư mục có liên quan.

Triển khai ban đầu sẽ mất một vài phút và việc đảo ngược phiên bản trước sẽ mất vài giây.

Đó là giải pháp tốt cho tôi và chỉ dựa vào ba tiện ích dòng lệnh (svn, xbuild và releaseit), trình khách DB, SSH và Bash.

tôi thực sự cần phải cập nhật các bản sao của ReleaseIt trên CodePlex đôi khi: Dự án triển khai

http://releaseit.codeplex.com/

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