手机淘宝轻店业务 Serverless 研发模式升级实践

本文涉及的产品
简介: 我们在探索Serverless一体化研发模式的最佳提效实践。
作者 | 淘系-知曼

image.png
随着 Serverless 在业界各云平台落地,阿里内部Serverless研发平台、各种研发模式也在业务中逐步落地,如火如荼。在此契机下,我们启动了轻店Serverless研发模式升级战役,基于集团底层设施建设 上层技术体系,解决在淘系轻店业务场景下碰到的系列问题,并借此推动现有前后端协作模式转变。

背景

轻店业务是淘系新型业务,目前处于探索试错阶段,如何能以较低人力成本配合业务快速试错,是我们当前需要考虑的问题。Serverless重要的特点之一“only focus your business”。因此,拥抱Serverless,轻店业务势在必行。本篇主要介绍,Serverless技术在轻店前端团队如何落地,以及如何推动轻店研发模式升级,提升研发效率。在此基础上也探索前端职能转变成为应用开发的可能性。

研发模式升级

本文首先调研集团内外Serverless现状,结合自身业务特点做技术选型;随后在轻店域内进行业务落地,在落地过程中逐步落实以下能力:以sidecar&bottle作为底层支撑,以一体化研发模式结合公共服务层、原子能力层、基础SDK来提升研发效率,最后通过轻店标准研发链路来保障业务稳定性;最终形成轻店FaaS体系,初步实现研发模式提效升级。

技术现状

image.png
集团各BU过去一年里在Serverless领域做了很多工作,主要集中在,基础建设,研发模式,逻辑编排,稳定性建设、以及将FaaS链路打通并落地到B侧和C侧业务场景,如下图所示。各业务依赖的Serverless平台集中在C平台/F平台(PS:阿里内部Serverless平台)。

技术选型

当前集团Serverless平台和midway-faas团队深度合作,定制了基于阿拉丁FaaS方案,依托袋鼠为业务网关,承载请求分发的职责,并且有容灾,兜底等通用能力。袋鼠以天马体系(PS:指以统一模块规范为基础的搭建体系)为基础底座,但是轻店业务底层依赖装修体系。因此,我们需要重新选型实现基于轻店场景的FaaS解决方案。除此之外,轻店业务核心依赖各种中台服务。这些中台服务大部分是以富客户端(PS:指集成了本地能力的二方包)形式提供,如何在nodeFaaS体系中使用富客户端,是我们技术方案需要考虑的重点。下面是C平台方案(PS:阿里内部的Serverless平台) 和 G平台方案(PS:阿里内部的Serverless平台)的链路对比图。
image.png
其中, G平台链路有bottle能力提供富客户端方案,整体系统链路层级少,性能更优,因此我们最终技术选型为G平台。作为业务方,和各平台一起推动&打通G平台方案在前端FaaS场景落地。

轻店 FaaS 体系

随着业务落地,能力沉淀,轻店FaaS逐成体系。

轻店FaaS(代号:玳瑁),有基础能力层,包含接口聚合,数据映射,函数兜底,灰度等。原子服务层,沉淀了轻店业务场景的各种中台能力封装,上层提供基础SDK,将各种能力直接给到业务使用。轻店FaaS在业务落地时,和前端模块组成轻店的商业SaaS能力,通过解决方案将商业能力组合,服务轻店各种业务场景。

SideCar & bottle

轻店业务核心依赖中台和中间件能力。因此,首先要解决的问题是,在nodeFaaS技术体系下如何调用富客户端和中间件能力。
轻店与G平台、midway FaaS团队一起推进基于G平台开发node FaaS能力。G serverless平台中,一个pod上面有两个容器,sidecar容器主要负责请求发现,分发,协议解析,提供各种服务能力(中间件,中台服务);function 容器运行node runtime 并且在上面跑业务faas代码。容器之间通过GRPC进行通信。最终,业务代码可以通过bottle-SDK调用富客户端/中间件能力。如图1所示。
image.png
基于上述方案,轻店FaaS实现了满足轻店业务场景的能力图谱。中间件层面主要集中在消息队列(metaQ),运维(switch, diamond),服务(HSF,mtop, http),缓存(tair, redis),数据库(云RDS),调度(schedulerx)等。中台能力集中在商品,商户,门店,券,标,店铺,UIC等。随着业务发展,在逐步丰富中。
image.png

玳瑁FaaS能力

玳瑁在运行态,以G平台和 node rutime 为底层平台,通过原子层能力实现业务FaaS函数,并在公共层统一提供数据聚合,兜底等能力。在研发态,基于统一研发平台和小程序端实现轻店一体化研发链路,包含统一构建发布流程,UI配置化映射,FaaS函数自动补全等。如下图所示。
image.png

公共层

api请求过来,首先经过公共层(代号:羚羊)。公共层主要实现了轻店域内的基础通用能力。比如,自定义投放能力,兜底能力,聚合能力,配置能力。其中,自定义投放能力是打通了阿X丁(PS:阿X丁指集团内部通用投放平台),业务可以自定义配置定投规则项,比如按商家,人群,区域,业务维度定投数据;兜底能力,针对需要保障高可用的C端接口,即使接口挂了也可以通过备份数据进行兜底,让消费者对服务异常无感知;聚合能力是将轻店页面装修数据 和模块内部数据统一下发,提高页面性能,防止页面抖动。并且基于统一下发服务的基础上,实现页面级别,接口级别的兜底,模块插件灰度能力。

原子能力层

原子能力层,是沉淀轻店业务场景的各种中台能力封装(门店模型,商品模型,券模型...)。基于这些原子能力,轻店FaaS统一收敛外部依赖,业务可以减少外部对接成本,实现业务功能,同时也为映射补全能力提供基础。

FaaS-SDK

为了提升效率,轻店抽象出FaaS-SDK,包含各平台适配,缓存能力,日志规范,锁能力,数据库封装,通用工具等等。其中,平台场景的适配包含集团内各severless平台,让开发者对平台无感知,只需要关注业务逻辑本身;轻店体系下提供多级缓存能力,对RT要求高的高可用场景,提供技术支撑;通用日志规范,对FaaS场景的INFO,ERROR日志进行格式规范,并封装成独立包供业务使用。

一体化研发模式

在公共层能力层,原子层能力,SDK ,以及sidecar & bottle的基础上,我们打通小程序模块和FaaS研发链路,实现轻店一体化研发模式。

一体化研发模式是指,基于端开发小程序模块,同时在同一个项目中实现FaaS能力。在前端代码中直接引用FaaS代码作为函数调用,无需通过请求调用;并且在整个研发链路中,实现两端同步创建&发布。在轻店场景下,这种研发模式节省了前后端沟通联调成本,大大提升研发效率。

稳定性

最后,为了保障业务的可靠性和稳定性,轻店定义了 轻店FaaS的标准研发链路。从研发生命周期(研发态,待上线,上线中,上线后)各个阶段配置不同的措施来保障业务稳定性。如下图所示。
image.png
至此,轻店FaaS体系已介绍完,以sidecar支撑底层能力,一体化研发模式结合公共服务层、原子能力层,基础SDK来提升研发效率,最后通过标准研发链路来保障稳定性。
通过轻店FaaS体系支撑轻店业务,前端从前到后cover完整业务,后端同学更聚焦在业务中台能力建设。前端职能逐步转变,从前端到全栈,从资源到业务合伙人。对整体业务而言,以更少的协同沟通成本,更少的联调成本,让团队整体效率提升。自此,轻店团队初步实现研发模式升级。

业务落地现状

当前我们轻店FaaS,在多个轻店域内业务落地。
image.png

未来

我们继续在轻店FaaS体系的基础上,探索一体化研发模式的最佳提效实践。


image.png

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
运维 监控 开发工具
应用研发平台EMAS产品常见问题之华为手机没收到通知如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
2月前
|
人工智能 NoSQL Serverless
基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
本文主要分享了自己基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
469 6
基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
|
4月前
|
Serverless API 容器
函数计算容器模式如何设置多久释放资源啊?
函数计算容器模式如何设置多久释放资源啊?
367 0
|
5月前
小米手机 fastboot模式 显示 press any key to shutdown 解决方法(亲测有效,已解决)
小米手机 fastboot模式 显示 press any key to shutdown 解决方法(亲测有效,已解决)
467 0
|
1月前
|
运维 监控 Serverless
一键开启 GPU 闲置模式,基于函数计算低成本部署 Google Gemma 模型服务
本文介绍如何使用函数计算 GPU 实例闲置模式低成本、快速的部署 Google Gemma 模型服务。
164780 57
|
1月前
|
存储 运维 Serverless
我的Serverless实战-Serverless与传统模式的对比
我的Serverless实战-Serverless与传统模式的对比
|
4月前
|
运维 中间件 Java
淘宝权益玩法平台的Serverless化实践
淘宝权益玩法平台的Serverless化实践
226 0
|
4月前
|
SQL 弹性计算 运维
畅捷通的 Serverless 探索实践之路
畅捷通的 Serverless 探索实践之路
|
4月前
|
传感器 监控 安全
智慧工地源码 智慧大屏、手机APP、SaaS模式
智慧工地源码 智慧大屏、手机APP、SaaS模式
48 2
|
4月前
|
关系型数据库 Serverless 分布式数据库
PolarDB的Serverless模式支持自动纵向扩展
PolarDB的Serverless模式支持自动纵向扩展

相关产品

  • 函数计算