课时5:云原生体系下 Serverless 弹性探索与实践(四)

本文涉及的产品
简介: 课时5:云原生体系下 Serverless 弹性探索与实践(四)

Serverless AI训练营:课时5:云原生体系下 Serverless 弹性探索与实践(四)

课程地址https://developer.aliyun.com/trainingcamp/1eeaedf056f14ad98e9986c31068e939?spm=a2c6h.26142516.J_2566289780.1.37c67cbd7bCsFs


课时5:云原生体系下 Serverless 弹性探索与实践(四)


首先介绍一下什么是 AppCDS ,它的意思是 app class date sharing,类数据是共享的机制。它可以获取到应用启动过程中依赖的 class list。并把它当成一个共享的类文件,通过这个类文件,应用这个,下次再启动的时候,就可以通过这个共享文件来进行启动。进而它不用自己再进行整个类触发,相当于复用其他的应用的类型的文件。

映射到 sE 的部署场景,应用启动初次肯定是需要启动一遍,应用启动后会生成对应的缓存文件。然后缓存文件可以保存到 NAS 中,在下一笔或者是重启应用的时候可以用这个缓存文件,这样它有缓存文件了,它就不用再执行冷启动操作,只用类的输入法操作了。借助这个能力,整体的冷启动的效率提升了45%

7.  弹性效率:自动扩缩

 image.png

除了刚才是对整个应用生命周期的优化,也对弹性组件自动扩缩进行了优化,整个弹性伸缩包括了几个步骤。首先是弹性指标获取,接下来是执行弹性决策,依据这个指标应该缩扩多少个。

然后是执行具体扩缩操作,实际上是是 pod 的创建,pod 的生命周期就是刚才说的那些。在自动扩缩方面做了哪些优化,首先,搞了流量透明拦截的方案。对于四层指标,现在已经达到了秒级,而对于系统指标,想借助流量透明拦截的方案来实现系统的指标的比如应用的等,这些指标的秒级的获取。同时,对于弹性决策采用了对多队列并发的 reconcile,同时实时监控队列的研究情况来实现整个自动扩缩的角色。

8.  弹性能力:架构

 image.png

刚才说的都是一些弹性效率的优化,再讲一下这个 SE 整体的弹性能力。SE 弹性伸缩包括了强大的指标局面,工作策略配置以及完善的通知告警机制,还有全方位可观测能力。它支持多种的数据源,比如 k8s 原生的,以及现在原生的非常火的普罗米修斯。

还有阿里云内部的云产品,比如 CMSLB,还有外部的网络的 wes。通过这些外部的数据源提供的指标,比如一些技术监控或者监控指标,这里也列了一下。比如这个CPU内存、QPSRTTPC连接数、出入字节数、磁盘使用率、java 线程数、GC 次数、自定义指标等。这些都可以作为弹性伸缩的输入,然后对于输入,弹性指标进行拉取和预处理之后,会执行具体弹性策略。弹性策略有很多种,比如整体是快扩快缩或者快扩慢缩,只扩不缩,不扩或者 DRYRUN,相当于一个观测模式第八个模式,以及自适应扩缩。

自适应扩缩下面会予以展开,除了弹性策略,还有一些自定义的精细的弹性配置,可以配置弹性的整体的上下线,即最大扩多少,最少扩多少,以及相应的指标区间。可以维持指标区间的稳定的状态,只有大于那个区间的上限才太扩,低于那个区间的下限才缩。以及步长比例,即每次过缩获得步长的大小。

还有冷却、预热时间,相当于扩缩之后会有一段时间是不进行扩缩的,或者是对于预热时间相当于会对于像 CPU 指标存在毛刺,即应用刚启动的时候,CPU 可能突增了,但是这个实际上是一个毛刺现象,即不需要根据突增的值来进取过多,有一个预热事件。还有一个指标的采集周期、聚合逻辑,比如取最大去取平均的,还有也支持定时的弹性策略,比如支持 corn 表达式,后续也在事件驱动的方向,比如触发的方向进行探索。

然后通过配置弹性塑料以及自定义的弹性配置之后,会触发具体的弹性行为。执行实际增减,也会执行动态的气流来保证整体的在整个弹性过程中所有实例,它的访问的状态都是正确的。以及整体的伸缩,后续在执行伸缩之后,也会通过通知告警能力来把伸缩的情况通知到具体的可能负责人。以及全方位可观测能力,对于整体的决策时间决策,决策上下文,弹性记录,还有实例状态回溯,实例数 SLA 都做到了可监控。

9.  弹性能力:场景丰富度

 image.png

然后在场景丰富度上,通过上述刚才说的弹性能力,也支持多种场景。这里列了四个场景,分别是定时弹性、指标弹性、混合弹性和自适应性弹性。首先是定时弹性,它比较适用于应用负载流量周期是用户预先可以感知的情况下。这样用户就可以配置应用,可以按时间的日期、星期进行周期性的操作。比如可以早八点到晚八点保持十个实际数来应对白天流量,而夜间可能较低,维持在两个实际数甚至给它缩零了,即没流量直接缩零了。

它多用于比较传统的像证券的医疗的政府或者是教育等行业。而指标弹性是可以配置期望指标的值。SE 会使整个应用的指标稳定在用户所配的指标值的规则内。并且默认的是采用快扩慢缩的方式来保证整体的稳定性。比如可以将CPU 升到60%,或者是 QPS设置到100,然后实际数设置为250,这样通过设置规则之后,完全就交给 SE 进行托管,保证应用的整体可能性。这种指标弹性它适用于突增流量的case

多用于互联网或者是游戏或者社交平台等行业。同时,SE 也提供了混合弹性,它把定时弹性和指标弹性相结合了,可以配置不同时间、日期、星期的具体的指标规则,进而更加灵活的应对复杂场景的需求。比如可以早八点,可以周一到周五早八点,早晚八点,可以设置CPU目标值是60%,实际数是1050,其他时间可以设置它的 CPU还是60%,但是时速是25等等,相当于可能知道整体的大概的流量是集中在某个时间段或者星期几,但具体设置多少个时数是没有一个大致的参考,可能会有拖动流量情况,这样就可以通过混合弹性来分别提升定时和指标弹性的优势,多用于互联网教育或者餐饮等行业。

同时,SE 对于这种突增流量的场景也比较开创性的提出了自适性弹性的功能。SE 针对流量突增场景进行优化,然后内部是有一个流量激增窗口来不断监测当前的流量的状态。

并且根据这个窗口来可以判断当前时刻是否出现了流量激增以及流量激增的强烈程度是如何的,并且根据强烈程度来执行扩缩,并且在原有的算法的扩缩的行为会加一定的冗余,来实现过多的效果。在激增模式下是不允许缩容的。这是 SE 支持的多种场景。

10.  弹性能力:稳定性

 image.png

接下来说一下 SE 稳定性的竞争力。稳定性是 se 弹性能力过程中建设的非常重要的一环,它是保证用户应用在弹性过程中可以按照预期行为进行扩缩,并且保证整个过程的可能性,是实验的非常关注的重点。SE 弹性伸缩整体遵循了快扩慢缩的原则。通过了多级的平滑防抖来保证执行整体的稳定性。

同时对于指标激增的场景,借助自行能力进行体验的扩容。再看一下整体的四级平滑的机制。

一级平滑是对指标的获取的周期以及每次获取,每次请求对应的监控系统,它的请求的时间窗口以及请求的时间窗口内,这些数据的聚合逻辑都可以精确化的控制。

二级平滑是可以对指标的容忍区间、容忍度弹性区间进行配置,也就是区间内不扩不缩。

三级平滑是可以对单位时间内的扩缩的比例上下线进行配置。

四级平滑是对冷却时间和预热时间进行配合。

 

六、severless 弹性最佳实践

1.弹性最佳实践:弹性伸缩准备

最后说一下在 SE 上整体的弹性的最佳实践。虽然实践分为几个阶段,首先是采用准备阶段。采用准备阶段是 SE 弹性伸缩可以有效的解决瞬间流量的到来,来实现自动伸缩。

首先建议配置应用的监控检查和应用生命周期管理。它保证整个扩缩作过程中应用整体可能性,确保应用已经启动完了,比如 DB已经联系上了,专案件已经初始化了,完成了。这些才执行流量的接受,这是监控检查。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
10月前
|
监控 Devops Serverless
课时4:Serverless 时代 DevOps 的最佳打开方式(五)
Serverless 时代 DevOps 的最佳打开方式
137 0
|
17天前
|
运维 监控 Devops
DevOps文化下的自动化运维实践
本文将探讨在DevOps文化背景下,自动化运维的重要性及其实现方式。通过分析自动化运维的优势和挑战,文章提供了具体的实施策略和案例,旨在帮助读者理解如何在DevOps实践中融入自动化运维,以提高软件开发和部署的效率与质量。
|
5天前
|
监控 Devops 测试技术
DevOps实践:持续集成与持续部署(CI/CD)在现代软件开发中的作用
【6月更文挑战第24天】本文深入探讨了持续集成(Continuous Integration,简称CI)和持续部署(Continuous Deployment,简称CD)在现代软件开发生命周期中的核心作用。通过阐述CI/CD的概念、优势以及实施策略,文章旨在为读者提供一套完整的理论框架和实践指南,以促进软件开发流程的高效性和产品质量的提升。
|
9天前
|
运维 Devops 测试技术
DevOps:文化、工具与实践的深度融合
【6月更文挑战第21天】DevOps融合文化、工具与实践,促进开发与运维协作,加速软件交付。核心包括共享文化、自动化工具(如Git、Jenkins)与流程优化(敏捷、自动化、微服务)。DevOps助力团队协作,提高效率,降低运维成本,驱动企业持续创新与成长。
|
9天前
|
运维 监控 Devops
DevOps实践:从理论到现实的转变
【6月更文挑战第20天】在数字化浪潮的推动下,DevOps作为一种文化和实践,正逐渐成为企业追求敏捷、高效运维不可或缺的一环。本文将深入探讨DevOps的核心理念、实践策略以及面临的挑战,并结合真实案例分析其在实际工作中的应用效果。通过阐述DevOps实施过程中的关键因素,文章旨在为读者提供一套完整的DevOps落地指南,以助力企业实现持续集成与持续交付的目标。
17 2
|
2月前
|
运维 JavaScript Devops
DevOps实践:通过云效实现hexo自动构建部署发布
DevOps是一种融合开发、技术运营和质量保证的流程,旨在增强跨部门沟通与协作。通过自动化软件交付和架构变更,DevOps加速了构建、测试和发布软件的过程。本文作者分享了如何使用阿里云效平台实现个人Hexo博客的自动化部署,从而实现持续集成和持续部署(CI/CD)。在应用DevOps之前,作者需手动上传和部署文件;应用后,只需提交Markdown文件,其余步骤由DevOps平台自动完成。通过云效平台的代码管理和流水线功能,实现了从代码提交到自动发布的无缝衔接。
61 2
DevOps实践:通过云效实现hexo自动构建部署发布
|
12天前
|
运维 监控 Devops
DevOps实践:持续集成与持续部署(CI/CD)的精髓
【6月更文挑战第17天】本文将深入探讨DevOps文化中的核心实践——持续集成(CI)和持续部署(CD)。我们将从理论出发,逐步过渡到实际操作,介绍如何搭建一个高效的CI/CD流程。文章将涵盖工具选择、流程设计、自动化测试以及监控和反馈机制的建立。通过具体案例分析,揭示成功实施CI/CD的关键因素,并探讨如何在组织内推广这一实践以促进开发和运维之间的协作。
|
2月前
|
运维 Kubernetes Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【5月更文挑战第30天】 在当今快速迭代和持续交付的软件开发环境中,传统的IT运维模式已难以满足业务需求。本文深入探讨了如何通过DevOps理念和容器化技术的有机结合,构建一个既高效又稳定的云基础设施。文章首先概述了DevOps的核心概念和实施要点,然后详细介绍了容器化技术的优势及应用实践,最后通过案例分析展示了两者结合带来的显著效益。
44 3
|
2月前
|
运维 监控 Devops
构建高效自动化运维系统:DevOps在企业级应用的实践
【5月更文挑战第30天】 随着信息技术的飞速发展,企业对软件交付速度和稳定性的要求越来越高。传统的运维模式已无法满足快速迭代和高效稳定的需求,因此,本文将探讨如何通过实施DevOps文化、流程和工具,构建一个高效的自动化运维系统。文章将详细描述DevOps的核心理念、关键技术组件以及如何在组织中落地实施策略,旨在帮助企业提升运维效率,加速产品的上市时间,同时保证系统的高可用性和稳定性。
|
2月前
|
数据可视化 搜索推荐 Devops
从DevOps实践者的角度谈谈云效Flow
一名DevOps实践者参与了云效流水线Flow的评测,认为Flow对新手友好,具有可视化编排功能。但在上手过程中,了解相关术语和流畅编排设计可能构成一些挑战。Flow的功能基本满足需求,但开放性有待提高,建议开放插件开发以丰富生态。YAML编排作为趋势,Flow在易用性和功能完善上仍有进步空间,如语法检查、智能提示等功能。此外,产品模块间的逻辑性和交互清晰度也需改进。总结来说,Flow功能齐全,适合中小企业,但在用户体验和生态建设上有改进余地。
265 3

热门文章

最新文章

相关产品

  • 函数计算