500421720_wx.jpg  

作者 | 关贺宇

之前,开发者想要开发一个小程序,常规流程是:要考虑买什么样的服务器,匹配哪些资源(如存储应用、数据库等),此外,还要考虑各种初始化,与服务端口关联等问题。这些工作全部梳理完成可能要花费数天时间。有了“小程序 · 云服务”以后,开发者不用考虑后端复杂的技术操作,并且开发过程非常简单,在几分钟之内就能完成后端环境的搭建,也能在 1、2 天内开发一个小程序。为进一步了解小程序 · 云服务适用的业务场景、系统架构与架构演进等,InfoQ 专访了支付宝小程序·云服务团队,揭秘支付宝小程序·云服务如何帮助开发者快速地开发小程序。

小程序·云服务的架构和技术选型

云应用和 Serverless 后端云服务两种解决方案相对应的开发架构并不相同。

Serverless 后端云服务的架构和优化

Serverless 后端云服务依托于蚂蚁金融科技底层的容器、计算、存储、中间件等产品,针对小程序场景进行优化封装,为用户提供完善的小程序 Serverless 开发体验。


小程序·云服务的系统架构和运维实现-爱尖刀

Serverless 后端云服务架构


核心能力:

基于 MongoDB 提供的数据存储,基于 CDN 和 OSS 提供的文件储存,基于 SMS 提供的短信等 BaaS 服务,为了给开发者提供更多的能力,Serverless 后端云服务后续还会提供更多的 BaaS 服务,便于开发者实现快速开发。

基于蚂蚁金融科技的 Knative 方案,Serverless 后端云服务提供了函数计算以及应用引擎的能力,在为用户提供服务托管、弹性伸缩等能力的同时,还采用了按量计费的方式为用户节省后端成本。

基于蚂蚁金服多年的风控和安全积累,Serverless 后端云服务为用户提供了 DDoS、防火墙、内容安全、风控识别等安全能力的集成,让开发者在托管服务端的同时还能享受到安全可靠的防护体系,保障业务的安全。

基于蚂蚁金服多年的容灾思想,Serverless 后端云服务对所有的能力都进行了同城双机房的部署,对于所有数据都进行实时备份。同时,基于蚂蚁金融科技强大的中间件体系,实现了应用层的容灾切换能力,全方位保障客户服务的稳定可靠。蚂蚁开放能力是蚂蚁多年的技术、业务积累,能帮助小程序拓宽更多的业务边界。为了简化开发者的授权以及接入开放平台的成本,Serverless 后端云服务和开放平台进行互信打通,让开发者无需再处理繁琐认证流程即可快速使用蚂蚁开放能力。

Serverless 后端云服务需要将用户原有的运维、容灾、安全等业务都进行统一的集成管控,整体的复杂度较高。

小程序·云服务的安全性如何保证?

开放是小程序·云服务的一个重要的业务变革方向,随着用户数和业务数的增加,如何保证小程序的安全性呢?小程序·云服务团队给出的解决方案是:

(1)在控制台上,云服务集成了蚂蚁的风控能力,保障控制台不会被恶意用户入侵。

(2)在访问链路上,对所有的请求都进行了签名,避免被篡改。所有的访问链路都采用 https 方式,避免中间人攻击。同时,所有的请求都需要基于支付宝 OAuth 登录态进行验证,确保匿名身份无法访问服务。

(3)在接入层上,接入了云端的防 DDoS 能力以及蚂蚁的流量镜像能力,对流入流量进行控制,避免请求的恶意攻击。

(4)对于文件上传,会对所有的文件都进行安全扫描,避免上传涉黄、涉政等文件。

小程序·云服务对开发者的价值

小程序·云服务的目的是为构建小程序的后端提供极致的便利性,将蚂蚁金融科技的能力通过最简洁的方式带给开发者去使用,通过提供云应用(有服务器)和 Serverless 后端云服务(无服务器)两种方式,并将产品能力集成在了 IDE 当中,实现开发者接入成本的最小化。

  • 云应用对于开发者的价值

云应用主要为开发者提供如下能力:

(1)  极简构建云端环境(应用、服务器、域名、HTTPS 证书等);

(2)  IDE 一键部署、启停云端应用;

(3)  灵活的语言框架(Java、Node.js);

(4)  应用资源监控预警;

(5)  深度集成蚂蚁金服开放能力(支付、信用、安全等)。

为了让开发者更方便地使用蚂蚁金服的开放能力(支付、信用、安全等),云应用在IDE插件中可以根据用户签约的能力包,自动生成调用相应开放能力的代码,显著降低用户在这方面的开发成本。

云应用在提供各种便利性的同时,也给开发运维人员提供了完全自主可控的能力,开发运维人员可以登录到云端服务器上去查看日志、排查问题,有完全的自主权。

  • Serverless 后端云服务对于开发者的价值

Serverless 后端云服务作为原生服务,已经集成在小程序开发者工具中。作为开发者首先要拥有支付宝账号,然后创建或加入小程序应用,下载安装支付宝小程序开发者工具,便可以开始开发。

在小程序开发者工具中,使用 Serverless 后端云服务提供的 API(对开发者而言是一个全局变量),可以直接调用数据库、文件存储和云函数服务,还可以免配置直接调用支付宝开放平台的海量 OpenAPI。支付宝优质的用户群体和蚂蚁金服提供的开放能力对于开发者而言非常重要,尤其是 Serverless 后端云服务无需配置就能连接几亿用户资源和使用这些服务。

Serverless 后端云服务的数据存储沿用了 MongoDB 的语法,云函数基于 Node.js 进行开发,这些都是现在非常流行的编程语言,对开发者来说学习成本低,易于上手。为了帮助开发者完成更加复杂的程序,Serverless 后端云服务陆续会增加更多服务类型,与新技术结合,从而更好服务开发者。