Làm thế nào để bạn sản xuất trang web IIS depoy?


15

Vì vậy, không chắc đây là câu hỏi Stack Overflow hay Server Fault. Nếu tôi có một trang web .NET mà tôi muốn triển khai vào môi trường sản xuất, cách tốt nhất để làm điều đó là gì. Tôi có nên gói nó dưới dạng MSI & cài đặt không? Sử dụng nant để đẩy các tập tin cần thiết lên. Chỉ cần FTP các tập tin lên bằng cách sử dụng Beyond So sánh?

Làm thế nào để bạn triển khai mã sản xuất? Đây là một trường hợp cụ thể của Windows mà tôi đang xem xét ở đây.

Câu trả lời:


15

IIS hỗ trợ triển khai xcopy vì vậy chỉ cần sao chép các tệp sẽ là tất cả những gì bạn cần trừ khi bạn có yêu cầu đặc biệt.

Một cách để làm điều đó là một tập lệnh đơn giản sử dụng ROBOCOPY để sao chép các tệp mới vào máy chủ.

Nếu trang web lớn và quá lâu, hãy sử dụng hệ thống kiểm soát phiên bản. Tôi thích Mercurial cho mục đích này, mặc dù bạn phải cẩn thận rằng các tệp cấu hình của hệ thống kiểm soát phiên bản sẽ không được cung cấp cho công chúng. Triển khai sau đó chỉ đơn giản là vấn đề cam kết thay đổi và sau đó kiểm tra phiên bản mới nhất trên máy chủ. Ngoài việc hiệu quả, điều này cho phép khôi phục nhanh (nếu bạn đã gắn thẻ phiên bản tốt cuối cùng) trong trường hợp mới nhất và lớn nhất của bạn có lỗi showstopper.

Để giảm thiểu thời gian chết, bạn có thể để tập lệnh sao chép các tệp vào một thư mục mới và sau đó nhanh chóng đổi tên các thư mục hoặc thay đổi nơi IIS trỏ đến thư mục mới.


1
Hệ thống kiểm soát phiên bản hấp dẫn nhưng đối với các trang web yêu cầu biên dịch, nó có thể không hoạt động tốt. Tất nhiên trừ khi một phiên bản biên dịch được giữ dưới sự kiểm soát phiên bản.
Jonathon Watney

1
Tôi chưa bao giờ nghĩ đến việc đưa một hệ thống kiểm soát nguồn ra ngoài sản xuất. Thú vị chắc chắn nhịp đập phải giữ hàng tấn các tệp zip thêm xung quanh.
JoshBerke

Tôi làm điều này mọi lúc với Subversion. Trên Apache, bạn sử dụng mod_rewrite để đảm bảo người dùng không thể truy cập các thư mục .svn. Sử dụng kiểm soát phiên bản để triển khai chắc chắn là cách để đi.
Luke

13

Cân nhắc sử dụng Công cụ triển khai Web từ Microsoft. Nó được thiết kế đặc biệt để giúp triển khai các ứng dụng web và cập nhật cho các ứng dụng web đó để sản xuất máy chủ web IIS 6 và 7 và nó thực hiện công việc tốt hơn so với MSI (Windows Installer), IMHO.

Thông thường bạn sử dụng nó bằng cách thiết lập một trang web "chủ vàng" ở đâu đó và sau đó báo cho công cụ đóng gói các thay đổi từ đó. Sau đó, nó sẽ xem xét một máy chủ mục tiêu để triển khai và thực hiện bất kỳ thay đổi nào cần thiết để làm cho nó trông giống như chủ vàng (rất hữu ích cho các bản cập nhật tiếp theo). Nó đặc biệt hữu ích nếu bạn đang triển khai đến nhiều máy chủ web (ví dụ trang trại) và nó có hỗ trợ triển khai nhiều hơn chỉ các tệp (nó cũng có thể xử lý các thay đổi đăng ký, triển khai certs, cơ sở dữ liệu SQL, v.v.).


+ vô cùng. Công cụ này là cứu cánh và giải phóng toàn bộ các bộ phận (a la tsilb) để giải quyết các vấn đề thú vị hơn.
Portman

4

Tôi muốn biết thêm câu trả lời của Joel bằng cách đề xuất máy chủ Tích hợp liên tục chọn các thay đổi của bạn từ hệ thống kiểm soát nguồn của bạn. Sau đó sẽ xây dựng dự án. Sau đó, nó xcopy đầu ra của bản dựng vào một thư mục mới. Sau đó, bạn có thể thực hiện một số thay đổi cấu hình nhanh (web.config và app.config). Voila, sẵn sàng cho Xcopy!

Hãy xem CruiseControl.NET


3

Những gì tôi đã làm ở nhà tuyển dụng trước đây, về cơ bản là một trang web đấu giá / thương mại điện tử nơi chúng tôi không thể cho phép nhiều thời gian chết:

  • Lấy phiên bản xây dựng được nén của phiên bản phát hành / phiên bản để triển khai trên máy chủ bản dựng
  • Kiểm tra nó trên một máy chủ dàn có bản sao của cơ sở dữ liệu sản xuất và có cùng phiên bản phần mềm với phần mềm sản xuất. Kiểm tra rằng mọi thứ đều diễn ra suôn sẻ. Nếu không khởi động lại việc triển khai máy chủ dàn (nhưng trước tiên hãy khôi phục bản sao lưu).
  • Nếu mọi thứ đều ổn: sao chép các tập lệnh nâng cấp cơ sở dữ liệu và xây dựng vào máy chủ sản xuất vào một thư mục cục bộ. Hãy sao lưu cụ thể cơ sở dữ liệu và các tệp ASP.NET (trong trường hợp vẫn có lỗi). Chuẩn bị sau đó mọi thứ để tôi chỉ cần nhấp vào để khởi chạy tập lệnh nâng cấp và sao chép các tệp cơ sở dữ liệu (lưu ý rằng tôi có thể tạo tập lệnh cho việc này). Sau đó khởi động mọi thứ. Đây thường là vấn đề của vài giây và người dùng sẽ không nhận thấy nhiều rằng đã có thời gian chết.

Có rất nhiều điều thú vị để làm như một nhà phát triển web. Nhưng đây là phần quan trọng nhất trong công việc của tôi.


1

oh jeeez, tại nơi làm việc, chúng tôi có cả một đội cho việc này. Họ có một công cụ nội bộ đưa một máy chủ ra khỏi cụm / trang trại, xuất bản các tệp, chạy NUnits và thêm nó trở lại vào cụm / trang trại. Họ làm điều này cho mỗi 16 máy chủ. Phải mất hàng giờ. Phần còn lại của chúng tôi thậm chí không có "nhìn xung quanh truy cập".

Đối với các dự án cá nhân của tôi, tôi xuất bản trực tiếp từ VS2005 lên máy chủ web của mình. Kinda có bảo mật ít nghiêm ngặt hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.