云计算
下载《不一样的 双11 技术:阿里巴巴经济体云原生实践》
本文摘自《不一样的 双11 技术:阿里巴巴经济体云原生实践》这本书,点击上面的照片可以下载!
作者|吴天龙(木吴) AlibabaCloud (阿里巴巴云)函数计算技术专家
导读:小程序是一种轻便、快速、可重复的移动APP,对开发者从开发到上线的效率提出了更高的要求。 使用函数计算,开发人员无需在意后端服务的构建和运输,只需编写函数就可以为小程序提供稳定、可靠、灵活的服务。 另外,随着小程序访问量的增加,函数计算会自动迅速伸缩,即使对应双11活动的高峰也能像线一样流畅。
自2017年第一个小程序上线以来,越来越多的移动端APP应用程序作为小程序出现。 小程序具有触手可及、开箱即用的优点,大大减轻了用户的使用负担,小程序得到了广泛普及。 在阿里巴巴,小程序在淘宝/支付宝( Alipay ) /钉钉/金牌等平台上也很广泛,比如今年双11,大家在淘宝/天猫上参加的活动几乎都是小程序提供的。
小程序可以分为客户端和服务端。 客户端包括界面显示和交互逻辑服务端包括数据处理和分析。
为了支持大量小程序,平台在服务器端面临的挑战包括:
许多小程序处于非活动状态,而且传统的至少一台服务器方法会浪费资源
在活动高峰期,小程序的调用量急剧增加,要求服务端能够迅速灵活地伸缩。
对于小程序场景,AlibabaCloud (阿里巴巴云)将提供完整的小程序解决方案或小程序云。 资源的有效利用和弹性伸缩是小程序云提供的核心能力之一,其背后是AlibabaCloud (阿里巴巴云)函数计算服务。 函数计算是一种完全托管的Serverless计算服务,开发人员无需管理服务器等基础设施,只需编写和上传代码即可构建可靠、灵活、安全的服务。 这里以双11小程序场景为例,说明分析函数计算弹性伸缩的核心技术。
小程序体系结构
首先,我们来看看淘宝小流程的技术结构是什么样的:
用户在手机淘宝上点击店铺活动,就进入了小程序。 界面和交互由小程序客户端提供;
当用户在参与活动的过程中需要向服务端请求或发送数据时,客户端发起函数调用;
函数调用首先经过淘宝接入网关,进行必要的认证,然后调用到小程序云;
用户的函数代码在小程序云中运行,用户可以实现定制的业务逻辑。
利用小程序云提供的丰富扩展功能,用户可以轻松构建完整的电子商务APP应用程序。
数据存储:存储结构化数据
文件存储:用于存储文本/图像/视频等文件;
电商服务:获取用户信息/创建支付交易;
统计分析:自动统计小程序的使用信息和用户分析,以支持业务决策。
如您所见,函数是整个小程序业务逻辑的核心,它结合了云的基础能力,为客户端提供服务能力。 当函数的能力成为瓶颈时,会影响整个小程序的执行。
在这种架构下,要支持大量的小程序,函数必须能够。
一个是随时在线支持小程序。
二是灵活伸缩,以应对小程序访问量的激增。 为了实现以上两点,让我们来看看函数计算的技术架构:
函数计算架构
这些核心组件的功能如下。
API服务:是函数计算的网关,实现认证/流量控制等功能;
资源调度:为函数调用分配管理计算资源,负责效率和性能的调度;
函数执行引擎:在执行函数代码的环境中提供安全和隔离。
基于这个架构,函数计算如何解决上述小程序平台的难题呢? 接下来一个一个地分析一下吧。
1 .冷启动
当用户创建函数并上载代码时,函数计算只将代码包存储在OSS中,没有分配计算资源,因此函数计算可以支持巨大的小程序。
第一次调用函数时,函数计算会分配计算资源,下载函数代码并加载代码执行。 该过程称为冷启动,函数计算通过大量优化,将系统侧冷启动时间优化到200ms以内。 因此,即使是冰冷的小程序,在第一次调用时也可以立即使用。
2 .弹性伸缩
如果在小程序调用期间负载逐渐增加或突然增加,函数计算将如何应对?
函数计算的“资源调度”模块可准确管理每个实例的状态,当请求到来时,它首先检查空闲实例是否可以服务,如果没有请求,它就进入队列,在空闲实例被释放时,它将请求超时
此外,调度程序还可以在后台创建新实例,并在新实例准备就绪时处理请求。 通过该策略,在负荷以两倍的速度增加的情况下,可以使要求的P95延迟稳定。 优化的详细内容请参考这边的博客文章。
上面是某淘宝小程序的调用量和延迟监控数据。
在完全活动时,TPS显示瞬间峰值,但可以看出P95延迟没有明显的变动。 这是因为函数计算是在请求高峰期临时进行的,可以快速灵活地创建新的实例,同时利用现有资源作为一定的缓冲区,使整个上升过程相对顺畅。
3 .保留实例
“秒杀”场景要求瞬间提供大量计算资源。 在这种情况下,实时伸缩是不够的。
一个是冷启动的时间即使是200ms,对于秒杀场景也太晚了;
第二,底层计算资源在扩展时也具有流控制。
对于这类场景,函数计算提供了保留实例的功能。 保留实例允许用户提前为可预测的活动保留资源,从而完全消除冷启动。
与传统的基于服务器的方法不同,用户不需要在每个高峰保留资源,而是可以将保留实例和每个卷实例的混合模式组合起来。 这意味着请求首先由保留实例处理,当保留实例已满时,更多的每个卷实例将自动伸缩以处理请求。
由于有一定的资源基础,结合调度优化,量化实例冷启动的影响大大减少。 这就是利用函数计算的灵活伸缩能力,性能和成本的平衡很好。
总结
小程序是一种轻量、高速、可重复的移动APP,对小程序开发者的开发效率有很高的要求。
小程序上线后,随着访问量的增加和事件期间访问的激增,后端服务的稳定性和灵活性也受到了巨大的挑战。 函数计算只需上传代码即可执行,混合模式的弹性伸缩大大提高了后端服务的开发效率,可以轻松应对负载的变化。 通过这些特征,函数计算成为支撑小程序平台的好选择。
对函数计算感兴趣的开发人员可以单击此处免费试用。)。
本书的亮点
详述双11超大规模K8s集群实践中遇到的问题及解决方法
云生化最佳集团: Kubernetes集装箱神龙,核心系统100% %u4E0A实现云的技术细节
双11服务网格超大规模落地解决方案
“云原生关注微服务、Serverless、容器、Service Mesh等技术领域,关注云原生流行技术趋势、云原生大规模落地实践,最大限度提升云原生开发者技术圈”
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn