我有一个部分开发的asp.net应用程序,但现在客户希望它是用azure开发的.在azure中开发应用程序可以使用多少现有代码.
当我们尝试将现有的asp.net应用程序移植到azure时,我们可能遇到哪些挑战?在云计算中还有其他替代天蓝色的方法吗?
对于asp.net应用程序,您当然可以将其移植到Azure.您的核心逻辑将以相对简单的方式移植,您将获得Azure提供的许多好处.在2010年6月发布的版本中,您还将获得.NET 4支持以及用于调试的IntelliTrace.
但是,当您开始规划Azure迁移时,需要考虑几个注意事项(其中没有一个是难以克服的,而且有几个相对简单需要处理):
您必须跨Web角色实例处理ASP.NET会话状态管理(除了inproc之外,不支持开箱即用).您还必须设置和使用角色和成员资格提供程序(有关详细信息,请参阅此处).编辑:您现在可以访问AppFabric Cache for session state以及SQL Azure,它是Windows Azure SDK + Tools附带的Universal Providers的一部分.
您必须检查SQL后端是否与SQL Azure不兼容(例如预定作业,因为没有SQL代理支持).此处记录了 SQL Azure差异.您还需要考虑50GB的SQL Azure大小限制,这可能需要您将内容卸载到Azure blob存储.编辑:您可以通过SQL Azure迁移向导运行SQL Server数据库以进行兼容性测试.
您需要配置日志记录和诊断,最好使用跟踪输出,以便您可以远程检索此数据.
您需要考虑如何监控和扩展您的应用程序.您可以使用缩放所需的所有信息(性能计数器,队列长度等).查看WASABI - 自动扩展应用程序块,它是Enterprise Library的一部分.您还可以订阅AzureWatch等服务.
您需要考虑缓存,因为目前没有开箱即用的缓存实现,它跨Web角色的实例运行,现在作为服务提供.阅读细节在这里,还有一个常见问题在这里.
你需要SMTP支持吗?如果是这样,您应该在这里阅读详细信息.SendGrid最近宣布了针对Windows Azure 的免费套餐促销活动.
你也托管WCF服务吗?如果是这样,请查看此站点以获取更多详细信息(特别是已知问题).
所以:是的,你需要关注一些事情,但Azure是托管asp.net应用程序的绝佳平台,你应该强烈考虑它.