Serverless AI训练营:课时5:云原生体系下 Serverless 弹性探索与实践(五)
课时5:云原生体系下 Serverless 弹性探索与实践(五)
然后应用生命周期管理是可以配置优雅下线,比如执行缩容时应用可能是需要执行一些机械操作,这都可以配置一些通过提供应用生命周期的对应的接口,然后配置对应的脚本来执行。同时建议采取指数重试的机制,实际上也是标配了。
相当于请求的时候,如果是遇到一些情况,然后进行整体的超时重试的处理。以及应用启动速度优化,刚才说的是内部 SE 平台为用户提供一些优化的手段,然后作为用户也可以对应用进行启动优化,其中最主要的是对软件包的优化,比如优化应用的启动时间,减少因内夹带缓存等外部依赖导致的应用的启动,以及优化镜像大小。网上也有很多关于镜像大小如何优化的文章可以参考一下。
2.弹性最佳实践:弹性伸缩配置
在弹性伸缩具体的配置阶段,也要有很多用户困惑具体的指标指的应该配多少,这个也是比较灵活的。弹性伸缩主要配置,刚才说它支持非常多的指标,比如说 CPU 内存等。需要根据应用的具体属性,它是 CPU 敏感还是内存敏感还是IOO 敏感进行灵活的选择。可以通过技术监控或者应用监控它的历史的指标。
比如最近六天,最近十二天七天,或者是它的 CPU、P99的数值,然后来预估现在整体的容量负载情况。或者可能这阵儿都没流量,那可以通过 PCS 进行加测,然后来估计应用的负载容量整体是什么情况,然后来了解单实力或者当前应用到底能扛住多少的请求,需要多少 CPU 内存。
以及高负载情况下这个应用会有什么异常的超值还是崩溃等来评估容量大小。而指标值是一个权衡,是一个可能性以及成本的权衡。如果更加侧重于可能性,可以把指标值配低一些,比如 CPU 就是40%就破了。
如果是更加侧重于成本,可以把这个指标值配高一点,如果CPU达到60%再破,或者可能想达到一个平衡,可能性和成本兼具,可以配50%。同时因为这往往应用系统比较复杂,它不是单实业,它是多个系统协作的过程,当一个实际数破的时候,会让整体的上下游,这样也建议梳理整体的上下游,比如依赖的 DB 方向键和相关依赖。并配置相应的弹性规则或者一些垄断的手段来确保扩容时的全连路都是可以曝光可能性。
同时,在配置弹性伸缩之后,也可以通过完善所有性的手段来不断调整弹性配置。刚才说的是指标配置的建议,对于最大值最小值也有一些建议,比如说最大值应该考虑可能区,每个可能区都有对应的IP。
要考虑 IP 是否充足,要不就空出来了。最小值建议不要保保持单实力,建议大于等于二,并且配置多层序,这样是可以防止某个可能区有问题就可以迁移到另一个区,或者是单实力完全没有高可用的。因为都是无状态运用,多个实力是完全ok的,可以保证整体的高可能。
3. 弹性最佳实践:弹性伸缩过程
然后在整个整体的弹性伸缩过程的时候,需要关注几个点,比如说弹性伸缩是否到达最大值了。它意味着一方面可能流量预估不太准,或者是最大值配的可能是有问题,或者是应用可能出现一些异常,可能是异常流量导致实际数已经到达最大值了。
还有可能区再均衡,也是做可能区的时候,扩缩会有一些情况,它的可能区分布不均衡,可以通过重启来实现可能区的再均衡,以及自动恢复弹性配置。在应用部署和自动反应是互斥的,相当于发一个版本的时候会把自动反应给停掉。
因为发版本的时候,势必会影响整个指标移动。可能会把具体实际数和与 HPa 计算的实际数会有冲突,所以实际数给关掉了,但是也非常人性化的这个提供了自动恢复的功能,部署完之后再给回复。
4. 弹性最佳实践:弹性伸缩可观测
最后是可观测,这里是对弹性的历史记录进行观测,或者是对于弹性的实践进行通知。这是内部的报表,可以看到整体的包括HPA 的配置以及整体的 reconcile,每次请求有一个间隔,还有它的具体的耗时以及对应的监控数据对实际数的整体的变动,内部都可以非常清晰的看懂,对外也是不断完善整体对外报表的开发。
5. 弹性最佳实践:客户案例
上述是整个用户从配置 HPA,配置弹性伸缩从准备到如何配置,再到配置完之后需要怎么来不断完善的实践。这里讲一个客户案例,这个是在去年相关运行期间,在线教育内非常火。
它流量暴涨七到八倍,硬件成本和业务能性都面临着巨大风险。如果此时用户采取传统的架构,ECS的架构,用户就需要在非常短的时间内来做整个基础架构的升级。这对用户的成本和精力的挑战都是非常大的。
但是如果采用SE,它就充分发挥了 severless 带来的技术能力的作用。用户可以把应用用在SE 上,然后同时通过刚才介绍 SE 的多场景,采用策略的配置,弹性自适性,及时可观测能力,可以轻松应对流量突增的情况。然后通过上述各项能力实现了用户全托管,零改造,极大的减少了它的部署行为的成本,提高它的效率。也保证在流量暴涨七到八倍的情况下,也是保证业务高峰期的SEA。
同时借助了刚才说的秒级弹性的节约效率功能,这种特性来节省闲置资源成本,达到了35%。
综上在弹性发展上,尤其在收费的场景,更加注重应对突发流量的能力。
SE通过对弹性组件和应用全生命周期的不断优化,达到了秒级弹性,运营在弹性能力上,场景横幅度以及稳定上都有核心的竞争力,是传统应用零改造 severless 的最佳选择。