沃尔玛腾讯云 Serverless 应用实践,全力保障消费者购物体验

July 29, 2021

深耕零售,没有比中国更好的地方,也没有比现在更好的时间。1996 年,国际零售巨头沃尔玛进入中国,在深圳开设了第一家山姆会员商店。25 年后的今天,山姆会员商店拥有 数百万付费会员,成为国内遥遥领先的会员制商店。

当位于深圳的山姆会员商店连续 10 余年成为沃尔玛全球销售第一的门店,沃尔玛又一次亮出了优秀的业绩。为什么能够在极度竞争的中国零售市场保持强劲增长?2020 年全球零售行业调研报告作出了如下总结:在沃尔玛,各种各样的先进技术被广泛应用以提高工作效率。沃尔玛的管理者认为,先进的科技在零售市场将有助于沃尔玛赢得竞争

01.「顾客至上,服务第一」,腾讯云 Serverless 解决方案

顾客至上是零售行业的服务宗旨。但是消费者对购物体验的要求越来越高,业务迭代速度越来越快。山姆会员商店要保持前瞻性,线上销售渠道必须快速迭代创新,不断为消费者创造新的购物体验。

难点1 :应用发布频率高

山姆会员商店业务迭代快、应用发布频率高,基本保持在一周一迭代。

难点2:保障用户最佳体验

版本升级的基本要求是:对用户无感知,在升级过程中应用的无损发布。

难点3: 资源消耗大

零售行业线上流量巨大,一个应用可能需要上千台服务器,采用蓝绿部署时,如果在线上发布,需要再备份一千台服务器,对资源消耗造成极大的损失。

(山姆会员商店蓝绿发布架构图)

典型的开发流程从开发测试到集成测试,到预发测试,再到发布上线,每个研发阶段都有对应的环境做支撑,而每个环境都会消耗资源和成本,来保持服务在线。传统的版本灰度发布模式面临环境多、资源消耗多、成本高等困境。

(环境多、资源消耗大)

腾讯云山姆会员商店项目负责人李逸期在智慧零售深耕多年,从 0 到 1 搭建了山姆会员商店 APP 的技术架构。秉承沃尔玛公司用科技助力市场的战略,李逸期对以赋能业务为目标的技术创新,保持着极致化的追求。多种方案对比后,山姆会员商店选择了腾讯云云函数 SCF ( Serverless Cloud Function ) 默认别名灰度发布策略

云函数 SCF 默认别名灰度发布

默认别名是配置云函数的 $default(默认流量)别名,别名中固定有 2 个云函数版本:一个为 $latest 版本,一个为最后一次函数发布的版本。部署时配置的 traffic 参数为 $latest 版本流量占比,默认另一部分流量切到当前云函数最后一次发布的版本。

每次上线一个新功能,执行 sls deploy 会部署到 $latest 版本上。版本发布时先切部分流量在 $latest 版本上进行观察,稳定后逐步将流量切到 $latest 版本。当流量切到 100% 时,固化当前版本,并将流量全部切到固化后的版本。

(云函数默认别名灰度发布图)

优势 1 :风险控制保障用户体验

首先,控制变更的风险,一旦发现新版本有异常,随时可以调整流量比例进行回滚;其次,客户端和云函数一起进行灰度,即使需要做一些破坏性变更,例如协议变更时,也不用担心线上版本是否兼容新的协议。

优势 2 :快速验证适应高频迭代

Serverless 模式下,环境隔离、可直接发布,提升高频部署时的研发效率,适合做产品特性的快速验证。

优势 3 :弹性扩缩容节约成本

Serverless 在没有访问量时自动缩容,可以极大节约部署多环境的成本。

当遇到更加复杂的版本发布策略时,云函数自定义别名可以提供更灵活的版本切换方式。自定义别名的配置方式相对于默认别名更复杂,适用于对灰度发布能力要求较高的业务场景。

(云函数自定义别名灰度发布图)

02. 零售电商场景中 Serverless 应用

1. 电商大促等波峰波谷型业务

每年双 11、618 等电商大促期间,零售行业线上渠道面临历史级别的流量挑战,中大型电商平台的峰值调用量可达上千万/分钟,面临高于日常 10-20 倍的流量压力。日常运营活动中,例如精品秒杀、限时抢购等,电商平台也同样面临大流量高并发、波峰波谷用户流量明显分化的典型场景。

云函数 SCF 提供弹性、可扩展的基础设施和护航服务,帮助电商客户把握业务增长的机遇,从容应对挑战。

(电商弹性大促架构图)

  • 瞬时冷启动

云函数 SCF 底层采用自研的轻量级虚拟化技术,Micro Vm 启动时间短至 90 毫秒,函数 冷启动减低至 200 毫秒,并且支持上万台计算节点同时扩容。

  • 实时扩缩容

基于函数请求实时计算的模式,动态的扩缩函数实例,优化函数冷启动的体验问题,以及控制函数计算的资源成本 。

  • 预置并发

在秒杀、抢购等场景中,瞬间需要海量的计算资源。云函数预置并发,可支持并发实例按配置预先启动,提前“预热”函数,为业务高峰提前准备计算资源,消除冷启动、降低运行环境初始化及业务代码初始化引起的耗时。

2. 电商直播等 CPU 密集型业务

直播带货已成为线上零售平台的标配功能。电商直播中,需要专业、稳定的直播推流、转码、分发、播放等服务,满足超低延迟、超高画质、超大并发访问量的要求。在直播结束后,通常需要对回播视频进行处理,例如音视频转码混流、回播视频二次分发和存储等。

相较于自建转码服务器,云函数 SCF 无需考虑转码服务器闲置时间的利用效率、以及服务器运维等问题。

(云函数电商直播方案)

  • 平滑迁移快速上线

支持用户自定义配置 FFmpeg 命令参数、以及部署自建 FFmpeg,转码方式灵活,也可以便捷地从物理机、云主机或容器中移植到云函数。

  • 解决算力瓶颈

大规格实例最高支持 128GB/64C 进行 4K 高清视频转码,结合资源弹性伸缩能力,有效保证转码效率。

  • 按量计费成本优势

视频转码是高运算负荷的 CPU 密集型业务,需要对输入的视频流进行全解码、视频过滤/图像处理、并对输出格式进行全编码。云函数的1毫秒粒度按用量计费,拥有显著的成本优势。

3. 智能图片处理等事件驱动型业务

在电商平台上,每天都会有大量商品图片的查询请求和更新请求。高峰情况下,每天有千万级甚至亿级的图片处理需求。传统方案需要搭建一个在线服务器并部署 Web 应用来进行图片处理,程序按照一定规则定时触发事件。

在传统方案中,主要有三个困扰:

  1. 没有请求时,空置率较高;

  2. 需要专门维护一套运行处理代码;

  3. 需要考虑并发和定时器的执行方法,来保障图片处理的及时性。

而在 Serverless 架构中,云函数 SCF 提供图片裁剪、增加水印等多种处理能力,满足电商业务的图片处理诉求。同时针对图片处理、存储的高可用要求,可以支持对象存储的跨区域高可用部署。

(云函数图像处理方案)

用户仅需要在云函数 SCF 上设置触发器 + 函数,当用户把图片上传到对象存储中,将会触发函数代码进行图片处理,并把图片转移到新的存储桶中。整个过程,不需要搭建 Web 服务器,无需编写触发条件,也无需关注业务运维。

“中国市场是充满竞争的,但机遇也是巨大的。我们将持续保持技术的驱动力和领先性,以更高的质量和更快的速度完成一次次的产品迭代,保障每一天的消费者体验。”

—— Jason Wang ,沃尔玛中国 技术总监