预测性自动缩放引擎的制作方法_2

文档序号:8258174阅读:来源:国知局
实例135全部对应于单个分布式应用(例如,视频流服务)。应注意,虽然在每个计算节点130内示出单个应用实例135,但是此描述仅用于说明性目的,并且其他实施例可以在计算节点130上实例化两个或更多个应用实例135。更一般来说,本文描述的实施例可以配置具有用于将应用实例135托管在云计算环境120内的任何配置来进行使用。
[0020]在此,预测性缩放组件125可以在某一时间段内监控应用实例135的执行以收集历史性能数据140。通常,历史性能数据140包括与应用实例135的性能有关的数据,例如在单位时间期间特定应用实例平均处理多少到来的请求(例如,每分钟处理的请求)以及那些请求的等待时间(例如,处理单个请求平均花费多久)。此外,预测性缩放组件125可以在某一时间段内监控分布式应用的工作负载。例如,预测性缩放组件125可以监控来自客户端设备110的多个到来的请求以收集用于分布式应用的历史工作负载数据。预测性缩放组件125随后可以执行工作负载数据的统计分析(并且也潜在地执行历史性能数据140的分析)从而确定一个或多个缩放模式。
[0021]通常,缩放模式代表指示应用的未来工作负载的到来的工作负载的模式或趋势。这样的统计分析也可以考虑诸如当日时间、星期几、有关应用的工作负载等等的因素来确定缩放模式。例如,预测性缩放组件125可以确定对于给定的一天在峰值工作负载的时间之前的数个小时期间到来的工作负载的增加速率指示了峰值工作负载的量。例如,预测性缩放组件125可以确定在历史峰值工作负载的时间之前的数个小时期间(例如,当对视频流服务的需求最大的夜晚小时数)该应用的工作负载的相对大的增加速率指示该特定的一天的峰值工作负载将相对较高。作为另一示例,如果预测性缩放组件125确定应用的工作负载的增加速率相对较低,则预测性缩放组件125可以确定峰值工作负载对于特定的该天来说也将相对较低。当然,缩放模式的这些示例在非限制地提供并且仅用于说明性目的,并且更一般来说,与本文描述的功能相一致的、根据统计分析收集到的工作负载数据所确定的任何模式能够被使用。
[0022]在确定缩放模式后,预测性缩放组件125可以监控应用的当前工作负载以确定当前工作负载何时匹配所确定的缩放模式中的一个。继续以上示例,预测性缩放组件125可以确定对于给定的一天,应用的工作负载的增加速率在历史峰值工作负载的时段之前的数个小时期间相对较高。预测性缩放组件125随后可以基于缩放模式和应用的当前工作负载确定应用的预期的未来工作负载。在一个实施例中,预测性缩放组件125被配置为基于应用的启动时间来确定在未来时间点处的应用的未来工作负载。例如,如果应用的启动时间是约I小时,则预测性缩放组件125可以确定从当前时间开始I小时的应用的未来工作负载。在一个实施例中,未来时间点是基于应用的平均启动时间加上一些预定义的时段(例如,10分钟)来确定,以帮助确保将在未来工作负载之前启动应用实例。
[0023]一旦估计出应用的未来工作负载,则预测性缩放组件125随后可以确定满足估计的未来工作负载所需的应用实例的数量。通常,如果未来工作负载大于应用的当前工作负载,则可能需要实例化多个附加的应用来适应增加的工作负载。另一方面,如果估计出的未来工作负载小于当前工作负载,则可以关闭一些数量的应用实例以避免空闲或未充分利用的计算资源。
[0024]预测性缩放组件125然后可以基于所确定的满足估计出的未来工作负载所需要的应用实例的数量和应用实例的平均启动时间来确定用于预测性地缩放应用的计划。例如,预测性缩放组件125可以确定将需要10个附加应用实例来适应估计出的从现在开始I小时后的未来工作负载,并且还可以确定将需要20个附加的应用实例来适应估计出的从现在开始2小时后的未来工作负载。如果预测性缩放组件125随后确定应用实例具有45分钟的平均启动时间,则预测性缩放组件125可以确定计划来从现在开始15分钟后实例化10个附加的应用实例(S卩,以满足到估计出的未来I小时的工作负载)并且从现在开始75分钟后实例化10个附加的应用实例(即,满足估计出的未来2小时的工作负载)。有利地,这样做允许预测性缩放组件125基于应用的估计出的未来工作负载来预测性地缩放分布式云应用,从而允许应用更平滑地处理工作负载的波动。
[0025]另一方面,如果预测性缩放组件125确定未来工作负载小于当前工作负载并且将需要减少10个应用实例来处理未来工作负载,则预测性缩放组件125然后确定在时间窗内关闭特定应用实例的计划。这样做,预测性缩放组件125可以考虑应用实例的平均关闭时间。通过响应于预测出的未来工作负载的减少来减少应用实例的数量,预测性缩放组件125有助于避免未充分利用的应用实例,由此减少运行应用的成本。此外,这样做还释放与关闭的应用实例相关的计算资源,由此将这些资源释放以在需要时用于其他目的。
[0026]通常,预测性缩放组件125也可以与其他缩放和负载管理技术组合,从而确保应用的系统健康、可用性和最优化。作为示例,在一个实施例中,预测性缩放组件125被配置为结合反应性缩放组件来进行操作,该反应性缩放组件被配置为响应于工作负载(例如,到来的请求容量)的改变来添加或移除应用实例。例如,预测性缩放组件125可以被配置为基于应用的估计出的未来工作负载提供最小数量的活动的应用实例,而反应性缩放组件可以响应于未预期的工作负载来实例化附加的应用实例。在此,虽然传统的反应性缩放技术会响应于请求容量的暂时下降来减少活动的应用实例的数量,这样做会在应用的正常请求容量恢复时导致服务故障。在此情景下,预测性缩放组件125可以基于应用在未来时间点处预测出的工作负载来防止应用实例的数量降到应用实例的阈值数量之下,从而避免在正常请求容量恢复时的服务故障。有利地,将预测性缩放组件125与其他缩放技术(诸如反应性缩放组件)相组合可以提升系统的性能,允许反应性缩放组件响应工作负载的波动同时基于应用的预测的未来工作负载确保最小数量的应用实例保持实例化。
[0027]应注意,虽然以上示例涉及与反应性缩放组件相结合地工作的预测性缩放组件125,但是此示例是非限制地提供并且仅用于说明性目的。更一般来说,明白地预料到预测性缩放组件125可以结合多种其他缩放技术和更一般的工作负载管理技术来工作,从而提升系统的性能和效率。例如,预测性缩放组件125可以结合硬件缩放组件来工作,该硬件缩放组件被配置为基于应用的工作负载缩放执行应用实例的资源(例如,存储器、处理器等)。作为另一实例,预测性缩放组件125可以结合这样的组件来工作,该组件被配置为响应于应用的当前工作负载和/或预测的未来工作负载而缩放下游资源(例如,多个数据库实例、在其上执行数据库实例的硬件资源等)。
[0028]图2示出了根据本文描述的一个实施例的、配置有预测性缩放组件的计算基础设施。如图所示,云计算环境200包括预测性缩放组件125、未分配的计算资源210以及多个计算节点215。在此,每个计算节点215配置有一个或多个应用实例135和一个或多个监控组件225。在此实施例中,监控组件225可以监控其各自的应用实例135从而收集性能和工作负载数据。监控组件225随后可以将收集到的数据传输给预测性缩放组件125,并且预测性缩放组件125可以使用这些数据来预测性地缩放应用实例135的数量和计算节点215的数量。
[0029]例如,预测性缩放组件125可以确定应用实例135的当前工作负载与特定缩放模式相匹配,这指示应用的工作负载将在一些时间段内大体增加。响应于此确定,预测性缩放组件125可以使用未分配的计算资源210来分配多个附加的计算节点215,并且可以在这些附加的计算节点上初始化多个新的应用实例135。通常,预测性缩放组件125优选地确定在某个未来时间点处应用的未来工作负载(该未来时间点至少与应用实例的平均启动时间一样长),从而确保应用实例可以是完全可操作的并且准备好在该未来时间点处处理未来工作负载。例如,如果应用实例花费平均60分钟来完全初始化,则预测性缩放组件125可以配置成预测到未来75分钟的未来工作负载并且创建足以处理此估计出的未来工作负载的多个附加应用实例,从而使得应用实例将在未来工作负载之前被初始化且可操作。
[0030]在一个实施例中,预测性缩放组件125被配置为监控应用流量随时间的增长并且相应地调整其应用缩放。例如,视频流服务可能随时间持续增加其订户基数,并且使用视频流服务的订户数量可能逐月增加。因此,处理在一周中的给定时间点处到来的工作负载所需要的应用实例数量可能与订户基数的改变成比例地继续增加。例如,如果
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1