精华内容
下载资源
问答
  • 计算云服务——弹性伸缩服务
    2021-10-09 19:10:51

    AS简介

    弹性伸缩(Auto Scaling)是根据用户的业务需求,通过策略自动调整其业务资源的服务。您可以根据业务需求自行定义伸缩配置和伸缩策略,降低人为反复调整资源以应对业务变化和高峰压力的工作量,帮助您节约资源和人力成本。

    AS产品架构
    在这里插入图片描述
    AS产品优势

    • 自动调整资源

    • 提高可用性

    • 加强成本管理

    • 提高容错能力
      自动调整资源——按需调整云服务器资源
      按需调整云服务器资源向应用系统中添加弹性伸缩,能够实现按需调整资源,即能够实现在业务增长时增加实例,业务下降时减少实例,这样加强了应用系统的成本管理。
      调整资源主要包括以下几种方式:

    • 动态调整资源:动态调整资源是通过告警策略的触发来调整资源。

    • 计划调整资源:计划调整资源是通过定时策略或周期策略的触发来调整资源。

    • 手工调整资源:通过修改期望实例数或手动移入、移出实例来调整资源。

    向应用程序中添加弹性伸缩,弹性伸缩会自动根据需求调整服务器的数量,如图所示,为您节约成本并且满足高峰期的需求。
    在这里插入图片描述
    弹性伸缩能够实现按需调整带宽,即能够实现在业务增长时扩大带宽,业务下降时减小带宽,加强了应用系统的成本管理。

    用户可以根据实际情况选择如下伸缩带宽策略来实现按需调整IP带宽:

    • 告警策略:可设置出网流量、出网带宽等告警触发条件,系统检测到触发条件满足时,会自动调整带宽的大小。

    • 定时策略:系统可根据定时策略在固定的时间自动将带宽增大、减小或者调整到固定的值。

    • 周期策略:系统可根据周期策略周期性的调整带宽大小,减少了人工重复设置带宽的工作量。

    以上只更改带宽,不改变服务器数量
    自动调整资源–按可用区均匀分配实例
    定义:尽可能地将实例均匀的分布在不同的可用区中,来降低电力、网络等可能出现的故障对整个系统稳定性的影响。
    在这里插入图片描述
    AS使用场景
    在这里插入图片描述

    更多相关内容
  • ACP 学习-03-弹性伸缩(Auto Scaling)

    千次阅读 2020-09-03 23:23:06
    使用弹性伸缩(Auto Scaling),您可以根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。 弹性伸缩不仅适合业务量不断波动的应用...

    弹性伸缩

    使用弹性伸缩(Auto Scaling),您可以根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。

    弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。

    弹性伸缩效果示例

    您需要提前设置触发弹性伸缩的条件。

    下图中,监控项为伸缩组内ECS实例的vCPU使用率平均值,并假设触发弹性扩张的阈值为80%,触发弹性收缩的阈值为30%。

    弹性伸缩效果示例

    弹性扩张

    当您的业务升级时,弹性伸缩为您自动完成底层资源升级,避免访问延时和资源超负荷运行。

    您可以配置云监控实时关注您的ECS实例使用情况。

    例如,当云监控检测到伸缩组内的ECS实例vCPU使用率突破80%时,弹性伸缩根据您配置的伸缩规则弹性扩张ECS资源,自动创建合适数量的ECS实例,并自动添加ECS实例到负载均衡实例的后端服务器和RDS实例的访问白名单中。

    弹性扩张时,弹性伸缩使用伸缩组的组内实例配置信息自动创建ECS实例,实例配置信息支持实例的规格、操作系统、用户自定义数据等,更多说明请参见组内实例配置信息来源概述。

    您可以登录ECS管理控制台启动、停止已创建的ECS实例,也可以远程登录ECS实例修改系统配置。

    弹性扩张

    弹性收缩

    当您的业务需求下降时,弹性伸缩为您自动完成底层资源释放,避免资源浪费。

    您可以配置云监控实时关注您的ECS实例使用情况。

    例如,当云监控检测到伸缩组内的ECS实例vCPU使用率低于30%时,弹性伸缩根据您配置的伸缩规则弹性收缩ECS资源,自动释放合适数量的ECS实例,并自动从负载均衡实例的后端服务器和RDS实例的访问白名单中移除ECS实例。

    弹性收缩

    弹性自愈

    弹性伸缩提供健康检查功能,自动监控伸缩组内的ECS实例的健康状态,避免伸缩组内健康ECS实例低于您设置的最小值。

    当检测到某台ECS实例处于不健康状态时。

    弹性伸缩自动释放不健康ECS实例并创建新的ECS实例,自动添加新ECS实例到负载均衡实例的后端服务器和RDS实例的访问白名单中。

    弹性自愈

    产品优势

    功能概述

    根据客户业务需求自动调整ECS实例数量。

    自动向负载均衡的后端服务器组中添加或移除相应的ECS实例。

    自动向RDS访问白名单中添加或移除ECS实例的IP。

    产品特点

    随需应变:根据需求“恰到好处”地分配资源,无需您提前预测需求变化,实时应对需求突增。

    自动化:无需人工干预,自动创建和释放ECS实例,自动配置负载均衡和RDS访问白名单。

    伸缩模式丰富:多模式兼容,可同时配置定时、动态、自定义、固定、健康模式,可通过API对接外在监控系统。

    智能:智能调度云计算资源,应对各种复杂场景。

    应用场景

    某视频公司:春晚或每周五热门节目来临时,负载激增,需及时、自动扩展云计算资源。

    某视频直播公司:业务负载变化难以预测,需要阿里云自动根据CPU利用率、应用负载、带宽利用率作为衡量指标进行弹性伸缩。

    某游戏公司:每天中午12点及晚上6点到9点间需求增长,需要定时扩容。

    某电商:在大促中,临时激增大量云服务器需求,需要在数分钟内实现从创建到可用。

    功能限制

    使用弹性伸缩时具有以下功能限制:

    弹性伸缩只支持自动增加或减少伸缩组内ECS实例的数量,不支持自动提升或降低单台ECS实例的vCPU、内存、带宽等配置。

    部署在伸缩组内ECS实例上的应用必须是无状态并且可横向扩展的。

    伸缩组内ECS实例可能会被自动释放,因此不适合保存会话记录、应用数据、日志等信息。如有需要,您可以将会话记录等状态信息保存到独立的状态服务器,将应用数据保存到云数据库RDS,将日志存储到日志服务,更多说明请参见什么是云数据库RDS和什么是日志服务。

    弹性伸缩不支持自动将ECS实例添加到Memcache实例的访问白名单,您需要自行添加,具体操作请参见设置IP白名单。

    基本概念

    弹性伸缩

    弹性伸缩是根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务。其能够在业务增长时自动增加 ECS 实例,并在业务下降时自动减少 ECS 实例。

    伸缩组

    伸缩组是具有相同应用场景的 ECS 实例的集合。伸缩组定义了组内 ECS 实例数的最大值、最小值及其相关联的负载均衡实例和 RDS 实例等属性。

    伸缩配置

    伸缩配置定义了用于弹性伸缩的 ECS 实例的配置信息。

    伸缩规则

    伸缩规则定义了具体的扩展或收缩操作,例如加入或移出 N 个 ECS 实例。

    伸缩活动

    伸缩规则成功触发后,就会产生一条伸缩活动。伸缩活动主要用来描述伸缩组内 ECS 实例的变化情况。

    伸缩触发任务

    用于触发伸缩规则的任务,如定时任务、云监控的报警任务。

    冷却时间

    冷却时间是指,在同一伸缩组内,一个伸缩活动执行完成后的一段锁定时间。在这段锁定时间内,该伸缩组不执行其他的伸缩活动。

    备注

    伸缩组包含伸缩配置、伸缩规则、伸缩活动。

    伸缩配置、伸缩规则、伸缩活动依赖伸缩组的生命周期管理,删除伸缩组的同时会删除与伸缩组相关联的伸缩配置、伸缩规则和伸缩活动。

    伸缩触发任务有定时任务、云监控报警任务等类型。

    定时任务独立于伸缩组存在,不依赖伸缩组的生命周期管理,删除伸缩组不会删除定时任务。

    云监控报警任务独立于伸缩组存在,不依赖伸缩组的生命周期管理,删除伸缩组不会删除报警任务。

    参考资料

    自动伸缩

    展开全文
  • 弹性伸缩AS

    千次阅读 2021-04-25 15:03:38
    了解弹性伸缩服务的概念,应用场景 掌握弹性伸缩(Auto Scaling)的功能,组成 掌握弹性伸缩(Auto Scaling)的基本操作 目录 AS的概念 弹性伸缩AS的概念 AS适合的场景 AS使用的功能限制 AS的配置 AS使用流程 ...

    1.弹性伸缩AS的概念

    为什么需要AS

    当一台服务器不能满足业务需求的时候,我们可以用多台服务器搭配SLB负载均衡来实现共同访问,对外提供服务。当服务器太多的时候,我们可以减少服务器数量来节省成本。可是呢,这样就带来几个问题:

    • 增减/减少后端服务器需要手动管理完成
    • 还需要实时关注业务状态或者预测业务需求量来决定什么时候增加/减少服务器,这都是增加了很多工作负担,而且这个预测业务需求访问量不一定准确

    为了解决这个问题,就有了AS弹性伸缩(Auto Scaling)

    弹性伸缩AS(Auto Scaling)的概念

    AS可以根据业务需求和策略来设置伸缩规则,自动调整后端服务器ECS的数量,在业务需求增长时自动增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。不用用户手动管理后端服务器的数量,不用用户预判业务需求访问量来管理(增减/减少)后端服务器数量。AS调整后端服务器数量的依据规则有多种。

    1. 云监控服务器的状态:监控主机CPU使用情况等,如果伸缩组内ECS实例vCPU使用率平均值>80%,尝试添加ECS实例;如果伸缩组内ECS实例vCPU使用率平均值<30%,尝试移除ECS实例
    2. 定时:几点调整。后面会详细介绍

    弹性伸缩AS效果示例

    使用弹性伸缩需要提前设置触发弹性伸缩的条件。下图中,监控项为伸缩组内ECS实例的vCPU使用率平均值,并假设触发弹性扩展的阈值是80%,触发弹性收缩的阈值为30%。

    AS适合的场景

    AS对业务量不断波动的应用程序和业务量稳定的应用程序都适用,使用场景主要分为:弹性扩展,弹性收缩和弹性自愈

    1. 弹性扩张:当业务升级时,弹性伸缩会自动完成底层资源(ECS)升级,避免访问延迟和资源超负荷运行
    2. 弹性收缩:当业务需求下降时,弹性伸缩会自动完成底层资源(ECS)释放,避免造成资源浪费
    3. 弹性自愈:对业务量稳定的应用程序,可以用到弹性自愈:弹性伸缩提供健康检查功能,自动监控伸缩组内的ECS实例的健康状态,避免伸缩组内健康ECS实例低于设置的最小值

    AS的伸缩模式--AS如何实现伸缩

    弹性伸缩模式是指当我们使用弹性伸缩时,应该如何弹性伸缩。弹性伸缩模式包括以下几种:

    1. 定时模式:自定义自动伸缩发生的时间和频率,如每天13:00 增加ECS实例
    2. 动态模式:基于云监控性能指标如CPU利用率,自动增加或减少ECS实例
    3. 固定数量模式:通过设置最小实例数MinSize,即健康运行的ECS实例最小数量,以保证可用性
    4. 自定义模式:通过API调用自有监控系统,可以执行手动伸缩。
      1. 手工执行伸缩规则
      2. 手工添加或移除既有的ECS实例
      3. 自定义MinSize,MaxSize,弹性伸缩会自动创建或释放ECS实例,将当前ECS实例数量维持在MinSize与MaxSize之间
    5. 健康模式:如ECS实例为非Running状态,弹性伸缩将自动移除或释放不健康的ECS实例
    6. 多模式并行:以上所有模式都可以组合配置。

    每种模式分别适用于哪些场景?

    弹性伸缩AS的优势

    • 随需应变:根据需求恰到好处地分配资源
    • 自动化:无需人工干预,自动创建和释放ECS实例
    • 智能:智能调度云计算资源
    • 伸缩模式丰富:多模式兼容,可以同时配置多种模式

    2.弹性伸缩AS的组件

    AS的组件

    • 伸缩组:伸缩组是具有相同应用场景的ECS实例的集合。伸缩组定义了组内ECS实例数的最大值,最小值及其相关联的负载均衡实例和RDS实例等属性。伸缩组内最少最多可以有多少台ECS实例。
    • 伸缩配置:伸缩配置定义了用于弹性伸缩的ECS实例的配置信息,是伸缩组自动创建ECS实例时的模板,确定付费模式,实例,镜像(自定义镜像/共享镜像),公网IP,安全组,登陆凭证,伸缩配置名称等。
    • 伸缩规则:定义了具体的扩展或收缩操作,例如加入或移除N个ECS实例,增加还是减少。可以手动执行或者自动触发(按任务执行)
    • 伸缩活动:伸缩规则成功触发后,就会产生一条伸缩活动。伸缩活动主要用来描述伸缩组内ECS实例的变化情况
    • 伸缩触发任务:用于触发伸缩规则的任务,如定时任务,云监控的报警任务。
    • 冷却时间:在同一伸缩组内,一个伸缩活动执行完后的一段锁定时间。在这段锁定时间内,该伸缩组不执行其他的伸缩活动

    伸缩组包括伸缩配置,伸缩规则,伸缩互动。伸缩配置,伸缩规则,伸缩活动依赖伸缩组的生命周期管理,删除伸缩组的同时会删除与伸缩组相关联的伸缩配置,伸缩规则和伸缩活动。

    伸缩触发任务有定时任务,云监控报警任务等类型。伸缩触发任务不依赖于伸缩组

    1. 定时任务独立于伸缩组存在,不依赖于伸缩组的生命周期管理,删除伸缩组不会删除定时任务。
    2. 云监控报警任务独立于伸缩组存在,不依赖伸缩组的生命周期管理,删除伸缩组不会删除报警任务。

    生命周期挂钩

    生命周期挂钩是指:在伸缩组进行伸缩活动时,正在加入或正在移出伸缩组的实例将被挂钩挂起并置于等待状态。生命周期挂钩近在自动创建或移出ECS实例时生效手动添加或移出ECS实例时不受影响

    ECS被挂钩就是说ECS的生命周期来伸缩组的生命周期保持一致。在实例保持等待状态的时间内,当前伸缩组将具有以下特性:

    • 伸缩组不再运行其他的伸缩互动
    • 保留指定时长的操作时间,即挂钩的超时时间,可以在挂起期间执行自定义操作,例如,初始ECS实例配置或者获取ECS实例数据
    • 可以删除生命周期挂钩来恢复执行伸缩活动
    • 可以调用相关API来结束生命周期活动或者删除生命周期挂钩

    3.弹性伸缩AS的配置流程

    AS的配置步骤

    使用弹性伸缩AS,首先需要开通AS服务,然后按照以下步骤来使用弹性伸缩AS:创建伸缩组,创建伸缩配置,启用伸缩组,创建伸缩规则,创建定时任务,创建报警任务

    1.创建伸缩组

    创建伸缩组和伸缩配置是实现自动伸缩的第一步,伸缩组是具有相同应用场景的ECS实例的集合伸缩配置是伸缩组自动创建ECS实例时的模板,启动伸缩组必须给伸缩组添加伸缩配置,因为伸缩组需要根据伸缩配置(自定义镜像)来创建ECS。伸缩组的配置项如下

    • 伸缩组内实例模板的来源
      • 如果从0开始创建伸缩组,伸缩组创建完成后没有可用的伸缩配置来源,必须继续创建伸缩配置
      • 通过已有的ECS实例创建
      • 通过启动模板创建
    • 伸缩组基本信息
      • 伸缩组名称
      • 组内最大实例数
      • 最内最小实例数
    • 组内实例扩缩容配置的网络类型:创建伸缩配置时选择的实例规格的网络类型

    2.创建伸缩配置

    伸缩配置是伸缩组自动创建ECS实例时的模板,确定付费模式,实例,镜像(自定义镜像/共享镜像),公网IP,安全组,登陆凭证,伸缩配置名称等。

    • 付费模式:只能按量付费和抢占式实例,没有包年包月。弹性伸缩服务免费,但是加速伸缩组的ECS实例需要按云服务器ECS的定价支付费用
    • ECS实例规格
    • 镜像:自定义镜像或者共享镜像,实例启动后,系统盘将完整复制镜像的操作系统和应用数据
    • 公网IPv4,可选
    • 伸缩配置名称

    3.启用伸缩组

    启动伸缩组必须给伸缩组添加伸缩配置,因为伸缩组需要根据伸缩配置(包括自定义镜像的配置)来创建ECS

    4.创建伸缩规则

    伸缩规则是指增加还是减少ECS,可以手动执行或者自动触发(按任务执行)

    5.自动触发任务---定时任务

    自动触发任务可以自动执行伸缩规则

     6.自动触发任务---报警任务

    报警任务是按照监控的条件比如CPU使用率等 触发执行伸缩规则

    弹性伸缩AS的工作流程

    弹性伸缩AS的工作流程反应了AS怎么来增加或减少ECS实例的过程。创建好伸缩组,伸缩配置,伸缩规则,伸缩触发任务后,异常系统会自动化自行以下流程

    1. 伸缩触发任务会按照各自触发生效的条件来触发伸缩活动:伸缩触发任务包括 定时任务,自定义任务,健康检查任务和云监控任务
    2. 找到这个触发任务绑定的伸缩规则:系统自动通过ExecuteScalingRule接口触发伸缩活动,并在该接口中指定需要执行的伸缩规则的阿里云资源唯一标识符(Ari)
    3. 根据伸缩规则创建伸缩活动:根据步骤2传入的伸缩规则Ari(Rule Ari)获取伸缩规则,伸缩组,伸缩配置的相关信息,并创建伸缩活动
    4. 创建/移除ECS:在伸缩活动中,自动创建ECS实例并配置负载均衡和RDS
    5. 冷却:伸缩活动完成后,启动伸缩组的冷却功能。待冷却时间完成后,该伸缩组才能接收新的执行伸缩规则的请求。
      1. 频繁的触发伸缩活动会导致业务不稳定
      2. 冷却就是,当一个伸缩活动完成后,在冷却期内,不再自动触发下一次伸缩活动。
      3. 冷却期不限制手动触发

    弹性伸缩的报警任务

    弹性伸缩AS报警任务是弹性伸缩与云监控CMS深度合作,提供的一种动态管理伸缩组的方式,类似于弹性伸缩定时任务,弹性伸缩报警任务通过触发您指定的伸缩规则来执行伸缩活动,达到调整伸缩组内实例个数的目的。

    • 定时任务:在指定的时间执行指定的伸缩规则,当业务场景在时间上可预料时,能够提前做出响应,但是,在面对突发后者时间上不可预料的业务场景时,定时任务就显得捉襟见肘。
    • 报警任务:报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足您指定的报警条件时,触发报警任务,执行指定的伸缩规则。

    报警任务的创建流程

    报警任务包括系统监控项报警任务和自定义监控项报警任务。创建报警任务的流程如下:登录弹性伸缩控制台,单击自动触发任务管理->报警任务,单击创建报警任务,配置各项信息,完成

    4.弹性伸缩AS的计费和使用限制

    弹性伸缩AS的计费

    可以免费开通弹性伸缩服务。但是,如果弹性伸缩服务根据伸缩配置自动创建了ECS实例,或者手动添加了已有ECS实例,就需要为ECS实例支付费用。自动创建的ECS实例付费方式包括按量付费和抢占式实例:

    • 按量付费:按量付费是一种先使用后付费方式。使用这种方式,用户可以按需取用资源,随时开启和释放资源,无需提前购买大量资源
    • 抢占式实例:需要指定出价模式,当指定的实例规格当前市场价格低于出价时,就能成功创建抢占式实例,并按当前市场价格计费。抢占式实例创建成功后,操作与按量付费实例相同。
    • 弹性伸缩中没有包年包月!!!

    弹性伸缩AS的使用限制

    1. 部署在伸缩组内的ECS实例上应用必须是无状态并且可横向扩展的应用
      • 无状态:一次性的,数据发送完了就完事了。有10个窗口,找任意一个窗口都可以
      • 有状态:频繁交换一些数据,比如我在一个窗口办了一个业务,办了一半,想回去接着办。
    2. 伸缩组内ECS实例可能会被释放,因此不适合保存应用状态信息和相关数据等,比如会话记录,应用数据,日志等信息
    3. 弹性伸缩不支持自动将ECS实例添加到Memcache实例的访问白名单,需要自行添加。如果AS+SLB/RDS,那么新加的ECS实例会自动加入SLB/RDS,但是Memcache不行
    4. AS只能调整服务器的数量:无法纵向扩展,纵向扩展是指自动提升或降低ECS实例服务器的vCPU,内存,带宽等配置;弹性伸缩只能支持横向扩展,比如增加ECS服务器的数量。
    5. 能创建的伸缩组,伸缩配置,伸缩规则等有一定限制
    6. AS本身没有负载均衡的能力,AS只能调整ECS的数量。AS+SLB才能实现自动调整ECS服务器数量和负载均衡
    7. AS创建的ECS服务器需要使用自定义镜像,默认创建的ECS是空白的,不能提供用户需要的业务需求;用户在某台ECS上配置好业务服务,根据这台ECS创建自定义镜像,把这个镜像提供给AS创建ECS使用

    总结

    目标-ACA

    1. 了解弹性伸缩AS的概念
    2. 理解AS的使用场景

    目标-ACP

    1. 了解弹性伸缩服务的概念,应用场景
    2. 掌握弹性伸缩(Auto Scaling)的功能,组成
    3. 掌握弹性伸缩(Auto Scaling)的基本操作

    总结-ACP

    1. 弹性伸缩的概念
    2. AS中的组件概念
    3. 弹性伸缩的配置流程
    4. 弹性伸缩的使用限制

    思考题-ACP

    1. 弹性伸缩中生命周期挂钩有什么作用?适用于何种场合?生命周期挂钩在实例保持等待的时间内,当前生命周期不再执行任何其他的收缩活动,可以保留指定时长的操作时间,可以手动删除生命周期挂钩等
    2. 如果ECS无法满足众多数量用户访问,弹性伸缩AS能否解决用户访问体验差的问题?会存在什么问题?答:弹性伸缩比较适合用户访问量有波动的情况,并且需要结合SLB才能解决这种情况下用户访问体验差的问题。如果用户访问量一直都很大,还是要用SLB才能解决问题。
    展开全文
  • 背景弹性伸缩是根据用户的业务需求和策略,自动调整”其“弹性资源”的管理服务。通过弹性伸缩功能,用户可设置定时、周期或监控策略,恰到好处地增加或减少“弹性资源”,并完成实例配置,保证业务平稳健康运行。...

    20170615184547_663.jpg

    背景

    弹性伸缩是根据用户的业务需求和策略,自动“调整”其“弹性资源”的管理服务。通过弹性伸缩功能,用户可设置定时、周期或监控策略,恰到好处地增加或减少“弹性资源”,并完成实例配置,保证业务平稳健康运行。

    这里的调整是指:在满足业务需求高峰增长时无缝地增加“弹性资源”,并在业务需求下降时自动减少"弹性资源"以节约成本。

    在基于容器的PaaS平台中,弹性资源包含两种资源:微服务实例、宿主计算机资源

    属于IaaS计算资源池的范畴,PaaS并不直接操作这些资源,只提供一个触发器,用来打通PaaS和IaaS。当PaaS感知底层计算资源使用情况满足配置规则时,触发IaaS对资源池扩缩容。

    本文主要讨论第一种情况及“微服务实例”的自动弹性伸缩

    产品需求

    定义弹性伸缩功能,就是定义一下两块内容:

    触发规则:涉及在什么时候(定时、周期)、按照什么方式(监控项、判断标准)。

    弹性伸缩行为:定位目标资源、伸缩的流程控制。

    2.1用户视图

    从用户的角度,要指定某个微服务的弹性伸缩规则需要操作如下内容:

    目标对象:微服务名称

    全局参数:1.使能开关 2.单次伸缩操作可增减的实例数(步长) 3.最大实例数 4.最小实例数 5.两次操作之间的触发间隔 6.用于触发弹性伸缩行为的判断指标 (CPU/Memory/Calendar)

    目标对象:微服务名称

    CPU

    扩容规则:门限值(>95%)持续时间(5 min)

    缩容规则:门限值(<20%)持续时间(5 min)

    Memory

    扩容规则:门限值(>4GB)持续时间(5 min)

    缩容规则: 门限值(<500MB)持续时间(5 min)

    Calender

    周期类型(月/星期)

    起始时间(精确到秒,如:01日 08:00:00 - 03

    18:00:00)

    周期内弹性伸缩规则细节 (CPU/Memory/Calendar-Time)

    Calendar-Time:(CPU/Memory同上)

    伸缩方向:(Up/Down,进入该时 间段的起始时间执行扩缩容、偏离该时间段恢复原实例数)

    20170615184547_200.jpg

    UI界面

    2.2数据模型

    20170615184547_625.png

    方案-A

    软件架构如下图所示:

    20170615184548_768.png

    orchestration 统一调度和管理弹性伸缩规则,比如当某一个stack中的微服务配置了弹性伸缩规则,orchestration会负责启动service对应的实例,然后调用弹性伸缩API gateway的API来下发配置。配置里面包含了具体某个service所属的租户、环境、stack(通过它们可以在整个系统中唯一索引到一个service);同时,该配置中好包含了每一个service对应的弹性伸缩规则(即上一节中提到的全局参数和规则细节)。

    API gateway作为弹性伸缩对外的同一入口,一方面接受来自orchestration的用户配置并读取配置请求;另一方面,接收来自monitor的告警信息。

    DB用于存储弹性伸缩需要持久化的配置数据,以及操作日志等信息。

    20170615184548_558.png

    Routine负责弹性伸缩的处理逻辑;每一个 service都会通过golang启动一个routine。

    20170615184548_506.png

    由于每一个service的弹性伸缩规则都包含了其作用时间;于是,我们按照这些时间片划分,可以将每一个时间片的弹性伸缩规则看做该service的一个状态。那么,弹性伸缩的状态机的变化,就是由timer和外部事件驱动的。

    它们主要是以下三类事件:

    服务弹性伸缩规则更新

    接收到监控告警

    当前strategy的作用时间终结

    我们来分析这三种事件的响应方式

    服务弹性伸缩规则更新: 当用户在UI上修改某个微服务的弹性伸缩规则时触发该事件,它要求立即结束当前所在的状态(比如,从calendar类型状态中恢复微服务实例的数量,或者从CPU、Memory类型状态中删除配置到监控模块的告警规则...)

    接收到监控告警:需要判断当前是否处于CPU、Memory类型状态中,是否当前时间允许触发扩缩容操作。当这些条件都满足,然后确定伸缩的方向、步长、保障允许操作实例数的最大值最小值。然后对目标微服务做扩缩容操作。

    当前strategy的作用时间终结:实现中,先对微服务的所有strategy按照时间片段来排序,然后通过与当前时间比较,从而确定当前时间有效的current strategy。但是,通过计算current strategy时间片的结束时间与当前时间的差值来确定何时结束 current strategy的作用范围。于是,只需要设置一个timer,其超时时间为 (end time of current strategy - now time)。

    存在的问题与缺陷

    这样的设计,存在一定的缺陷:

    无法支持多实例部署:因为每一个 Routine本质是一个service的状态机,它的状态被外部事件驱动;意味着在多实例部署时,外部请求被哪个实例接收到,该实例就进入下一个状态;而其它实例并没有同步变化。

    数据操作繁琐:orchestration与弹性伸缩各自维护了一套service作为Key的数据表;当用户通过orchestration对某个服务的弹性伸缩规则做增删查改时,数据访问流程复杂;由于各自的数据结构不一致,涉及到繁琐的数据转换。

    协程间内部消息通信复杂:由于每一个service对应一个Routine,Routine与各种事件之间相互通信,需要引入较多的golang channel,一旦没用好,极容易导致阻塞。

    方案—B

    基于方案-A 设计存在的几种弊端,我们对 方案-A 做了一些改进,引入了 方案-B,具体如下

    与方案A的差异在于:

    在弹性伸缩服务内部,不设数据库。所有弹性伸缩的配置信息均存在orchestration的DB中,一旦有读取弹性伸缩配置的需求,orchestration会直接从自己的数据库中获取;数据结构可以完全基于orchestration的需求来定义,减少了数据转换流程,更加高效。

    在orchestration与弹性伸缩之间引入Redis。Redis作为orchestration与弹性伸缩之间传递配置信息,同时作为多个弹性伸缩实例间共享运行时状态数据的介质。它解耦了orchestration与弹性伸缩之间的强依赖,从而使得两者能够基于Redis上的数据各司其职。

    将之前基于service有状态的routine 更新为基于timer无状态的routine。新的Routine每秒钟被触发一次,

    从Redis读取弹性伸缩服务列表,并按照列表中包含的服务,逐一为每一个服务启动一个service Routine。service Routine无状态,只check当前时刻应该生效的strategy,是否与Redis中已存的current strategy一致。如果不一致,切换stategy(执行相应操作,比如删除上一个strategy发送到监控模块的告警规则,重新下发新的告警规则等),然后终结该service Routine。

    支持多个弹性伸缩服务实例。因为Routine内部不再维护一个多实例见无法同步的service的状态机,同时,redis作为多实例的一个共享数据介质,为支持多实例提供了条件。

    展开全文
  • 何为弹性伸缩

    2022-04-22 16:41:40
    弹性伸缩(Auto Scaling)是根据业务需求和策略自动调整计算能力(即实例数量)的服务。简单说就是它会根据服务器的使用情况,自动的新增和缩减服务器实例数。 最简单的例子,就如微博,在没有什么火爆热点的情况下...
  • 阿里云弹性伸缩服务入门介绍

    千次阅读 2019-08-25 11:44:15
    弹性伸缩服务(Elastic Scaling Service)是根据用户的业务需求和策略,自动调整其 弹性计算资源的管理服务。用户根据自己的业务需求自动调整其弹性计算资源,在满足 业务需求高峰增长无缝地增加 ECS 实例,并在...
  • 简介:混合云K8s容器化应用弹性伸缩实战1. 前提条件本最佳实践的软件环境要求如下:应用环境:①容器服务ACK基于专有云V3.10.0版本。②公共云云企业网服务CEN。③公共云弹性伸缩组服务ESS。配置条件:1)使用专有云...
  • Kubernetes—弹性伸缩

    2019-12-11 14:50:09
    弹性伸缩就是要解决当实际负载增大,而集群资源容量没来得及反应的问题。 1、Kubernetes中弹性伸缩存在的问题 常规的做法是给集群资源预留保障集群可用,通常20%左右。这种方式看似没什么问题,但放到Kubernetes中,...
  • 弹性伸缩具有应突发、省成本、自动化的业务价值。平台侧将各业务零散、闲置资源进行整合,形成一个大规模资源池,通过弹性调度、库存管控技术在公司运营成本和业务体感中寻求较好的平衡。本文将介绍美团...
  • 作者简介:杨森,达达集团DevOps & SRE 负责人,专注于提升分布式系统的稳定性和可观测性、弹性容量、故障自愈、多云容器架构及效能平台建设。面对节假日常规促销、618/双11...
  • 降本必备—弹性伸缩的基本原理

    千次阅读 2021-11-15 16:19:22
    弹性伸缩(Auto Scaling)是云商提供的、根据自身业务需求自动调整计算能力(即实例数量)的服务。使用该服务,实例数量可根据工作负载自动进行伸缩,从而在业务需求增长提供资源支持、在业务需求下降降低成本...
  • 云计算之弹性伸缩

    千次阅读 2019-04-11 21:02:02
    弹性伸缩是更具用户的业务需求和策略,自动调整其弹性计算资源的管理服务 弹性伸缩产品特点: 随需应变——根据需求“恰到好处”的分配资源,无需担心需求预测的准确性,无需担心突增的业务变化 自动化——...
  • 弹性伸缩这种功能,不是很多系统都已经实现了,我们直接用就行了吗,为什么还需要个指南呢。 因为。。。。我们先来看看都有哪些相关知识点吧。。。 弹性伸缩涉及到各种软硬件,各色调度平台,策略和系统,其本身...
  • 云计算最大的优势就在于弹性 云计算最大的优势就在于弹性。...利用横向的扩展和缩减,配合云计算的弹性伸缩,完全可以做到定时定量的伸缩,或者按照业务的负载进行伸缩。 二、存储弹性 当存储量增多,对
  • 数据库如何实现弹性伸缩

    千次阅读 2020-06-19 18:11:08
    在之前文章中,探讨过到底为什么要云原生,以及云原生的核心应该是【弹性伸缩】和【按需计费】。并且简单描述了下应用层做到【弹性伸缩】所需要解决的问题。 所以本文主要是继续探讨一下,弹性伸缩如何应用在数据库...
  • 弹性伸缩提供稳定实时的利用率数据,根据弹性伸缩的过程可以知看出,控制面强依赖于从监控系统中获取服务的实时资源利用率情况,我们需要尽可能避免利用率采集出错或者延迟太高,导致服务在需要扩容扩不上去的...
  • 企业运维实战--k8s学习笔记14.HPA自动弹性伸缩HPA实例查看监控-CPU、MEMHPA实例监控CPUHPA实例监控CPU+MEM HPA实例查看监控-CPU、MEM HPA(Horizontal Pod Autoscaler)Pod自动弹性伸缩,K8S通过对Pod中运行的容器...
  • 弹性伸缩服务AS
  • 弹性伸缩

    2020-11-27 16:09:31
    Kubernetes支持Pod和集群节点的自动弹性伸缩,通过设置弹性伸缩规则,当外部条件(如CPU使用率)达到一定条件,根据规则自动伸缩Pod和集群节点。 Prometheus与Metrics Server 想要做到自动弹性伸缩,先决条件就是...
  • 资源弹性伸缩 (Amazon Auto Scaling) 是云计算的本质能力之一,是云上降本增效的重要途径,也是衡量云原生成熟度的关键因素。依托亚马逊云计算提供的自动化能力,我们可以自动...
  • 弹性伸缩具有应突发、省成本、自动化的业务价值。平台侧将各业务零散、闲置资源进行整合,形成一个大规模资源池,通过弹性调度、库存管控技术在公司运营成本和业务体感中寻求较好的平衡。本文将介绍美团...
  • 弹性伸缩让应用的部署规模能够根据实时的业务量产生动态调整,在业务高峰期扩大部署规模,保证服务不被业务冲垮;在业务低谷期缩减部署规模,避免资源浪费。 由于大部分云资源是按需取用,按量计费模式,相比使用 ...
  • 微服务 弹性伸缩 Kasun Indrasiri是WSO2的集成架构主管。 开发人员越来越依赖微服务体系结构将应用程序构建为一组细粒度,重点狭窄且独立的服务,每个服务均独立开发和部署。 尽管微服务方法促进了敏捷性,但它也...
  • 本期溪歪歪专栏将带大家一起探索,关于腾讯云弹性计算产品的技术设计要点。 在各行各业都一定程度上适用这句话:Those who talk don’t know, and those who know don’t talk. —— 而我相信,你终将成为那个懂得...
  • 弹性伸缩(Auto Scaling),是根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务。弹性伸缩不仅适合业务量不断波动的应用程序, 同时也适合业务量稳定的应用程序。 弹性伸缩AS的功能与特性: 动态...
  • 更多内容关注微信公众号:fullstack8881、背景2018 年底,vivo AI 研究院为了解决统一高性能训练环境、大规模分布式训练、计算资源的高效利用调度等痛点,着手建设 AI 计...
  • 点此查看原文:http://click.aliyun.com/m/40810/弹性伸缩是一种根据业务需求和策略,自动调整其弹性计算资源的管理服务。2017年9月阿里云弹性伸缩服务伸缩配置新增了实例自定义数据、秘钥对、实例RAM角色、标...
  • 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着...
  • 弹性伸缩的应用场景与限制条件

    千次阅读 2018-11-14 21:00:59
    1、根据客户业务需求自动调整ECS实例数量。 2、自动向负载均衡的后端服务器中添加或移除相应的ECS实例。 3、自动向RDS访问白名单中添加或移除ECS实例的IP。 弹性伸缩的产品特点: 1、随需应变:根据需求...
  • K8S弹性伸缩简谈

    千次阅读 2020-08-11 11:07:24
    k8s 默认提供了多个服务粒度的弹性伸缩组件。主要有 VPA, addon resizer 和 HPA。 此外,各大云厂商也积极贡献提供了多种伸缩组件,例如阿里云提供的 cronHPA。 在服务粒度的伸缩中,依据执行触发时机不同,可分为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,358
精华内容 3,343
关键字:

弹性伸缩自动调整时可以调整哪些资源