在 Windows Azure 网站中进行纵向扩展和横向扩展

编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Byron Tardif 撰写。web

当您开始一个新的 Web 项目,或者刚刚开始开发通常的网站和应用程序时,您可能但愿从小处着手。可是,您可能不会停滞不前。在概念证实阶段,您可能不但愿在新的 Web 场上耗费资源,但随着事业不断发展,您没法使用一小台服务器来实施大型市场营销活动。在 Windows Azure 网站的云中进行开发和部署时也同样。数据库

在本博客文章中,我将向您介绍您能够采用的开发、测试和实施方式,同时控制好预算的时间和成本。windows

Windows Azure 网站中的标准、免费和共享模式安全

部署网站时最重要的注意事项之一是为您的网站选择合适价位的平台。一旦您完成开发和测试周期,此网站即是贵公司的网站,或者是一个重要的新数字市场营销活动或业务线应用程序。所以,您要确保您的网站根据业务需求可用且可响应,同时不超出预算。服务器

您的选择取决于多种因素,如:工具

·   您计划托管多少个站点?例如,数字市场营销活动可能包括您使用的每一个服务的社交媒体页,以及每一个目标市场的不一样主页。测试

·   您指望网站的受欢迎程度如何? 什么时候流量水平会更改?您的评估可能基于业务线应用程序的员工数量,或者营销网站的 Twitter 粉丝和 Facebook 爱好者的数量。您可能还指望流量可以因季节性因素、商务拓展活动(如社交媒体活动)和广告而有所差别。网站

·   这些站点将使用多少资源(CPU、内存和带宽)?  spa

Windows Azure 网站的好处之一就是,将 Web 应用程序和网站投入生产时您不须要回答这些问题。使用管理门户中提供的伸缩选项,您能够根据用户需求和业务目标实时地伸缩您的网站。翻译

Windows Azure 网站中的站点模式

Windows Azure 网站 (WAWS) 提供 3 种模式:标准、免费和共享。

其中每种模式(标准、共享和免费)均提供不一样的配额,用于控制您的站点可使用的资源量,并提供不一样的伸缩能力。下图汇总了这些配额。

标准模式和服务级别协议 (SLA)

标准模式在专用实例上运行,所以不一样于购买 Windows Azure 网站的其余方式。此外,该模式对 CPU 使用率没有限制,而且在 3 种模式中的存储量最大。请参阅上表了解详细信息。

标准模式还有一些值得一提的重要功能:

·   没有数据输出带宽限制 – 站点上的前 5 GB 出站数据免费提供,额外带宽按照“即付即用”费率订价。

·   自定义 DNS 名称 – 免费模式不容许使用自定义 DNS。标准模式容许使用 CNAME 记录和 A 记录。

标准模式支持每个月 99.9% 的企业级 SLA(服务级别协议),即便站点只有一个实例也是如此。Windows Azure 网站能够在单个实例站点上提供此 SLA,由于咱们的设计包括实时站点配置功能。配置发生在后台,而不须要更改您的站点,而且对任何站点访问者都是透明的。这样便可消除伸缩均衡中可用性方面的顾虑。

共享模式和免费模式

简而言之,共享模式和免费模式不提供标准模式的伸缩灵活性,而且它们有一些重要的限制。

免费模式与免费或共享模式下的其余站点共享计算资源运行,而且对该站点(以及订阅中的其余免费站点)在每一个配额间隔可使用的 CPU 时间量设置了上限。达到该限制后,该站点(以及订阅中的其余免费站点)将中止返回内容/数据,直到下一个配额间隔。此外,免费模式对站点能够向客户端提供的数据量(也称为“数据出站”)也设置了上限。

正如其名称所示,共享模式也使用共享计算资源,而且也具备 CPU 限制(尽管比免费模式高),如上表所述。共享模式还容许 5 GB 出站数据,若是超出此限制,则按“即付即用”费率计费。

所以,可能因为上述限制,免费模式和共享模式都不是适用于您的生产环境的最佳选择,但它们仍是有用的。免费模式很是适用于试用和了解 Windows Azure 网站,例如:了解如何设置发布配置、链接到 Visual Studio,或者使用 TFS、Git 或其余部署工具部署。相比于免费模式,共享模式具备额外的功能,所以很是适用于在有限受控的负载下进行开发和测试您的站点。对于更重要的生产环境,标准模式能够提供更多服务。

伸缩操做、代码和用户会话/体验

操做纵向扩展站点或横向扩展站点能够提升用户体验, 而且伸缩操做对现有用户会话没有任何影响。

此外,每次伸缩操做都很迅速(一般几秒钟内便可完成),而且不须要更改站点的代码,也不须要从新部署站点。

接下来,咱们将讨论“纵向扩展”和“横向扩展”的含义。

Windows Azure 网站伸缩动态

Windows Azure 网站提供了多种方式伸缩您的网站, 可使用管理门户完成这些操做。若是您正在经过 Microsoft Visual Studio 2012 管理站点,则也可使用这些操做,如咱们的服务文档中详细说明。

纵向扩展

纵向扩展操做相似于将您的非云网站移动到更大的物理服务器上。所以,当您的站点达到配额,系统通知您已超出现有模式或选项时,则有必要考虑进行纵向扩展。此外,纵向扩展几乎能够在任何站点上进行,没必要担忧多实例数据一致性的影响。

Windows Azure 网站中纵向扩展操做的两个示例以下所示:

·   更改站点模式:例如,若是您选择标准模式,您的网站对 CPU 使用率没有任何配额限制,而且出站数据只需支付超出套餐所含 5 GB/月的出站数据的那部分。

·   标准模式中的实例大小:在标准模式中,Windows Azure 网站容许选择不一样的实例大小:小型、中型和大型。这也相似于移动到更大的物理服务器,CPU核数和内存量愈来愈多:

小型:1 个核,1.75 GB 内存

中型: 2 个核,3.5 GB 内存

大型: 4 个核,7 GB 内存

横向扩展

横向扩展操做至关于建立您的网站的多个副本,并添加一个负载平衡器以在副本之间分配处理。当您在 Windows Azure 网站中横向扩展某个网站时,不须要单独配置负载平衡,由于平台已提供此配置。

要在 Windows Azure 网站中横向扩展您的站点,若是是共享模式,您须要使用实例计数滑块在 1 到 6 之间更改实例计数;若是是标准模式,则在 1 到 10 之间进行更改。这将生成您的网站的多个运行副本,而且自动处理负载平衡配置,以在全部实例之间分配传入的请求。

要从横向扩展操做中受益,您的站点必须为多实例安全型。编写多实例安全站点超出了本文章的范围,请参考适用于 .NET 语言的 MSDN 资源,例如http://msdn.microsoft.com/zh-cn/library/3e8s7xdd.aspx

能够在一个网站中组合执行纵向扩展和横向扩展操做,从而提供混合缩放。有关多实例站点的相同考量也将适用于这种状况。

Windows AzurePowerShell 中的自动缩放和缩放

在本博客文章中,我介绍了 Windows Azure 网站中纵向扩展和横向扩展所涉及的概念,着重于经过管理门户手动执行这些任务;Visual Studio 中也提供了相似的手动设置。

咱们还向 Windows Azure 网站添加了自动缩放功能,容许根据响应需求在您的网站上对纵向扩展/横向扩展的设置进行无人参与的更改。

此外,Windows Azure PowerShell 还容许执行某些缩放操做,以及对您的站点和订阅实施多种控制。

最后的思考

Windows Azure 网站容许您以较低的成本(甚至成本)开发、部署和测试网站或 Web 应用程序,同时无缝伸缩该站点,直至造成更适合生产的配置,而后以经济高效的方式进一步伸缩。

在本博客文章中,我着重介绍了您网站中的纵向扩展和横向扩展功能,可是请记住,您的站点可能只是使用其余组件(如数据库、数据源、存储或第三方 Web API)的更复杂的应用程序的一部分。每一个组件都具备本身的伸缩操做,评估您的伸缩选项时应将其考虑在内。

固然,伸缩网站将会影响成本。有助于评估您的成本以及指定伸缩操做将对您的成本产生的影响的简单方法是使用Azure 订价计算器

本文翻译自:

http://blogs.msdn.com/b/windowsazure/archive/2013/07/11/scaling-up-and-scaling-out-in-windows-azure-web-sites.aspx

相关文章
相关标签/搜索