作者 |关和羽
以前,开发者想要开发一个小程序,通常的流程是:买什么样的服务器,匹配什么样的资源(如存储应用、数据库等),此外还要进行各种初始化,以及服务端口也被认为是相关问题。整理所有这些工作可能需要几天时间。有了“小程序云服务”,开发者无需考虑后端复杂的技术操作,开发过程非常简单。后台环境几分钟就可以搭建好,也可以在1、2天内开发一个小程序。为了进一步了解小程序云服务的适用业务场景、系统架构和架构演进,我们采访了支付宝小程序云服务团队,揭示了支付宝小程序云服务如何帮助开发者快速开发小程序。
小程序和云服务解决的难点和痛点
蚂蚁金服拥有大量优质实名用户,并通过支付宝App搭建了各类业务和生活服务场景。同时,支付宝系统中也积累了数千万的B端商户。对于商家来说,如何服务好客户是关键。在这样的背景下,搭建一个可以帮助商家提升用户体验的平台就显得至关重要。支付宝小程序提供了这样一个平台。对于支付宝小程序,开发者最初采用的是传统的研发模式。传统的研发模式只解决了小程序的前端界面问题。后端服务仍然需要开发者购买服务器、证书、数据库、CDN等基础资源,并需要进行部署和维护。如果您需要使用支付宝的服务(如获取访问用户信息),还需要连接支付宝开放平台进行授权和程序配置。这一系列问题导致开发者在接触代码之前,在服务器和配置环节上耗费了大量的时间和资源。
小程序云服务是为小程序提供的基于云的服务,提供云应用和后端云服务两种解决方案,以解决小程序后端服务的问题。小程序和云服务让开发者无需关心证书、运维、扩展、被黑客攻击,只需要专注于编写自己的代码和业务逻辑。
云应用是基于服务器的解决方案,利用蚂蚁金服的基础能力应用PaaS平台等基础能力,为开发者提供成熟的技术服务,如一键搭建云环境(应用、服务器) 、数据库、域名、证书等)、IDE中一键发布部署、应用资源监控等。
后端云服务是一种无服务器解决方案。开发者只要激活服务,就可以使用函数计算、数据库、文件CDN等核心服务。由于其优势,后端云服务可以灵活地提供服务资源,为商户节省了大量的硬件资源。在开发过程中,无需关心服务器的运维、部署和配置,自然可以调用支付宝的服务接口,是真正的开箱即用服务。
小程序云服务架构与技术选型
云应用和后端云服务两种解决方案对应的开发架构不同。
云应用的框架和核心能力
云应用依托蚂蚁金服的应用PaaS平台、监控分析平台、分布式中间件平台,针对小程序场景进行封装优化。应用PaaS平台提供全面的环境资源管理、发布部署(灰度发布、蓝绿发布)、弹性伸缩等能力。监控分析平台提供物理资源监控预警、应用日志监控预警等核心能力。分布式中间件提供常用的分布式中间件,如消息中间件、微服务治理平台等。在IDE和Web控制台端,云应用将上述能力封装起来,以最简洁的方式提供给用户。同时为小程序场景提供二级域名和证书的自动分配。云服务器内置数据库小程序的开发文件系统架构,IDE自动生成并调用Ant Open。平台开放能力(支付、信用、安全等)的代码及其他功能。如果用户想更深入地使用蚂蚁金服的能力,还可以直接在蚂蚁金服官网进行分组发布、灰度发布等更复杂的运维操作。
云应用架构
云应用在 IDE 端提供丰富的插件能力,让开发者可以在 IDE 端直接与后端云服务无缝交互。这些插件能力包括:蚂蚁金服科技一站式激活、云测试和生产环境一站式搭建、应用代码一键发布和部署、重启、停止应用、日志查看等能力。
对于 Node.js 应用程序类型,这些功能直接集成到 Ant 小程序开发人员工具中。对于 Java 应用类型,这些能力以插件的形式集成到开发者熟悉的 IDEA 中。
云应用除了将云能力集成到 IDE 中外,还为开发者和运维人员提供了一个 Web 控制台,用于在网页上操作和维护应用程序。在Web控制台上,用户可以对测试生产环境、资源和应用进行管理,并提供可视化的监控页面,对应用资源进行监控和告警。对于测试生产环境的管理, Apps 提供了构建、删除测试和生产环境。对于服务器,云应用提供重启、修改密码等功能。对于应用,云应用提供上传发布包、发布和回滚应用、查看发布历史等功能。
云应用为后端开发者提供了足够的灵活性,目前支持三种技术栈:Node.js(Egg)、Java(Boot)、Java(Sofa Boot)。如果选择Sofa Boot,可以使用消息中间件等金融级分布式中间件的能力。在云应用中的定位是解决大规模分布式应用对分布式中间件的需求。这些中间件通过了“双十一”测试,具备金融级高可用。
后端云服务的架构与优化
后端云服务依托蚂蚁金服底层容器、计算、存储、中间件等产品,针对小程序场景进行优化打包,为用户提供完整的小程序开发体验。
后端云服务架构
访问能力:
后端云服务提供安全可靠的多渠道访问能力。通过统一的多渠道接入方案,后端云服务目前支持高德和支付宝小程序的接入支持。开发人员不需要关心到底差异。他们只需要以标准的方式开发小程序即可交付小程序。致高德和支付宝的客户。同时后端云服务为开发者提供统一的域名和证书,开发者无需单独购买,开箱即用。
为了给小程序提供一个安全可靠的运行环境,后端云服务在全链路签名的同时,在接入层进行统一的DDoS防御和蚂蚁金服的流量镜像控制,从而控制请求实时流量。 , 帮助小程序安全稳定运行。
核心能力:
基于提供的数据存储,基于CDN和OSS提供的文件存储,基于SMS提供的SMS等BaaS服务,为了给开发者提供更多的能力,后端云服务将提供更多未来的BaaS服务,方便开发者实现快速开发。
基于蚂蚁金服的解决方案,后端云服务提供函数计算和应用引擎能力。在为用户提供服务托管、弹性伸缩等能力的同时,还采用按量付费的计费方式,为用户节省后端成本。
基于蚂蚁金服多年的风控和安全积累,后端云服务为用户提供DDoS、防火墙、内容安全、风控识别等安全能力的整合,让开发者在享受服务的同时托管服务器。以安全可靠的保护系统保障业务安全。
基于蚂蚁金服多年的容灾思路,后端云服务已将所有能力部署在同城两台机房,所有数据实时备份。同时,基于蚂蚁金服强大的中间件系统,实现应用层的容灾切换能力,全方位保障客户服务的稳定性和可靠性。蚂蚁的开放能力是蚂蚁多年技术和业务的积累,可以帮助小程序拓展更多的业务边界。为了简化开发者的授权和访问开放平台的成本,后端云服务和开放平台相互连接,让开发者可以快速使用Ant的开放能力,而无需处理繁琐的认证过程。
后端云服务需要对用户原有的运维、容灾、安全等服务进行统一的综合管控,整体复杂度高。
小程序和云服务的架构优化
小程序云服务于 2018 年 7 月上旬上线,最初的方向是提供一站式云服务,让小程序开发者可以更轻松地开发小程序后端代码。小程序云服务第一版于2018年9月云栖大会上亮相,当时已经有云应用和后端云服务两种开发模式。但是,在试用云服务的过程中,用户需要经常在IDE和Web控制台之间来回切换,很不方便。经过几轮内部讨论,确定了以开发者为中心的模式,并以极其简洁的思路,将尽可能多的能力集成到IDE中,让开发者不用离开IDE也能轻松使用后端云服务。后续打开蚂蚁金服、搭建应用测试生产环境等功能都会在IDE中开启。
为了兼顾不同的后端开发者群体,云服务提供了云应用和后端云服务两个版本。云应用是带服务器的后端开发,提供Node.js(Egg)、Java(Boot)、Java(Sofa Boot)三种开发框架,为后端开发者提供尽可能多的灵活性。同时,随着 的概念越来越被开发者接受,云服务也提供后端云服务,这是目前支持 Node.js 开发语言的 版本。与云应用相比,后端云服务更加轻量级,无需过多开发者干预即可实现后端运维操作。后端云服务提供BaaS+FaaS的能力。目前主要有两个技术瓶颈:一是调度,二是容器的冷启动。
对于 的调度问题,为了平衡成本和资源利用率,后端云服务将池设置为不同规格的实例。为业务量小的用户提供小实例,随着用户业务量的增加,当小实例不能满足业务需求时,为用户提供更大的实例。因此,根据业务情况开发了一套调度系统,每隔几个小时对业务情况进行一次监控。如果业务增长到一定的阈值,会自动迁移到更高规格的实例,以保证DB服务的性能。
容器的冷启动是函数计算和云引擎无法回避的问题。基于后端云服务的思想,优化了容器的冷启动。核心点是提供的预热池。当有请求进来时,从预热池中找到对应的,然后直接挂载代码运行。跑完后保持2分钟,如果2分钟内没有请求,就会返回热身池。
如何保证小程序云服务的安全性?
开放是小程序和云服务的重要业务转型方向。随着用户数量和服务数量的增加,小程序的安全性如何保障?小程序云服务团队给出的解决方案是:
(1)在控制台上,云服务集成了蚂蚁的风控能力,保证控制台不会被恶意用户入侵。
(2)在访问链路上,所有请求都进行签名,避免被篡改。所有访问链路都使用方法来避免中间人攻击。同时,所有请求都需要被基于支付宝的登录状态进行验证,确保匿名身份无法访问服务。
(3)在接入层,连接云端的抗DDoS能力和蚂蚁的流量镜像能力,控制传入的流量,避免对请求的恶意攻击。
(4)对于文件上传,所有文件都会进行安全扫描,避免上传涉及色情和政治的文件。
小程序和云服务对开发者的价值

小程序云服务旨在为小程序后端搭建提供极致便利,通过提供云应用(带服务器)和后端云服务(无服务器),并将产品功能集成到 IDE 中,以最大限度地降低开发人员的访问成本。
云应用主要为开发者提供以下能力:
(1)简单搭建云环境(应用、服务器、域名、证书等);
(2)IDE一键部署,启动和停止云应用;
(3) 灵活的语言框架(Java、Node.js);
(4)应用资源监控与告警;
(5)深度整合蚂蚁金服的开放能力(支付、信用、安全等)。
为了方便开发者使用蚂蚁金服的开放能力(支付、信用、安全等),IDE插件中的云应用可以自动生成代码调用对应的开放能力根据用户签署的能力包。在这方面降低用户开发成本。
云应用不仅提供了各种便利,还为开发运维人员提供了完全自主可控的能力。开发运维人员可以登录云服务器查看日志和排查问题,拥有完全的自主权。 .
后端云服务作为原生服务,已集成到小程序开发者工具中。作为开发者,首先要拥有支付宝账号,然后创建或添加小程序应用,下载安装支付宝小程序开发者工具,然后就可以开始开发了。
在小程序开发者工具中,使用后端云服务(开发者的全局变量)提供的API,可以直接调用数据库、文件存储和云功能服务,也可以不直接调用支付宝配置海量开放平台。支付宝的优质用户群和蚂蚁金服提供的开放性对开发者来说非常重要,尤其是后端云服务可以连接数亿用户资源,无需配置即可使用这些服务。
后端云服务的数据存储遵循语法,云功能基于Node.js开发。这些都是现在非常流行的编程语言,开发者学习成本低,使用方便。为了帮助开发者完成更复杂的程序,后端云服务将逐步增加更多的服务类型,并结合新技术更好地为开发者服务。
为了方便开发者交流小程序开发中遇到的问题,欢迎扫描下方二维码,或添加微信小助手,备注“小程序技术交流”,即可加入群和开发各种小程序大神招数,以及最新活动资讯和技术干货分享。