2010-06-19 19 views
17

Tôi có một ứng dụng asp.net được phát triển một phần, nhưng bây giờ khách hàng muốn nó được phát triển trong thiên nhiên. Có bao nhiêu mã hiện có có thể được sử dụng trong việc phát triển ứng dụng trong Azure.có bao nhiêu thách thức để chuyển một ứng dụng asp.net sang Azure?

Thử thách nào chúng ta có thể gặp phải khi chúng tôi cố gắng chuyển một ứng dụng asp.net hiện có sang Azure? Có bất kỳ lựa chọn thay thế khác để Azure trong điện toán đám mây?

Trả lời

22

Đối với ứng dụng asp.net, bạn chắc chắn có thể chuyển sang Azure. Logic cốt lõi của bạn sẽ cổng một cách tương đối đơn giản, và bạn sẽ đạt được nhiều lợi ích mà Azure cung cấp. Với bản phát hành tháng 6 năm 2010, bạn cũng sẽ có hỗ trợ .NET 4, cùng với IntelliTrace để gỡ lỗi.

Tuy nhiên, khi bạn bắt đầu lên kế hoạch di cư Azure của bạn, có một số cân nhắc, bạn sẽ cần phải suy nghĩ về (ai trong số họ không thể vượt qua, và một số tương đối đơn giản để đối phó với):

  • Bạn phải đối phó với ASP.NET Session State quản lý trên trường hợp vai trò web của bạn (mà không được hỗ trợ ra khỏi hộp, ngoại trừ inproc). Bạn cũng sẽ phải thiết lập và sử dụng vai trò và nhà cung cấp thành viên (xem here để biết thêm chi tiết). EDIT: Bây giờ bạn có quyền truy cập vào cả AppFabric Cache cho trạng thái phiên cũng như SQL Azure, một phần của Universal Providers đi kèm với Windows Azure SDK + Tools.
  • Bạn phải kiểm tra chương trình phụ trợ SQL của mình vì không tương thích với SQL Azure (chẳng hạn như các công việc đã lên lịch vì không có hỗ trợ SQL Agent). Sự khác biệt của SQL Azure được ghi thành tài liệu here. Bạn cũng sẽ cần phải xem xét giới hạn kích thước của SQL Azure là 50GB, có thể yêu cầu bạn giảm tải nội dung xuống bộ nhớ blob Azure. EDIT: Bạn có thể chạy cơ sở dữ liệu SQL Server của bạn thông qua các SQL Azure Migration Wizard để kiểm tra khả năng tương thích.
  • Bạn cần định cấu hình ghi nhật ký và chẩn đoán, tốt nhất là với đầu ra Dấu vết, để bạn có thể truy xuất dữ liệu này từ xa.
  • Bạn cần suy nghĩ về cách bạn sẽ theo dõi và mở rộng ứng dụng của mình. Tất cả thông tin bạn có thể cần để mở rộng quy mô có sẵn cho bạn (bộ đếm hiệu suất, độ dài hàng đợi, v.v.). Kiểm tra WASABI - khối ứng dụng quy mô tự động, một phần của Thư viện doanh nghiệp. Bạn cũng có thể đăng ký một dịch vụ như AzureWatch.
  • Bạn sẽ cần phải suy nghĩ về bộ nhớ đệm, vì hiện tại không có triển khai bộ nhớ đệm ngoài hộp chạy trên các phiên bản của vai trò web của bạn hiện được cung cấp dưới dạng dịch vụ. Đọc chi tiết here, cũng như Câu hỏi thường gặp here.
  • Bạn có cần hỗ trợ SMTP không? Nếu có, bạn có thể đọc chi tiết về here. SendGrid gần đây đã công bố một free-tier promotion cho Windows Azure.
  • Bạn có đang tổ chức các dịch vụ WCF không? Nếu vậy, hãy xem this site để biết thêm chi tiết (cụ thể là các vấn đề đã biết).

Vì vậy: có, có một số điều bạn cần quan tâm, Azure là nền tảng tuyệt vời để lưu trữ ứng dụng asp.net và bạn nên cân nhắc kỹ.

+1

Câu trả lời hay. Kể từ khi nó được tham chiếu từ các bài viết mới hơn nó có thể là tốt để cập nhật nó. Tôi nghĩ rằng bạn đã đề cập ở những nơi khác bây giờ có một dịch vụ AppFabric Caching? –

+0

Samuel - cảm ơn! Tôi sẽ chỉnh sửa sau này. –

2

Nó sẽ rất dễ dàng để chuyển ứng dụng của bạn sang Azure - đặc biệt nếu bạn đang sử dụng SQL back-end. Mã có thể chạy hầu như không sửa đổi. Bạn sẽ cần phải tạo một gói cài đặt Azure cho dự án và tệp cấu hình.

Nếu ứng dụng của bạn sử dụng lưu trữ liên tục (ngoài SQL Server), bạn có thể phải sửa lại mã đó. Tuy nhiên, nền tảng hiện có bộ nhớ ổ đĩa, mô phỏng một hệ thống tệp, vì vậy điều này sẽ khá dễ dàng.

Một vấn đề khác cần lưu ý là web.config. Nếu bạn sử dụng nhiều điều này để tùy chỉnh thời gian chạy, bạn sẽ phải làm lại điều đó. Bạn không thể triển khai các tệp đơn cho ứng dụng của mình trong Azure, do đó, cách tiếp cận được khuyến nghị là di chuyển các loại cài đặt này vào tệp cấu hình Azure.

Điều khó nhất bạn có thể gặp phải là các ứng dụng bên ngoài. Nếu ứng dụng của bạn dựa vào việc khởi chạy các quy trình khác thì điều này sẽ yêu cầu thiết kế lại nghiêm túc.

+1

Tôi nghĩ "rất dễ" là gây hiểu lầm. Xem câu trả lời của tôi bên dưới để biết chi tiết. –

1

Azure giờ đây hỗ trợ Trang web dưới dạng loại triển khai. Về cơ bản, điều này cho phép bạn xuất bản bất kỳ ứng dụng Asp.net tiêu chuẩn nào (và các ứng dụng khác được hỗ trợ như PHP, v.v.) thành Azure và có nó như một máy chủ có khả năng mở rộng. Xem bài viết này http://blog.ntotten.com/2012/06/07/10-things-about-windows-azure-web-sites/

Nhiều lợi ích của Azure mà không cần phải đưa mã Azure/Dự án cụ thể vào ứng dụng hiện có của bạn.

Ngoài ra câu hỏi này tại đây What is the difference between an Azure Web Site and an Azure Web Role

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