Windows Azure - 将.NET Web应用程序转移到Azure

问题描述 投票:6回答:2

我希望有人可以在Windows Azure上回答一些简短的问题。我知道这有点懒,但覆盖Azure的微软网站似乎是针对半技术项目的领导和充满业务指标 - 他们似乎从来没有真正对'如何'进行简短的概述。

我有一个ASP.NET Web应用程序,需要一些工作来协助扩展(在那里有一些蜘蛛类型的进程和一个非常大的数据库。它还可以调用外部Web服务)。

我的问题是:

  1. 从开发的角度来看 - 将应用程序从标准的iis / sql server类型设置移植到Azure是多么容易。是否涉及很多编码。我已经开始了一个培训视频,你可以编写“结构”等。将应用程序转换为Azure真的很实用吗?
  2. 我听说你可以在Azure中运行Windows Server 2008 R2实例 - 这是否意味着你不一定要使用Azure特定的SDK进行编程,只需将你的iis / sql服务器设置为azure并利用scalablility的好处立即?
azure azure-web-app-service
2个回答
6
投票

您可以获得几点:培训,移植,扩展和虚拟机管理。

训练

你应该看一下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 Cache中。这只是对配置的配置更改。此缓存将在所有已部署的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%服务。


2
投票

从开发人员的角度来看,将现有ASP.net应用程序移动到Azure中的工作并不多。您可能会遇到一些问题,例如会话状态和缓存,但这两个问题都可以通过配置单独解决。 SQLAzure将提供从标准SQL Server获得的大部分功能,您可以使用SQLAzure迁移向导将数据库移动到云中。

在PDC10,他们宣布了一个新的VM角色,所以我认为这就是你所指的。因此,如果您在Windows Server 2008 R2上运行现有设置,则可以将其虚拟化并将其移至VM角色。

同样在PDC10,它宣布WebRoles现在将运行完整的IIS7,因此您可以根据需要使用IIS,而不必沿着VM角色的路线运行。

© www.soinside.com 2019 - 2024. All rights reserved.