陈奇网络工作室

函数计算:在Serverless时代开发小程序

云计算

下载《不一样的 双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

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3