7

我希望有人能回答一些关于 Windows Azure 的简短问题。我知道这有点懒惰,但是涵盖 Azure 的 Microsoft 网站似乎是针对半技术项目负责人和充满业务指标的——它们似乎从来没有真正对“如何”给出一个很好的简短概述。

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

我的问题是:

  1. 从开发的角度来看 - 将应用程序从标准 iis / sql 服务器类型设置移植到 Azure 是多么容易。是否涉及很多编码。我已经开始制作一个培训视频,让您对“结构”等进行编程。将应用程序转换为 Azure 真的可行吗?

  2. 我听说您可以在 Azure 中运行 Windows Server 2008 R2 实例 - 这是否意味着您不必使用 Azure 特定的 SDK 进行编程,只需将您的 iis / sql 服务器设置为 azure 并利用可扩展性的优势立即地?

4

2 回答 2

6

您提到了几点:培训、移植、扩展和虚拟机管理。

训练

您可能应该看看MSDev上的一些介绍视频。“Windows Azure Fall 2010”系列是最新的。请注意,要在 Azure 中运行应用程序,您需要了解 Azure Fabric 和相关服务,例如诊断和角色管理。

移植

您将需要查看您在 asp.net 核心之外所做的工作,例如缓存、会话状态管理、安全性、第 3 方 DLL、COM、注册表访问以及任何其他管理员级别的功能。今天,使用 SDK 1.2,您将无法操作注册表或运行 MSI。我有一篇相关的 StackOverflow 帖子,介绍了您可能会遇到挑战的一些领域。关于 SQL Azure:某些功能(例如 CLR 支持)未实现,您将无法访问某些系统级功能。有关差异的详细信息,请参阅SQL Azure 站点上的白皮书。

借助 PDC 2010 引入的新功能,您应该能够克服几乎所有这些问题:

  • 会话状态可以托管在 AppFabric 缓存中。这只是对您的配置的配置更改。此缓存将在您部署的所有 Web 实例中可用,允许您进行扩展。
  • 管理员级别的访问权限在管理员模式下可用。当您的角色实例启动时,您将能够运行 MSI 并修改注册表等内容。

缩放

您需要仔细查看您的应用程序如何处理缩放。例如:如果所有服务器实例尝试同时使用相同的资源,您可能会遇到瓶颈,从而导致锁定。一个常见的 Azure 模式是将工作项放置在持久的 Azure 队列中,并让后台辅助角色实例异步使用这些工作项。

今天,Azure 不提供开箱即用的会话状态管理功能(例如在 SQL Server 中存储状态)。但是,SQL Azure 博客上有一个可下载的示例,该示例非常适用于 SQL Azure。如上所述,新的 AppFabric 缓存功能将提供会话状态管理,因此您很快就会拥有一个开箱即用的解决方案。

虚拟机管理

VM Role 在 PDC 上宣布。从本质上讲,这将使您能够获取本地构建的 Windows Server 2008 R2 映像并将其移动到 Azure。你需要安装 Azure 扩展,以允许由 Azure 结构管理映像。

但是有一个权衡:您的虚拟机不会从操作系统升级和补丁中受益:您将负责管理这些(通过差异磁盘)。Azure 结构仍将监视 VM 的运行状况,并在必要时重新启动或移动它。我建议首先尝试使用管理员模式,这样你仍然可以 100% 地利用 Azure 的服务。

于 2010-11-02T12:49:00.520 回答
2

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

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

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

于 2010-11-02T08:36:08.370 回答