小程序上云,有点猛

2019-04-06 21:56 稿源:InfoQ公众号  0条评论

阿里云

图片版权所属:站长之家

声明:本文来自于微信公众号 InfoQ(ID:infoqchina),作者:很懂小程序的,授权站长之家转载发布。

小程序To B的战争早已打响。从前台看,是小程序、IoT的解决方案之争;从中台看,体现在数据服务的争夺;而在后台,则取决于云服务的基础设施谁更得用户青睐。

针对后台云服务,支付宝小程序是如何构建自己的商业底层实力?

传统小程序开发

VS

小程序云服务

传统的小程序后端开发常见的痛点是:后端环境搭建复杂,比如要考虑服务器、数据库、域名、证书等;搭建后端完成,应用发布到云端的过程冗长,这里涉及CI/CD、编译打包、多环境等;同时小程序的开放能力集成复杂,要考虑签名验签、异步回调。所有这些流程梳理完要花费几天时间。

为了让开发者不必在后端开发上耗费太多精力,支付宝小程序云服务提供了两种解决方案,一种是经典的有服务器自主运维的云应用,另一种是无服务器托管模式的Serverless,通过小程序云服务搭建后台,省去了开发者自己搭建后台耗费的人力物力成本,让开发者可以把精力放在支付宝小程序的业务实现。

1

支付宝小程序云应用

有服务器自主运维

小程序云应用是一个以开发者为中心,以简单方便+自主可控为目标,针对小程序进行场景优化的应用PaaS平台。小程序云应用的定位是:专注于为小程序提供快速构建、稳定运行小程序后端的服务。

小程序云应用提供了哪些能力?

(1)便利性:比如IDE端提供了插件之后,可以让后端的开发者和云端进行无缝打通,后端代码可以在IDE里面直接发布到云端,这里小程序云应用提供了一键构建云端环境、一键发布的能力。针对支付宝小程序的场景,小程序云应用设置了自动分配测试运营和一些相关的证书,让开发者可以直接使用MySQL数据库。

(2)灵活性:开发者可以一键构建后端环境,但这并不意味着缺少灵活性。小程序云应用允许开发者自由组合蚂蚁金服金融科技的产品,在满足便利性的同时也能实现灵活性。另外小程序云应用有一套高可用架构,提供监控预警能力。

(3)自主可控:小程序云应用提供服务器,开发者可以拥有、登录或重启,也可以修改密码。也就是说,服务器是由小程序云应用提供,但使用权归开发者。

(4)提高代码的研发效率:除了方便开发者使用和构建后端环境之外,小程序云应用更关注在开发过程中如何提高代码效率,这里小程序云应用提供了自动生成代码模板的能力,方便开发者使用。

对于一个有服务器的后端研发流程,可以分为 4 步:构建云端的环境和服务器——>代码开发——>应用发布——>应用运维。小程序云应用是如何在每个阶段简化开发过程呢?

首先,作为一个小程序开发者,你需要了解IDE、蚂蚁开放平台和小程序云应用的关系:

在蚂蚁开放平台通过登录打通的方式,可以直接进入小程序云应用的页面,通过蚂蚁开发者工具Node.js或者基于Java的IntelliJ IDEA插件,也可以进入到小程序云应用中,这样开发者不必在三者间切换,从而实现一站式开发小程序。

在了解一站式开发小程序之后,小程序云应用是如何帮助开发者构建云端环境?这里底层编排引擎非常重要,它通过应用创建、资源创建、数据库配置、网络配置、自动配置二级域名和证书,一次性帮助用户完成云端环境的构建,从用户的体验来看,就是完成 5 步的点击操作即可。

IDE提供一键发布的能力,帮助开发者直接将应用发布到云端。在一键应用发布的背后,小程序云应用其实是集成了CI/CD和发布部署能力,从而给用户提供良好的一键发布的体验。

如何实现代码研发效率的提升?

代码研发效率的提升有两点:一是代码托管云端构建,二是代码模板自动生成。

从代码模板自动生成的角度,比如技术类代码模板,通过支付宝认证获取用户信息,完成文件上传、认证授权、数据库访问等操作,从而提供给用户生成代码的能力;

对于业务类代码模板,需要根据不同的业务类型,比如支付、营销、信用等,深度集成蚂蚁金服的自有能力。例如,支付不是一个接口就可以简单搞定,而是需要多个接口串联,因此小程序云应用提供的代码并不是针对一个接口,而是将整个支付链路串联起来,用户只要通过修改一些参数(如公钥、私钥等)就可以运行代码。

对于场景类业务,不同行业的支付宝小程序,除了通用的能力之外,还应该具备行业特色。小程序云应用结合蚂蚁金服积累多年的行业经验,针对不同行业打造不同的小程序代码模板,从而提升代码研发效率。

小程序云应用的语言框架是什么?

小程序云应用的语言框架有两种选择,对于熟悉前端开发的开发者,小程序云应用提供Node.js;对于习惯Java的开发者,小程序云应用提供SOFABoot和Spring Boot两种框架,Spring Boot是目前最流行的开源框架,而SOFABoot 是蚂蚁金服基于 Spring Boot 构建的一个研发框架,扩展了很多企业级特性,以解决大规模团队开发云原生微服务系统中会遇到的问题,如类隔离、ReadinessCheck,日志隔离等等能力,后续会开放更多内部实践过的特性,如 Spring 上下文隔离,合并部署,动态模块,Tracing、Metrics、Streaming、测试框架等。

对于高可用,小程序云应用提供以下方案的支撑:

多可用区,可以简单理解为多机房;通过SLB+ECS实现负载均衡;弹性伸缩和监控预警能力,保障对高可用的支撑。

小程序云应用的后期运维,通过一个Web控制台,提供多种运维能力帮助用户做应用管理、发布、回滚、启停等。

小程序云应用的技术架构:

如上图所示,小程序云应用的底层是阿里云计算、存储、网络的基础能力,以及蚂蚁开放平台支付、安全、信用等能力;在底层能力之上,通过蚂蚁金服的应用PaaS平台提供一些基础能力,包括环境资源管理、发布部署、弹性伸缩、监控分析、分布式中间件;在基础能力之上构建小程序云应用的场景化能力,包括IDE插件的无缝集成、环境构建、应用运维和高可用支撑。最上面小程序云应用支撑的是整个阿里系小程序,包括支付宝、钉钉、淘宝、高德等。

前段时间阿里巴巴发布了“一云多端”计划,“多端”就是用户一次开发小程序的前端就可以在钉钉、支付宝、淘宝、高德里面通用。“一云”就是支付宝小程序云,通过一个服务器的后端支撑多个前端。

总而言之,小程序云应用是一种经典的有服务器自主运维模式的后端搭建,如果开发者不想关心后端如何搭建,只想考虑前端业务逻辑,不妨考虑小程序Serverless。

声明:本文转载自第三方媒体,如需转载,请联系版权方授权转载。协助申请

相关文章

相关热点

查看更多