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

问题描述:

我有一个部分开发的asp.net应用程序,但现在客户希望它在azure中开发。有多少现有代码可用于在azure中开发应用程序。将一个asp.net应用程序移植到Azure有多大的挑战?

当我们尝试将现有的asp.net应用程序移植到Azure时,我们可能会遇到什么样的挑战?云计算中是否还有其他替代Azure的选择?

对于asp.net应用程序,您当然可以将其移植到Azure。您的核心逻辑将以相对简单的方式进行移植,您将获得Azure所提供的诸多优势。在2010年6月发布的版本中,您还将拥有.NET 4支持以及用于调试的IntelliTrace。

但是,当你开始计划你的Azure迁移,有你需要考虑几方面的考虑(其中没有不可逾越的,一些相对简单的处理):

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

所以:是的,有一些事情你需要关注自己,但Azure是托管一个asp.net应用程序的好平台,你应该强烈考虑它。

+1

很棒的回答。由于它是从其他较新的帖子引用的,所以更新它可能是很好的。我想你在别处提到现在有一​​个AppFabric缓存服务? – 2011-05-26 11:42:26

+0

塞缪尔 - 谢谢!稍后我会编辑它。 – 2011-05-26 12:36:30

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

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

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

您可能遇到的最难的事情是外部应用程序。如果你的应用程序依赖于启动其他进程,那么这将需要一些严肃的重新设计。

+1

我认为“非常容易”是误导。详情请参阅下面的答案。 – 2010-06-19 15:47:14

Azure现在支持Web站点作为部署类型。基本上,这允许您将任何标准的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