简介:阿里巴巴云原生团队和阿里达摩院决策智能时序团队合作开发 AHPA 弹性预测产品,该产品次要出发点是基于检测到的周期做“定时布局”,通过布局实现提前扩容的目标,在保障业务稳固的状况下,让你真正实现按需应用。
作者:元毅、子白
导读
在云原生容器时代,用户须要面对不同的业务场景:周期性的业务,Serverless 按需应用等。在应用主动弹性中,会发现这样或那样的问题,其中最须要关注的是弹性滞后、冷启动问题。阿里巴巴云原生团队和阿里达摩院决策智能时序团队合作开发 AHPA 弹性预测产品,该产品次要出发点是基于检测到的周期做“定时布局”,通过布局实现提前扩容的目标,在保障业务稳固的状况下,让你真正实现按需应用。
背景
用户对云弹性能力的冀望越来越高,这个冀望次要来自两方面。一是云原生概念的崛起,从 VM 时代到了容器时代,云的应用模式正在发生变化。二是新型业务模式的崛起,这些崛起的新型业务模式在设计之初就是基于云来建构的,人造就有对弹性的诉求。
有了云,用户不再须要本人从物理机、机房搭建基础设施,云给用户提供了十分弹性的基础设施。云的最大劣势就是能够给用户提供弹性的资源供应,特地是到了云原生时代,用户对弹性的诉求也越来越强烈。弹性需要强度在 VM 时代还是人工操作分钟级别的,在容器时代,曾经达到秒级的要求,用户面对不同的业务场景,对云的冀望和要求也正在发生变化:
周期性的业务场景:新型业务比方直播、在线教育和游戏,这些业务有一个很大的共同点就是有非常明显的周期性,这种周期性促使客户思考面向弹性的业务架构。再加上云原生的理念很天然的就想到按需弹起一批服务起来,用完就开释。
Serverless 的到来:Serverless 的核心理念是按需应用,主动弹性。用户不须要容量布局。但当你真正开始应用 Serverless 的时候,会发现这样或那样的问题,其中最须要关注的是弹性滞后、冷启动问题。对于响应时延敏感的业务,这是不可承受的。
那么面对下面的场景,以后 Kubernetes 中现有的弹性计划是否能够解呢?
传统弹性计划面临的问题
个别在 Kubernetes 中治理利用实例数有三种形式:固定实例数、HPA 和 CronHPA。应用最多的是固定实例数,固定实例数最大的问题就是在业务波谷时造成很显著的资源节约。为了解决资源节约的问题所以有了 HPA,但 HPA 的弹性触发是滞后的,这就导致资源的供应也会滞后,资源不能及时供应可能会导致业务稳定性降落。CronHPA 能够定时伸缩,看起来能够解决弹性滞后的问题,但具体定时粒度有多细、业务量有变动时须要频繁地手动调节定时弹性策略吗?如果这样做,这就会带来十分沉重的运维复杂度,也很容易出错。
AHPA 弹性预测
AHPA(Advanced Horizontal Pod Autoscaler)弹性预测次要出发点是基于检测到的周期做“定时布局”,通过布局实现提前扩容的目标。但既然是布局就会有疏漏,所以须要对布局的实例数有一个实时调整的能力。所以本计划有两个弹性策略:被动预测和被动预测。被动预测基于达摩院 RobustPeriod 算法[1] 辨认周期长度而后利用 RobustSTL 算法[2] 提起出周期性趋势,被动预测下个周期利用的实例数量;被动预测基于利用实时数据设定实例数量,能够很好的应答突发流量。此外,AHPA 还减少了兜底爱护策略,用户能够设置实例数量的上下界。AHPA 算法中最终失效的实例数是被动预测、被动预测及兜底策略中的最大值。
架构
弹性首先是要在业务稳固的状况下进行的,弹性伸缩的外围目标不仅是帮用户节省成本,更是加强业务的整体稳定性、免运维能力和构建外围竞争力。AHPA 架构设计的根本准则:
稳定性:保障用户服务稳固的状况下进行弹性伸缩
免运维:不给用户减少额定的运维累赘,包含:不在用户侧减少新的 Controller、Autoscaler 配置语义比 HPA 更清晰
面向 Serverless:以利用为核心,面向利用维度的设计,用户无需关怀实例个数的配置,按需应用、主动弹性。
架构如下:
- 丰盛的数据指标:反对包含 CPU、Memory、QPS、RT 以及内部指标等
- 稳定性保障:AHPA 的弹性逻辑基于被动预热、被动兜底的策略,并联合降级爱护,保障了资源稳固。
被动预测:依据历史预测出将来一段时间的趋势后果,实用于周期性的利用。
被动预测:实时预测。针对突发流量场景,通过被动预测实时筹备资源。
降级爱护:反对配置多个工夫区间范畴最大、最小实例。
- 多种伸缩形式:AHPA 反对伸缩形式包含 Knative、HPA 以及 Deployment:
Knative:解决 Serverless 利用场景下,基于并发数 /QPS/RT 弹性冷启动的问题
HPA:简化 HPA 弹性策略配置,升高用户应用弹性的门槛,解决应用 HPA 面临的冷启动的问题
Deployment:间接应用 Deployment,主动扩缩容
适应场景
AHPA 适应场景包含:
- 有显著周期性场景。如直播、在线教育、游戏服务场景等
- 固定实例数 + 弹性兜底。如常态业务下应答突发流量等
- 举荐实例数配置场景
预测成果
开启 AHPA 弹性后,咱们提供可视化页面,用于查看 AHPA 成果。上面是一个基于 CPU 指标进行预测的示例(与应用 HPA 比拟):
阐明:
Predict CPU Oberserver:蓝色示意 HPA 理论的 CPU 使用量,绿色示意预测进去的 CPU 使用量。绿色曲线大于蓝色,表明通过预测给出的容量是足够的。
- Predict POD Oberserver:蓝色示意应用 HPA 理论的扩所容 Pod 数,绿色示意预测进去的扩所容 Pod 数,绿色曲线小于蓝色,表明通过预测弹性的 Pod 数更低。
- 周期性:依据历史 7 天的数据,通过预测算法检测到该利用具备周期性。
论断:预测结果表明,弹性预测趋势合乎预期。
邀测试用
点击此处查看阿里云容器服务 AHPA 弹性预测产品文档详情。以后 AHPA 已开启用户邀测,欢送感兴趣的用户点击文档中“提交工单”地位申请白名单,期待您的试用及反馈。
参考文献
[1] (阿里达摩院决策智能时序团队) Qingsong Wen, Kai He, Liang Sun, Yingying Zhang, Min Ke, and Huan Xu. RobustPeriod: Robust Time-Frequency Mining for Multiple Periodicity Detection, in Proc. of 2021 ACM SIGMOD/PODS International Conference on Management of Data (SIGMOD 2021), Xi’an, China, Jun. 2021.
[2] (阿里达摩院决策智能时序团队) Qingsong Wen, Jingkun Gao, Xiaomin Song, Liang Sun, Huan Xu, Shenghuo Zhu. RobustSTL: A Robust Seasonal-Trend Decomposition Algorithm for Long Time Series, in Proc. of the 33rd AAAI Conference on Artificial Intelligence (AAAI 2019), 2019, pp. 5409-5416, Honolulu, Hawaii, Jan. 2019.
[3] (阿里达摩院决策智能时序团队) Qingsong Wen, Zhe Zhang, Yan Li and Liang Sun. Fast RobustSTL: Efficient and Robust Seasonal-Trend Decomposition for Time Series with Complex Patterns, in Proc. of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD 2020), San Diego, CA, Aug. 2020.
原文链接
本文为阿里云原创内容,未经容许不得转载。