在云环境中平衡工作负载

使用阈值策略动态平衡工作负载

许多企业和政府部门都需要使用云服务来提供持续运营可用性和安全性。要实现这种能力,需要在资源管理中使用一个阈值策略来进行应用程序测试和生产。在本文中,我们将解释什么是阈值策略,以及阈值策略如何帮助您在云环境中动态平衡工作负载需求。

Judith Myerson, 系统工程师兼架构师, Bell Atlantic

Judith M. Myerson 是一位系统工程师兼架构师。她感兴趣的领域包括中间件技术、企业级系统、数据库技术、应用程序开发、网络管理、安全性和项目管理。


developerWorks 投稿作者

2011 年 3 月 24 日

在云环境中,阈值策略是必要的重要特性 — 当工作负载需求在达到一个预先确定的阈值水平后需要动态平衡时,就可以使用阈值策略来检查和管理资源。根据工作负载需求超出阈值水平的量,阈值策略指示系统创建必要资源的实例。

在详细讲解创建和使用一个阈值策略,通过自动创建和释放资源实例来动态平衡工作负载需求的有关事项之前,我们在这里首先定义阈值策略。

阈值策略概述

我们看看阈值策略的几个关键属性。

响应时间

系统检测到工作负载需求达到阈值水平的时间与系统创建额外资源实例的时间之间的时间段必须近乎瞬时。当工作负载需求返回阈值水平之下时,系统将取消上述资源分配并将其分配给其他用途。

重要事项

阈值策略中应该包含的信息受到下列因素影响:

  • 用户租用的云服务类型。
  • 用户对操作系统和软硬件的控制权有多大。
  • 用户所在的行业类型(例如:零售、能源和公共事业、金融市场、医疗保健、石油化工)

服务提供者和策略

云服务提供者可以位于组织内部控制的数据中心,也可以由组织外部的一个电信行业成员(比如 IBM®)托管。提供者必须确保与后端(back-office)系统集成,以便预订、配给、计量、估价和收费、计费和其他功能支持用户活动和事务。

如何应用阈值策略

举例说明,一个零售业云服务用户的数据中心有一个大型应用程序,当工作负载需求低于阈值水平时,该应用程序在云中执行信用卡验证。当圣诞节高峰来临时,系统检测到工作负载需求超过了阈值水平。系统快速做出响应,额外创建了一些资源实例来动态平衡工作负载需求。

当这个零售商渡过购物高峰后,工作负载需求降到了阈值水平以下,此前在云中创建的资源实例现在被释放。由于组织对硬件有一些控制权,它们能与云服务提供者协商阈值策略中设置的条款。(在购物高峰来临之前协商策略参数总是个好主意。)

本文余下部分将介绍一些云服务类型相关背景知识,并展示一种云类型的阈值策略与另一种云类型的阈值策略如何不同。本文还将讨论为进行应用程序测试、生产和容量规划而进行的资源管理中使用的阈值策略,检查一些需要考虑的重要问题,比如阈值策略对服务水平协议(SLA)的影响。


云服务类型

首先考虑以下三种云服务类型中的哪一种符合您的需求:

  • 软件即服务(Software as a Service,SaaS)
  • 平台即服务(Platform as a Service,PaaS)
  • 基础架构即服务(Infrastructure as a Service,IaaS)

我们还将讨论,运营规模如何影响您的最佳云服务类型选择 —— 公共云还是私有云。

软件即服务

假定您是一个零售业用户,您的公司从一个 SaaS 供应商处获取了一个许可,可以根据需要将一个用于 web 用途的应用程序用作一个服务。您选择了一种订阅或即付即用(pay-as-you-go)方法,因此不需要购买、安装和维护软硬件,也不必升级应用程序。

您拥有的惟一控制权就是从一台桌面机或移动设备使用这个供应商的应用程序来处理一些业务任务,比如计算账单和发票、人力资源管理。

尽管您不必控制已部署的应用程序、操作系统、存储器和网络,但您需要查看供应商关于资源管理的阈值策略,以防工作负载需求出现计划内或计划外激增:

  • 您想知道供应商如何设置阈值水平来确保 SaaS 的持续运营可用性。
  • 您想了解供应商的 SLA 条款和备份策略。
  • 如果由于供应商未能动态处理需求激增而导致服务失败,您想知道是否可以获得信用、补偿、免费月份,或者根据 SLA 中的条款终止 SaaS。

平台即服务

使用 PaaS,您想从创建到部署开发零售应用程序,以便进行应用程序测试(或生产即服务)。

与 SaaS 不同,您能够控制一个完整的业务生命周期中所有针对该平台的应用程序(例如,电子表格、字处理、备份、账单、工资处理和发票)。

供应商控制其上运行应用程序的操作系统、硬件和网络基础架构。供应商能够构建、部署、运行和管理一个零售管理应用程序的所有功能的更新和补丁。

当然,您需要一个来自 PaaS 供应商的阈值策略:

  • 您想知道供应商如何设置阈值水平以确保 PaaS 持续可用。
  • 如果由于供应商未能动态处理需求激增而导致服务失败,您想得到信用、补偿、免费月份,或者终止服务。

基础架构即服务

使用 IaaS,您可以在虚拟机级别控制操作系统、网络设备和已部署应用程序:

  • 您可以上下缩放虚拟服务器数量或存储区域块。
  • 您可以根据使用情况支付云环境中的这些传统计算资源的基础架构的费用。

您需要查看来自 IaaS 供应商的基础架构阈值策略:

  • 您想知道供应商如何设置阈值水平来确保工作负载需求激增时 IaaS 持续可用。
  • 您想能够与 IaaS 供应商协商阈值策略中的条款和您公司适用的 SLA。
  • 如果由于计算资源的基础架构未能动态处理需求激增,导致响应时间变慢,进而导致服务失败,您想获取信用、补偿、免费月份,或者终止服务。

运营规模:公共云与私有云之对比

举例说明,假如我的公司实现的销售收入超过 10 亿美元,我们发现私有云可能比公共云更划算。私有内部云与公共云有许多相同的业务特征,但与小公司(比如销售收入低于 100 万美元)相比,私有云拥有更高水平的治理、安全性、可用性和可恢复能力。

使用公共云,数据可能会存储在未知位置,不容易检索。私有云则不同,允许用户从某个特定行政区划(比如美国)中的已知位置检索数据。未知位置不适合存储依从性、隐私和敏感测试数据。这些未知位置可能位于某些地理区域中,其中一个国家的隐私和依从性法规与另一个国家可能不同。各个国家之间的数据出口控制相关法律也可能不同。

创建阈值策略时,我的公司需要在云环境中拥有最高水平的工作负载需求动态平衡。当工作负载超过阈值水平时,系统必须能够快速创建额外的资源实例。

由于我的公司的经营规模较大,面向事务的工作负载要比小公司更高,事务类型的范围比小公司更大,数量也更多。由于事务类型由两位或三位数值或字母代码标识,因此大公司或小公司需要关联每种类型的业务事务类别。适用大公司的业务事务类别(比如金融租赁)可能不适用小公司。


行业类型

对于每种云服务类型,阈值策略在各个行业之间也各不相同。影响策略的因素包括组织类型、组织大小、市场条件、季节性工作负载需求、经济、变化的要求、新兴技术以及极端天气条件出现的频率。

数据中心的数量也取决于行业;例如,政府需要大量数据中心,一直在寻找通过租用随需所用服务节约成本、确保云环境中的运营可用性和安全性的方法。

我前面提到过 6 个行业示例 — 零售业、能源和公共事业、金融市场、医疗保健、电信和石油化工;还有其他行业。

  • 航空和国防
  • 汽车
  • 建筑
  • 消费品
  • 教育
  • 电子
  • 森林和纸张
  • 政府保险
  • 生命科学
  • 媒体和娱乐
  • 金属和采矿
  • 旅游和运输
  • 制造和装配
  • 工业品
  • 造船
  • 批发和服务

比较和对比零售业和石油/化工业关于阈值策略的注意事项。当每个行业的系统检测到工作负载需求超过阈值水平时,系统迅速创建额外的资源实例来动态平衡工作负载需求。当工作负载需求降到阈值水平之下时,此前分配的资源实例将被释放。

零售业包括许多大大小小的公司,它们致力于将产成品销售给终端用户消费者。石油/化工业包括许多工业工厂、大公司和小公司,它们投资石油、天然气和化工产品并将其销售给工业消费者。

零售业的工作负载需求激增通常是可预测的(比如圣诞节购物高峰)。而石油化工业的工作负载需求变化通常基于不同的因素,这些因素不容易预测,因此通常需要进行跟踪:经济、供应链优化的推动力、深度石油钻探投资、以及不可预测的极端天气条件(比如某年出现暖冬,下一年却是暴风雪)。

事务类型的区别(工业 vs. 零售业)和公共云、私有云或混合云的选择都影响阈值策略的创建。事务类型用于根据业务或产品组分组收入和费用项目。


良好的阈值策略

良好的资源管理对于云环境中的资源使用平衡很重要。阈值策略确保资源使用被动态平衡,以便进行应用程序测试和生产。应用程序测试和产品测试相比可能有不同的阈值需求。预先使用容量规划来准备您的系统,以便当工作负载需求到达阈值水平时分配额外的资源实例。

尽管 IT 专业人员习惯于用抽象术语进行思考,但开始处理阈值策略创建的一个关键方面是记住工作负载需求的一个关键组件是物理的:您正在依赖一些物理组件的可靠性等级,即使您使用的是无线设备。

阈值策略应该设置为阈值水平应该具有的内容,比如将一个阈值水平设置为一个或多个磁盘的 75% 或 85% 的容量。阈值策略还应该包含记录日志和监控资源使用情况的机制。

除容量外,当阈值水平达到时,分配的资源实例的数量和分配实例所需的响应时间都应该位于日志中。另外,日志还应该包括:

  • 应用程序的有状态性
  • 恢复点
  • 故障转移机制
  • 云服务安全性

有状态性

有状态性(statefulness)是指在云环境中,应用程序的一个状态是否能充分响应应用程序功能的后续状态。例如,在下面这个经过极度简化的场景中,一个状态应该转到流程后面的一个功能状态:

  1. 消费者在线选择了一个零售项目
  2. 零售商将选中的项目放到购物车中
  3. 消费者提供信用卡信息
  4. 消费者提交订单
  5. 零售商验证信用卡信息
  6. 零售商提供一个订单编号和预计交付时间
  7. 零售商感谢消费者下订单
  8. 消费者收到一封订单确认电子邮件
  9. 消费者收到一封电子邮件,被告知订单正在运输途中

如果步骤 2 的功能状态没有转到步骤 3,问题的原因可能是什么呢?

  • 应用程序中的新构建破坏了逻辑吗?
  • 当系统检测到阈值水平超出工作负载需求时,是阈值水平设置得太高,剩余的资源不足以继续操作吗?
  • 如果阈值水平适当,云中有足够的额外资源实例来确保一个步骤的状态转到下一个步骤吗?

日志应该显示应用程序处于什么状态,以及状态完成是否成功。

恢复点

在系统出现问题之前,系统应该在不同的时间点创建一个恢复点(有计划、手动和安装三类)。

包含恢复点的磁盘的快照应该同时备份到本地系统中的磁盘和位于一个不同的远程位置的另一个磁盘。日志应该表明恢复点创建的时间和用于恢复系统的恢复点。

故障转移机制

系统还应该能够启动故障转移机制来继续运营可用性。

故障转移机制应该包含备用有线或无线连接,以防电信运营商意外切断连接到用户物理设施的光纤电缆或无线网络。日志应该表明故障转移中使用的设备类型和位置。

下面有一些故障转移机制示例:

  • 负载共享冗余。 两个或多个系统,每个系统的负载不超过总负载的 50%。当一个设备失败时,其他设备将接管其负载,中断时间很少甚至没有。
  • 实例资源冗余。 两个或多个资源实例,每个实例的负载不超过总负载的 50%。当一个资源实例失败时,其他资源实例将接管其负载。
  • 备用连接重试。 如果网络中断超过两分钟,即尝试通过备用连接重新连接另一个服务器。

云服务安全性

远程管理中的劣质凭证、协议暴露和实现缺陷都可能会威胁云服务安全性。重用 IP 地址可能会导致意外的 Denial of Service attack (DoS)。

黑客可能会蓄意使用导致 DoS 的病毒来攻击 SaaS。黑客将 PaaS 和 IaaS 平台作为 Command and Control centers (CnC),指挥 botnet(自动计算机网络)的操作以用于分布式拒绝服务(Distributed Denial of Service,DDoS)并在云中安装恶意软件。

日志应该显示一个云服务类型拥有何种类型的安全问题,以及该问题是在何时和如何修复的。


需要考虑的问题

尽管您的服务供应商通常负责底层云计算系统,您仍旧对确保以下几点负有法律责任:它们的系统满足您的法规要求,它们的实践比较安全,它们的管理员没有授权无法访问您的数据,以及有一个 SLA 存在。

确保您理解 SLA 如何运行、阈值策略如何影响 SLA、以及有些什么流程和预期,以防您的服务供应商使您失望。

重要的 SLA 组件有正常使用时间可用性、性能标准、紧急响应时间、违约补救措施和安全性。

查明阈值水平与 SLA 中作为正常使用时间可用性的性能标准规定的那些阈值水平有什么不同。它们不应该设置为等于或高于这些可用性标准。选择最适合您的业务需求和预算的正常使用时间可用性(97% 或 99.9%)和阈值水平。

如果出现 SLA 违约,应该提供补救措施。例如,如果您的服务供应商违反了一个 SLA(在云中创建额外资源实例时响应过慢),那么该供应商应该发放一个免费信用或一个补偿。如果供应商在 3 个月时间内多次违反 SLA,则您应该有权终止服务。确认 SLA 中包含终止条款并仔细阅读相关条款。

如果您和您的供应商不同意一次停用的长度,SLA 是否规定谁和哪里将是权威来源?您需要知道发生一个事件之后应该等待多久才发出一个索赔请求?检查解决 SLA 中没有涉及的事项的保险策略,这些事项包括收入损失、信誉受损、数据泄露等。


结束语

设置一个阈值策略来动态平衡工作负载需求需要预先计划以解决在云环境中创建额外资源实例的问题。开发人员应该与云服务使用者和供应商沟通经济规模(公共云对私有云)和开发阈值策略以进行应用程序测试和生产等相关问题。预先使用容量规划来准备您的系统,以便在工作负载需求达到阈值水平时分配额外资源实例。

参考资料

学习

获得产品和技术

  • 查看 IBM Smart Business Development and Test on the IBM Cloud 上提供的 产品映像

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Industries, SOA and web services
ArticleID=643089
ArticleTitle=在云环境中平衡工作负载
publish-date=03242011