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

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

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

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

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

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

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

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

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

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

在 Windows Azure 网站中进行纵向扩展和横向扩展的更多相关文章

  1. 探索 Windows Azure 网站中的自动伸缩功能

     去年10月,我们发布了若干针对 WindowsAzure平台的更新,其中一项更新是添加了基于日期的自动伸缩调度支持(在不同的日期设置不同的规则). 在这篇博客文章中,我们将了解自动伸缩的概念,并 ...

  2. 禁用 Windows Azure 网站中的 ARR 实例关联

    编辑人员注释: 本博客文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 在 Windows Azure 网站中设置网站的多个实例是横向扩展网站的绝佳方式,Azur ...

  3. 进一步探索:Windows Azure 网站中解锁的配置选项

     编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 在 Windows Azure 网站 (WAWS) 中管理网站时,许多选项可使用 Azu ...

  4. 在 Windows Azure 网站中配置动态 IP 地址限制

    我们最近对 Windows Azure 网站进行了升级,并启用了IIS8的动态 IP 限制模块.现在,开发人员可以为其网站启用并配置动态 IP 限制功能(或简称 DIPR). 可以通过以下链接查看此 ...

  5. Windows Azure 网站上的 WebSocket 简介

    编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. Windows Azure 网站最近新增了对 WebSocket 协议的支持..NE ...

  6. Windows Azure 网站:应用程序字符串和连接字符串的工作原理

    编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. Windows Azure 网站上有一个方便的功能,即开发人员可将 Azure 中的 ...

  7. Windows Azure 网站上的 WordPress 3.8

     编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 和 Windows Azure 网站开发人员体验合作伙伴共同撰写. WordPr ...

  8. Windows Azure 网站的 IP 和域限制

    编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. 配置 Azure 网站 (WAWS) 的 IP 和域限制一直是用户最迫切希望我们提供 ...

  9. Windows Azure 网站 (WAWS) 中的服务器端包含 (SSI)

     编辑人员注释:本文章由 Windows Azure 网站团队的项目经理Erez Benari 撰写. Windows Azure 网站客户普遍关心的一个问题是关于我们对服务器端包含(Server ...

随机推荐

  1. Print! Print! Print!

    print语句可以实现打印--只是对程序员友好的标准输出流的接口而已. 从技术角度来讲,这是把一个或多个对象转换为其文本表达形式,然后发送给标准输出或另一个类似文件的流. 更详细地说,在Python中 ...

  2. IIS搭建的http文件服务器

    使用C#WebClient类访问(上传/下载/删除/列出文件目录)由IIS搭建的http文件服务器 前言 为什么要写这边博文呢?其实,就是使用C#WebClient类访问由IIS搭建的http文件服务 ...

  3. MYSQL 加密的 3 类方法

    背景: 若你想要储存一些由可能包含任意字节值的加密函数返回的结果,使用BLOB列而不是 CHAR 或VARCHAR 列,从而避免由于结尾空格的删除而改变一些数据值的潜在问题. 这一句话来自官方文件,记 ...

  4. python学习day8

    目录 一.异常 二.多线程 三.守护线程与join 四.GIL与多线程锁 五.递归锁与信号量 六.线程间同步与交互 七.多进程 八.进程间通信与数据共享 九.进程池 一.异常 1.异常处理 在编程过程 ...

  5. CC++初学者编程教程(16) 搭建Xcode cocos2dx开发环境

    1.下载cocos2dx,也可以从共享目录复制 2.解压缩 3.进入目录 cd Desktop/cocos2d-x-2.2.0/tools/project-creator/ 4.创建项目 ./crea ...

  6. cdoj 491 Tricks in Bits

    //无脑爆居然能过!!!!! 解:其实正解也是暴力,但是可以证明在n>6时答案一定为零. 第一步:对于任意两个数他们的二进制数要么有一半+的位是相同的,要么有一半+的位是不同的,于是首先使用与运 ...

  7. [Leetcode][Python]45: Jump Game II

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 45: Jump Game IIhttps://oj.leetcode.com ...

  8. 安装android studio时,解决unable to access android sdk add-on list

    1.打开时提示如下错误. 2.在安装路径下找到idea.properties文件,用记事本打开,添加disable.android.first.run=true,保存即可. 3.再次打开Android ...

  9. _itemFailedToPlayToEnd: { kind = 1; new = 2; old = 0; }

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVveW91MTMxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  10. Flash Recovery Area 的备份

    Flash Recovery Area 的备份 备份命令是Flash recovery Area,该命令是Oracle 10g以后才有的.10g引进了flash recovery area,同时在rm ...