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

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 我们在探索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

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
7月前
|
运维 监控 开发工具
应用研发平台EMAS产品常见问题之华为手机没收到通知如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
小米手机 fastboot模式 显示 press any key to shutdown 解决方法(亲测有效,已解决)
小米手机 fastboot模式 显示 press any key to shutdown 解决方法(亲测有效,已解决)
900 0
|
1月前
|
人工智能 Serverless 数据处理
极速启动,函数计算弹性降本能力再升级
在数字化转型的大潮中,云计算成为推动创新和优化业务流程的关键力量。作为阿里巴巴集团的核心产品之一,函数计算(Function Compute)引领着 Serverless 计算的新时代。本文将深入探讨函数计算如何通过技术革新实现提效降本,以及其在 AI 业务、数据处理和 Web 应用等多个领域的广泛应用。
|
1月前
|
前端开发 安全 开发者
【通义灵码实践】实现经典手机游戏推箱子
本文介绍了使用通义灵码辅助实现经典推箱子游戏的过程。首先,通过输入“用Python写一个推箱子游戏”,灵码生成了基本的终端版本代码,包括地图渲染、玩家移动和胜利检测等功能。然而,终端版本交互体验不佳。为了解决这一问题,再次输入“不要在终端上运行,希望可以在页面上运行”,灵码生成了基于Flask的后端代码和HTML前端代码,实现了网页版推箱子游戏。最终结果展示了游戏的完整实现,包括前后端交互和用户界面。总结中提到,该方法具有快速生成代码、代码质量高、易于扩展等优点,但也存在功能简单、样式和用户体验有限、错误处理不足等问题,适合快速原型开发和教学演示。
82 2
|
2月前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
153 10
|
1月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
99 1
|
2月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
246 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
2月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
64 3
|
4月前
|
弹性计算 运维 Kubernetes
Serverless 应用引擎 SAE 助力袋拉拉研发提效 70%
机汽猫的主要业务是通过部署 IoT 设备解决医院耗材管理问题。面对业务的潮汐特性带来的资源预留难题与运维压力,该公司选择将所有应用部署在阿里云 Serverless 应用引擎 SAE上。SAE 提供的微服务治理、自适应弹性伸缩及平台工程化能力,助力机汽猫研发效率提升了 70%。
|
5月前
|
人工智能 搜索推荐 vr&ar
苹果手机iOS18最新升级:植入AI人工智能,国内百度文心一言,国外GPT4o来辅助
iOS 18亮点速览:AI强化的Siri、RCS安卓消息兼容、自定义主屏、辅助功能增强,VR进步,新隐私工具,包括锁定APP和眼动追踪。Passwords app保障安全,Apple Intelligence提升个性化体验。
236 1

热门文章

最新文章

相关产品

  • 函数计算