将asp.net应用程序移植到azure有多大的挑战?

时间:2010-06-19 05:29:05

标签: asp.net azure

我有一个部分开发的asp.net应用程序,但现在客户希望它是用azure开发的。在azure中开发应用程序可以使用多少现有代码。

当我们尝试将现有的asp.net应用程序移植到azure时,我们可能遇到哪些挑战?云计算中是否还有其他天蓝色的替代方案?

3 个答案:

答案 0 :(得分:22)

对于asp.net应用程序,您当然可以将其移植到Azure。您的核心逻辑将以相对简单的方式移植,您将获得Azure提供的许多好处。随着2010年6月发布,您还将获得.NET 4支持以及用于调试的IntelliTrace。

但是,当您开始规划Azure迁移时,需要考虑几个注意事项(其中没有一个是难以克服的,而且有几个相对简单需要处理):

  • 您必须跨Web角色实例处理ASP.NET会话状态管理(除了inproc之外,不支持开箱即用)。您还必须设置和使用角色和成员资格提供程序(有关详细信息,请参阅here)。编辑:您现在可以访问AppFabric Cache for session state以及SQL Azure,它是Windows Azure SDK + Tools附带的Universal Providers的一部分。
  • 您必须检查SQL后端是否与SQL Azure不兼容(例如预定作业,因为没有SQL代理支持)。 SQL Azure差异记录在案here。您还需要考虑50GB的SQL Azure大小限制,这可能需要您将内容卸载到Azure blob存储。编辑:您可以通过SQL Azure Migration Wizard运行SQL Server数据库以进行兼容性测试。
  • 您需要配置日志记录和诊断,最好使用跟踪输出,以便您可以远程检索此数据。
  • 您需要考虑如何监控和扩展您的应用程序。您可以使用缩放所需的所有信息(性能计数器,队列长度等)。查看WASABI - 自动扩展应用程序块,它是Enterprise Library的一部分。您还可以订阅AzureWatch等服务。
  • 您需要考虑缓存,,因为目前没有开箱即用的缓存实施,这些实施跨Web角色实例运行,现在作为服务提供。阅读详细信息here,以及常见问题解答here
  • 您需要SMTP支持吗?如果是这样,您应该阅读有关here的详细信息。 SendGrid最近宣布了一个用于Windows Azure的free-tier promotion
  • 您是否也在托管WCF服务?如果是,请查看this site以获取更多详细信息(特别是已知问题)。

所以:是的,您需要关注一些事情,但Azure是托管asp.net应用程序的绝佳平台,您应该强烈考虑它。

答案 1 :(得分:2)

将应用程序移植到Azure应该非常容易 - 尤其是在使用SQL后端时。代码几乎可以不经修改地运行。您需要为项目和配置文件创建Azure安装包。

如果您的应用程序使用持久存储(SQL Server除外),您可能需要稍微修改该代码。但是,该平台现在具有模拟文件系统的驱动器存储,因此这应该相当容易。

需要注意的另一个问题是web.config。如果您大量使用它来进行运行时自定义,那么您也必须重做。您无法在Azure中将单个文件部署到应用程序,因此建议的方法是将这些设置迁移到Azure配置文件。

您可能遇到的最困难的事情是外部应用程序。如果您的应用依赖于启动其他流程,则需要进行一些严格的重新设计。

答案 2 :(得分:1)

Azure现在支持网站作为部署类型。基本上,这允许您将任何标准的Asp.net(以及其他受支持的PHP等)应用程序发布到Azure,并将其作为可伸缩的服务器。请参阅此文http://blog.ntotten.com/2012/06/07/10-things-about-windows-azure-web-sites/

Azure的许多好处,无需将Azure特定代码/项目引入现有应用程序。

此问题还在What is the difference between an Azure Web Site and an Azure Web Role