函数计算:让小程序开发进入Serverless时代

  

点击下载《不一样的双11技术:阿里巴巴经济体云原生实践》
函数计算:让小程序开发进入Serverless时代

  

<强>本文节选自《不一样的双11技术:阿里巴巴经济体云原生实践》一书,点击上方图片即可下载!

  

作者|吴天龙(木吴)阿里云函数计算技术专家

  
  

<>强导读:小程序是轻量级的快速迭代的移动应用,对开发者从开发到上线的效率提出了更高的要求。使用函数计算,开发者无需关心后端服务的搭建运维,只需要编写函数就能够为小程序提供稳定可靠并且弹性伸缩的服务,并且随着小程序访问量增加,函数计算能够自动快速地弹性伸缩,即使应对双11活动高峰也能够如丝般顺滑。

     

自2017年第一批小程序上线以来,越来越多的移动端应用以小程序的形式呈现。小程序拥有触手可及,用完即走的优点,这大大降低了用户的使用负担,使小程序得到了广泛的传播。在阿里巴巴,小程序也被广泛地应用在淘宝/支付宝/钉钉/高德等平台上,例如今年双11日大家在淘宝/天猫上参加的活动,大部分都是通过小程序提供的。

  

一个小程序可以分为客户端和服务端:客户端包括界面的展示和交互逻辑;服务端则包括数据的处理和分析。

  

为了支撑大量的小程序,平台在服务端面临的挑战有:

  
      <李>大量的小程序是不活跃的,传统的至少一台服务器的方式会造成资源浪费;李   <李>在活动高峰期小程序的调用量激增,要求服务端能够快速进行弹性伸缩。   
  

针对小程序场景,阿里云提供了完整的小程序解决方案:小程序云。资源的有效利用和弹性伸缩,是小程序云提供的核心能力之一,而这背后依托的,就是阿里云函数计算服务。函数计算是一个全托管Serverless计算服务,让开发者无需管理服务器等基础设施,只需编写和上传代码,就能够构建可靠,弹性,安全的服务。下面就以双11小程序场景为例,解析函数计算在弹性伸缩上的核心技术。

  

小程序架构

  

让我们先来看一下淘宝小程序的技术架构是什么样的:

  

函数计算:让小程序开发进入Serverless时代

  
      <李>用户在手机淘宝点击店铺活动,就进入了小程序。界面及交互由小程序客户端提供,李   <李>在用户参与活动过程中,需要向服务端请求或者发送数据时,由客户端发起函数调用;李   <李>函数调用先经过淘宝接入网关,进行必要的鉴权认证,然后调用到小程序云;李   <李>用户的函数代码执行在小程序云中,用户可以实现自定义的业务逻辑。   
  

利用小程序云提供的丰富的扩展能力,用户可以方便地构建完整的电商应用:

  
      <李>数据存储:存储结构化的数据,李   <李>文件存储:存储文本/图片/视频等文件;李   <李>电商服务:获取用户信息/创建支付交易,李   <李>统计分析:自动统计小程序的使用信息及用户分析,支撑商业决策。   
  

可以看的到,函数是整个小程序的业务逻辑的核心,它将云端的基础能力组合串联起来,对客户端提供服务能力。如果函数能力成为瓶颈,将影响整个小程序的运行。

  

在这样的架构下,要支撑大量的小程序,需要函数能够做到:

  
      <李>一是随时在线以支持小程序即开即用;李   <李>二是弹性伸缩以应对小程序访问突增。为了做到以上两点,让我们看一下函数计算的技术架构:李   
  

函数计算架构

  

函数计算:让小程序开发进入Serverless时代

  

其中几个核心组件的功能如下:

  
      <李> API服务:函数计算的网关,实现鉴权/流控等功能,李   <李>资源调度:为函数调用分配管理计算资源,负责调度效率和性能,李   <李>函数执行引擎:执行函数代码的环境,做到安全和隔离。   
  

基于这个架构,函数计算是如何解决上面提到的小程序平台的挑战呢?接下来我们逐一分析。

  
1。冷启动h5> 当用户创建函数上传代码时,函数计算只是将代码包保存到OSS,并没有分配计算资源,因此函数计算可以支撑海量的小程序。

函数计算:让小程序开发进入Serverless时代