手机淘宝轻店业务 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

相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
数据采集 运维 Serverless
云函数采集架构:Serverless模式下的动态IP与冷启动优化
本文探讨了在Serverless架构中使用云函数进行网页数据采集的挑战与解决方案。针对动态IP、冷启动及目标网站反爬策略等问题,提出了动态代理IP、请求头优化、云函数预热及容错设计等方法。通过网易云音乐歌曲信息采集案例,展示了如何结合Python代码实现高效的数据抓取,包括搜索、歌词与评论的获取。此方案不仅解决了传统采集方式在Serverless环境下的局限,还提升了系统的稳定性和性能。
381 0
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
1183 69
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
663 114
|
人工智能 架构师 容灾
函数计算 FC:首发 GPU 极速模式,更弹性、更降本
函数计算 FC:首发 GPU 极速模式,更弹性、更降本
225 5
|
人工智能 Cloud Native Serverless
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
280 3
|
SQL 存储 缓存
EMR Serverless StarRocks 全面升级:重新定义实时湖仓分析
本文介绍了EMR Serverless StarRocks的发展路径及其架构演进。首先回顾了Serverless Spark在EMR中的发展,并指出2021年9月StarRocks开源后,OLAP引擎迅速向其靠拢。随后,EMR引入StarRocks并推出全托管产品,至2023年8月商业化,已有500家客户使用,覆盖20多个行业。 文章重点阐述了EMR Serverless StarRocks 1.0的存算一体架构,包括健康诊断、SQL调优和物化视图等核心功能。接着分析了存算一体架构的挑战,如湖访问不优雅、资源隔离不足及冷热数据分层困难等。
|
人工智能 Cloud Native Serverless
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
Serverless Devs 官网迎来全新升级,主站以 AI 应用开发的叙事透出项目特性和解决方案。应用中心(Registry)将各类热门 AI 应用模版、实用 AI 工具以及 AI 工作流等呈现给用户。本次升级主题为“一站式 AI/函数/应用开发”,希望为开发者提供更加便利的应用模版搜索和展示服务,本文将对本次升级的三大看点进行整理,欢迎您来体验!
|
人工智能 Serverless 数据处理
极速启动,函数计算弹性降本能力再升级
在数字化转型的大潮中,云计算成为推动创新和优化业务流程的关键力量。作为阿里巴巴集团的核心产品之一,函数计算(Function Compute)引领着 Serverless 计算的新时代。本文将深入探讨函数计算如何通过技术革新实现提效降本,以及其在 AI 业务、数据处理和 Web 应用等多个领域的广泛应用。
640 31
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
382 0
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
1003 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展

相关产品

  • 函数计算