汝城网站建设公司,html5营销网站建设,龙岩有什么兼职可以做,外汇做单记录做单专业网站有哪些自2017年第一批小程序上线以来#xff0c;越来越多的移动端应用以小程序的形式呈现。小程序拥有触手可及、用完即走的优点#xff0c;这大大减少了用户的使用负担#xff0c;使小程序得到了广泛的传播。在阿里小程序也被广泛地应用在淘宝/支付宝/钉钉/高德等平台上#xff…自2017年第一批小程序上线以来越来越多的移动端应用以小程序的形式呈现。小程序拥有触手可及、用完即走的优点这大大减少了用户的使用负担使小程序得到了广泛的传播。在阿里小程序也被广泛地应用在淘宝/支付宝/钉钉/高德等平台上例如今年双11大家在淘宝/天猫上参加的活动大部分都是通过小程序提供的。
一个小程序可以分为客户端和服务端客户端包括界面的展示和交互逻辑服务端则包括数据的处理和分析。为了支撑大量的小程序平台在服务端面临的挑战有
大量的小程序是不活跃的传统的至少一台服务器的方式会造成资源浪费在活动高峰期小程序的调用量激增要求服务端能够快速进行弹性伸缩
针对小程序场景阿里云提供了完整的小程序解决方案小程序云。资源的有效利用和弹性伸缩是小程序云提供的核心能力之一而这背后依托的就是阿里云函数计算服务。函数计算是一个全托管Serverless计算服务让开发者无需管理服务器等基础设施只需编写和上传代码就能够构建可靠、弹性、安全的服务。下面就以双11小程序场景为例解析函数计算在弹性伸缩上的核心技术。
小程序架构
让我们先来看一下淘宝小程序的技术架构是什么样的 用户在手机淘宝点击店铺活动就进入了小程序。界面及交互由小程序客户端提供在用户参与活动过程中需要向服务端请求或者发送数据时由客户端发起函数调用函数调用先经过淘宝接入网关进行必要的鉴权认证然后调用到小程序云 用户的函数代码执行在小程序云中用户可以实现自定义的业务逻辑。利用小程序云提供的丰富的扩展能力用户可以方便地构建完整的电商应用 数据存储存储结构化的数据文件存储存储文本/图片/视频等文件电商服务获取用户信息/创建支付交易统计分析自动统计小程序的使用信息及用户分析支撑商业决策
可以看到函数是整个小程序的业务逻辑的核心它将云端的基础能力组合串联起来对客户端提供服务能力。如果函数能力成为瓶颈将影响整个小程序的运行。在这样的架构下要支撑大量的小程序需要函数能够做到一是随时在线以支持小程序即开即用二是弹性伸缩以应对小程序访问突增。为了做到以上两点让我们看一下函数计算的技术架构
函数计算架构 其中几个核心组件的功能如下
API服务函数计算的网关实现鉴权/流控等功能资源调度为函数调用分配管理计算资源负责调度效率和性能函数执行引擎执行函数代码的环境做到安全和隔离
基于这个架构函数计算是如何解决上面提到的小程序平台的挑战呢接下来我们逐一分析。
1. 冷启动
当用户创建函数上传代码时函数计算只是将代码包保存到OSS并没有分配计算资源因此函数计算可以支撑海量的小程序。当函数第一次被调用时函数计算会分配计算资源、下载函数代码、加载并执行代码。这一过程称为冷启动函数计算通过大量的优化将系统侧的冷启动时间优化到200ms以内。因此即使是冷的小程序在初次调用时也能够做到快速的即开即用。 2. 弹性伸缩
当小程序持续调用过程中负载逐渐上升或者突然升高的情况下函数计算是如何应对的函数计算的“资源调度”模块会精确管理每个实例的状态当请求到来时它首先检查是否有空闲的实例可以服务如果没有请求就会进入等待队列当有空闲的实例释放出来时请求就能够被及时处理。同时调度器还会在后台创建新的实例当新的实例准备好后也能够服务请求。在这种策略下能够做到在负载以2倍的速度增长情况下请求的P95延时是稳定的。优化细节可以参考我们在云栖社区的文章。 上面是某个淘宝小程序的调用量和延时监控数据。可以看到在整点活动时TPS出现了瞬间的高峰但是P95延时却没有明显的波动。这是因为函数计算在请求高峰来临时能够快速地弹性伸缩创建新的实例同时利用已有资源做一定的缓冲使得整个攀升的过程能够比较平滑。
3. 预留实例
对于一些“秒杀”的场景要求瞬间提供大量的计算资源。此时靠实时的弹性伸缩是不够的一是冷启动的时间即使是200ms对于秒杀场景也太慢了二是底层的计算资源在扩容时也会有流控。针对这种场景函数计算提供了预留实例的功能。使用预留实例用户可以为一些可预测的活动提前预留好资源彻底消除冷启动。 和传统的基于服务器的做法不同用户不需要按峰值来预留资源而是可以结合预留实例和按量实例的混合模式请求先被预留实例处理当预留实例用满时会自动弹性伸缩出更多的按量实例来处理请求。由于有一定的资源基础结合调度优化按量实例的冷启动所产生的影响就被大大减小了。这就是利用函数计算的弹性伸缩能力在性能和成本之间达到很好的平衡。
总结
小程序是轻量级的快速迭代的移动应用对小程序开发者的开发效率有很高的要求。小程序上线后随着访问量的增加或者活动期间的访问突增对后端服务的稳定和弹性也是一个很大的考验。函数计算上传代码即可运行极大地提高了后端服务的开发效率混合模式的弹性伸缩轻松应对负载变化。这些特点使得函数计算成为支撑小程序平台的最佳选择。
原文链接 本文为云栖社区原创内容未经允许不得转载。