我有一个ASP.NET Web应用程序,需要一些工作来协助扩展(在那里有一些蜘蛛类型的进程和一个非常大的数据库.它还可以调用外部Web服务).
我的问题是:
>从开发的角度来看 – 将应用程序从标准的iis / sql server类型设置移植到Azure是多么容易.是否涉及很多编码.我已经开始了一个培训视频,你可以编写“结构”等.将应用程序转换为Azure真的很实用吗?
>我听说您可以在Azure中运行Windows Server 2008 R2实例 – 这是否意味着您不一定要使用Azure特定SDK进行编程,并且可以将您的iis / sql服务器设置为azure并利用scalablility马上?
训练
你应该看一下MSDev的一些介绍视频.“Windows Azure Fall 2010”系列是最新的.请注意,要在Azure中运行应用程序,您需要了解Azure Fabric和相关服务,例如诊断和角色管理.
移植
您需要查看除核心asp.net之外的其他内容,例如缓存,会话状态管理,安全性,第三方DLL,COM,注册表访问以及任何其他管理级功能.今天,使用SDK 1.2,您将无法操作注册表或运行MSI.我有一个关于你可能遇到挑战的一些领域的related StackOverflow post.关于sql Azure:某些功能(如CLR支持)未实现,您将无法访问某些系统级功能.有关差异的详细信息,请参见SQL Azure site的白皮书.
借助PDC 2010中引入的新功能,您应该能够克服几乎所有这些问题:
>会话状态可以托管在
AppFabric缓存.这只是
配置更改为您的
配置.此缓存将可用
跨所有已部署的Web
实例,允许您扩展.
>管理员模式可以使用管理员级别访问权限.你将能够
在角色实例启动时运行MSI并修改注册表之类的内容.
缩放
您需要仔细查看您的应用如何处理扩展.例如:如果所有服务器实例尝试与同一资源同时工作,则可能会遇到瓶颈,从而导致锁定.常见的Azure模式是将工作项放在持久的Azure队列中,并使后台工作者角色实例异步使用这些工作项.
今天,Azure不提供开箱即用的会话状态管理功能(例如,在sql Server中存储状态).但是,sql Azure博客上有一个downloadable sample可以很好地与sql Azure配合使用.如上所述,新的AppFabric Cache功能将提供会话状态管理,因此您很快就会拥有开箱即用的解决方案.
虚拟机管理
VM角色在PDC上宣布.从本质上讲,这将使您能够获取本地构建的Windows Server 2008 R2映像并将其移动到Azure.您需要安装Azure扩展,以允许Azure结构管理映像.
但有一个权衡:您的虚拟机不会受益于操作系统升级和补丁:您将负责管理这些(通过差异磁盘). Azure结构仍将监视VM的运行状况,并在必要时重新启动或移动它.我建议首先尝试使用管理模式,这样您仍然可以利用Azure的100%服务.