在最近一次微软网络研讨会上,高级架构布道师 Brian Prince 和技术布道师 Nathan Totten 展示了几种可选的方案,用于扩展安装在 Windows Azure 上的 ASP.NET 应用程序。
主讲人指出,我们可以任意组合使用这些方案,从而增大或者减小应用程序的规模。这些方案可以归为几大类:缓存(caching)、流量分配(traffic distribution)、异步工作处理(asynchronous work processing)、以及存储(storage)。Prince 和 Totten 推荐使用以下一些方案组合来增大 ASP.NET 应用程序的规模:
增加 Azure 实例的数量
和增加虚拟服务器一样,这是分配负载最简单的方式。
增加 Table 或 Blob 存储
Table 存储是无模式(schema-less)且非关系型的存储,但是它比 SQL Azure 具有更高的可扩展性。正如 Totten 所说,Table 存储的每个分区在每秒内可以处理大约 500 个请求。而 Blob 存储则是一种非结构化的方案,对于大文件存储可能会很有用。
增加 AppFabric 缓存
AppFabric 用于在内存中缓存频繁访问的数据,而且还可以作为一种会话状态提供程序。
使用异步工作处理
Azure Queue 会向我们称之为“工人角色(worker roles)”的后台进程发送消息。在处理购物车或文件上传时,我们需要恰当地设置 Azure Queue;使得业务逻辑在后台处理,从而提升前端性能。队列的大小是有限制的,但是它可以与 Table 和 Blob 存储组合使用。
把静态或半静态内容放到 Azure 内容分发网络中
正如主讲人所说, Windows Azure 内容分发网络(CDN,Content Delivery Network)目前在世界上已有 26 个结点,而且会定期地增加更多结点。对于用户而言,把静态数据(或者并不经常更新的数据)放到 CDN 中可以提升性能,因为那些数据将会从距离用户最近的数据中心提取出来。
利用流量管理器
Windows Azure 流量管理器(Traffic Manager)与 CDN 类似,但并不用于存储内容,它在多个位置承载整个应用程序,以便在世界范围内提供更好的可用性。在主实例不可用的情况下,流量管理器也可用作灾备系统。
Prince 和 Totten 指出,应用程序可靠的初始设计永远是良好性能的关键所在,但 Windows Azure 的目的是让我们可以轻松地增大或减小应用程序规模,这也是某些组织在需求中所要求的。
评论