前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >中台整合零售:腾讯电商业务中台的 Serverless 架构升级

中台整合零售:腾讯电商业务中台的 Serverless 架构升级

作者头像
腾讯云原生
发布于 2022-02-08 04:41:42
发布于 2022-02-08 04:41:42
2.6K0
举报

零售领域变革不是一个新话题,从电商到 O2O ,从无人售货柜到机器人导购,腾讯云的尝试一直未曾止步。对于传统零售企业来说,通过数据中台可以让顾客与需求更好地匹配,同时实现平台上多触点获取流量。而技术中台,则可以帮助零售企业提升整体运营效率,在提高安全性的基础上,还能享受 AI 时代带来的智能化红利。

谈及腾讯电商业务中台,腾讯云应用与服务编排工作流 ASW 的项目负责人王子一认为,“以消费者为中心,实现上下游的产业协同,赋能商家,商家一次接入后,可应用于如下全部业务场景:检索业务、广告业务、智能广告投放、商品的下游数据需求等等,为海量数据的储存和计算提供更稳定安全的高性能中台”。

01.

中台整合零售 共建经济共同体

电商业务中台解决方案提供流程驱动业务中台和数据中台的双中台管理,实现商品、库存、会员等全渠道业务数据的实时在线,进而提高运营效率和库存周转率,助力业务快速增长。通过整合上下游资源全局优化重构产业链条,加速数字化转型升级。

以腾讯云电商业务中台为例,基于云原生打造的高可用、可扩展、灵活配置的商品处理引擎,提供不同行业商家的商品录入,商品信息统一加工,商品信息分发等能力。            

(ASW 和 SCF 在腾讯云电商业务中台的应用) 

腾讯云电商业务中台抽象出商品加工的通用能力,自建出一套可复用组件市场,例如图片处理自然语言处理、商品信息处理等。商品中台支持商家商品统一接入、商品基于自建的组件市场进行商品加工、基于 ASW 工作流搭建定制化配置加工组件、统一存储的商品数据通过商品分发模块进行统一分发。

02.

ASW 商品加工编排设计 

腾讯云电商业务中台依赖腾讯云 ASW 调度平台进行流程配置和管理。应用与服务编排工作流(Application Services Workflow,ASW)是一个用来协调分布式任务执行的编排产品,根据腾讯云状态机语言定义来编排分布式任务和服务,工作流会按照设定好的顺序可靠地协调执行,将云函数与多个腾讯云服务按步骤进行调度,通过低代码配置,即可完成开发和运行业务流程所需要的任务协调、状态管理以及错误处理等繁琐工作,让研发团队能更简单、更高效的构建与管理工作流应用。

  • 使用 ASW 并发调用函数

通过工作流并行调用云函数,将多个批量计算分布式作业串联或并行编排,大大提高任务处理的吞吐量,可靠地支持执行时间长、并发量大的大规模计算。

( ASW 工作流与传统工作流的对比 )

目前 ASW 支持腾讯云 API 3.0上超过99%的接口,支持高并发场景。同时,ASW工作流原生支持云日志CLS、云监控CMS、云告警等成熟云上服务,在可观测性方面做到业界领先。

ASW 工作流优势:

弹性高并发:工作流并发调用云函数可以快速调动大量计算资源加速数据处理。

自定义流程:ASW 工作流可以实现高度自定义的工作流流程,例如数据处理流程、数据分析算法、数据存储方式。

降低成本:数据处理是 CPU 密集型任务,在 ASW 工作流及云函数的资源利用率高的情况下,实现了成本的降低。

提升效率:降低学习和使用成本,极大程度上缩短了项目周期,加快开发部署。

  • 使用 ASW 并行多任务处理

在数据处理、多媒体文件处理、商品审核、容器运维管理等系统架构中,往往需要并行多路任务处理的场景 。例如电商商品审核系统,商家每天对商品进行管理更新后,商品数据需要通过商品中台进行一系列的审核操作:如图片审核、死链检测、商品打标、文本审核、统一类目 等环节。海量更新的商品数据会先投递到 Ckafka,商品中台需要一个能快速处理大量数据,高并发、高吞吐量的数据处理流水线。

在数据处理流水线中,ASW 工作流的并发能力主要依赖于 Parallel 节点与 Map 节点。

( ASW 订单数据处理流程示意图)

  • Parallel 节点,也称并行节点:使用该节点可以在工作流中创建并行的任务分支,让多个任务并行执行,大大提升了业务数据处理的效率。
  • Map 节点,也称循环节点:使用该节点对数组中的每一个元素任务计算,且这些元素计算可以并发执行,大大提升了数据处理的吞吐量。

03.

 ASW + 云函数 提高交付效率

业界常见的云服务编排须要开发者写状态机表达式,开发人员要花大量精力解决组件间的代码逻辑,需要有较强的代码基础,开发难度较大。

通过 ASW + 云函数作为粘合剂,可快速搭建一个高效可用、易扩展性的微服务架构应用。ASW 凭借云平台和云函数的特性,可以轻松地无限扩展,具备兼容公有云、自建服务的融合能力 。ASW 预置了常见的利用模板,一键部署,开箱即用,极大地简化了开发复杂度。

(业务中台通用能力调度编排)

随着电商业务的高速发展,业务架构越来越复杂,通过建立业务中台的方式来支持前后台业务的快速迭代发展已成为必然选择。面对不同零售行业、不同应用渠道的商品加工逻辑差异,如何做到既跟上业务小步快跑的迭代速度和效率要求,又同时能够满足业务人员自主管控和自定义加工流程——已成为当前的热门话题和技术挑战之一。而腾讯电商业务中台的云原生技术架构设计,恰恰在当前最合适的时机,做了降本增效的前沿探索,为同类架构设计提供了借鉴和铺路,为大家拓展了更多的架构设计选择。

04.

场景拓展:电商零售场景中 Serverless 应用

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

每年双 11、618 等电商大促期间,零售行业线上渠道面临历史级别的流量挑战,中大型电商平台的峰值调用量可达上千万/分钟,面临高于日常 10-20 倍的流量压力。日常运营活动中,例如精品秒杀、限时抢购等,电商平台也同样面临大流量高并发、波峰波谷用户流量明显分化的典型场景。云函数 SCF 提供弹性、可扩展的基础设施和护航服务,帮助电商客户把握业务增长的机遇,从容应对挑战。  

(电商弹性大促架构图)

  • 瞬时冷启动

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

  • 实时扩缩容

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

  • 预置并发

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

2.静态站点

直播带货已成为线上零售平台的标配功能。电商直播中,需要专业、稳定的直播推流、转码、分发、播放等服务,满足超低延迟、超高画质、超大并发访问量的要求。在直播结束后,通常需要对回播视频进行处理,例如音视频转码混流、回播视频二次分发和存储等。相较于自建转码服务器,云函数 SCF 无需考虑转码服务器闲置时间的利用效率、以及服务器运维等问题。

(云函数电商直播方案)

  • 平滑迁移快速上线

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

  • 解决算力瓶颈

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

  • 按量计费成本优势

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

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

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

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

  • 没有请求时,空置率较高;
  • 需要专门维护一套运行处理代码;
  • 需要考虑并发和定时器的执行方法,来保障图片处理的及时性。

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

(云函数图像处理方案)

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

新年宠粉福利

关注【腾讯云原生】公众号

后台回复【虎年大吉/虎虎生威/如虎添翼】

立抢新年红包封面

数量有限,先到先得~

重磅介绍

【燎原社】推出了专业而又系统的线下云原生技术实战营,需要系统化深入学习的同学,可扫码报名云原生技术实战营课程,腾讯云技术专家现场教学,3天搞定云原生容器化改造过程中的实际问题,扫码一键直达:

  往期精选推荐  

点个“在看”每天学习最新技术

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云原生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JustMock .NET单元测试利器(二)JustMock基础
JustMock API基础 Mock是Telerik®JustMock框架中的主要类。Mock用于创建实例和静态模拟,安排和验证行为。 本文将介绍 “Mock”的基本用法: 首先我们创建一个IFoo对象 publicinterfaceIFoo { intBar{get;set;} voidToString(); } 创建实例模拟 要创建实Mock实例,您需要使用该Mock.Create方法或其通用版本Mock.Create<T>。有了这个,你创建一个虚假的对象,取代你的测试中的真实
码农阿宇
2018/04/18
1.1K0
JustMock .NET单元测试利器(三)用JustMock测试你的应用程序
用JustMock测试你的应用程序 本主题将指导您通过几个简单的步骤来使用Telerik®JustMock轻松测试您的应用程序。您将理解一个简单的原理,称为Arrange / Act / Assert,并熟悉框架中的核心方法和属性,这些方法和属性在最常见的测试场景中使用 为了说明下一个例子中JustMock的用法,我们将使用一个样本仓库(warehouse)和一个依赖订单对象(Order)。仓库持有不同产品的库存。订单包含产品和数量。 仓库界面和订单类看起来像这样: publicdelegatevoidPr
码农阿宇
2018/04/18
1.2K0
ASP.NET Core 对Controller进行单元测试
单元测试对我们的代码质量非常重要。很多同学都会对业务逻辑或者工具方法写测试用例,但是往往忽略了对Controller层写单元测试。我所在的公司没见过一个对Controller写过测试的。今天来演示下如果对Controller进行单元测试。以下内容默认您对单元测试有所了解,比如如何mock一个接口。在这里多叨叨一句,面向接口的好处,除了能够快速的替换实现类(其实大部分接口不会有多个实现),最大的好处就是可以进行mock,可以进行单元测试。
MJ.Zhou
2020/06/23
2.1K0
asp.net MVC 应用程序的生命周期
  首先我们知道http是一种无状态的请求,他的生命周期就是从客户端浏览器发出请求开始,到得到响应结束。那么MVC应用程序从发出请求到获得响应,都做了些什么呢?       本文我们会详细讨论MVC应用程序一个请求的生命周期,从一个控件到另一个控件是怎样被处理的。我们还会详细介绍一下整个请求的生命周期中,用到的相关组件。因为在平常的开发过程中,我们可能知道怎样去使用MVC框架来处理相关的请求,大部分的时候我们只是在controller和action方法之间做相关的处理,对于真正内在的运行机制可能不是很了解。
用户1172223
2018/01/26
2K0
【asp.net core 系列】10 实战之ActionFilter
在上一篇中,我们提到了如何创建一个UnitOfWork并通过ActionFilter设置启用。这一篇我们将简单介绍一下ActionFilter以及如何利用ActionFilter,顺便补齐一下上一篇的工具类。
程序员小高
2020/06/18
6960
ASP.NET MVC是如何运行的[2]: URL路由
在一个ASP.NET MVC应用来说,针对HTTP请求的处理和相应定义Controller类型的某个Action方法中,每个HTTP请求的目标对象不再像ASP .NET Web Form应用一样是一个物理文件,而是某个Controller的某个Action。目标Controller和Action的名称包含在HTTP请求中,而ASP.NET MVC的首要任务就是通过当前HTTP请求的解析得到正确的Controller和Action的名称。这个过程是通过ASP.NET MVC的URL路由机制来实现的。 一、Ro
蒋金楠
2018/02/07
2K0
ASP.NET Core 2.2 : 十七.Action的执行(Endpoint.RequestDelegate后面的故事)
          上一章介绍了经过路由的处理,一个请求找到了具体处理这个请求的EndPoint,并最终执行它的RequestDelegate方法来处理这个Httpcontext。本章继续这个处理进程,按照惯例,依然通过几幅图来聊一聊这个RequestDelegate之后的故事。在此就避免不了的聊到各种Filter,它方便我们在action执行的前后做一些 “小动作”。(ASP.NET Core 系列目录)
FlyLolo
2019/02/26
7980
ASP.NET Core 单元测试:如何Mock Url.Page()
在 ASP.NET Core 中,当你在 UrlHelperExtensions 类上使用扩展方法时,很难在单元测试中编写Mock。因为Moq框架不支持模拟扩展方法。
Edi Wang
2021/04/29
1.1K0
ASP.NET Core 单元测试:如何Mock Url.Page()
ASP.NET Core 单元测试:如何 Mock HttpClient.GetStringAsync()
在 ASP.NET Core 单元测试中模拟HttpClient.GetStringAsync() 的技巧。
Edi Wang
2021/05/27
1.4K0
ASP.MVC 基于AuthorizeAttribute权限设计案例
     ASP.MVC上实现权限控制的方法很多,比如使用AuthorizeAttribute这个特性 1.创建自定义特性用于权限验证 public class AuthorizeDiy : AuthorizeAttribute { /// <summary> /// 提供一个入口用于自定义授权检查 /// </summary> /// <param name="httpContext"></param> /// <r
用户1055830
2018/01/18
1.7K0
ASP.MVC 基于AuthorizeAttribute权限设计案例
Asp.Net WebApi 调试利器“单元测试”
当我们编辑好一个WebApi应用程序后,需要对该Api接口进行调试,传统的调试办法是在方法内设置断点,然后用PostMan等http工具模拟访问进行查看WebAPI的运行情况,但这种除了效率较低还进行
码农阿宇
2018/04/18
2.3K0
Asp.Net WebApi 调试利器“单元测试”
ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程
开篇:上一篇我们了解了在WebForm模式下一个Page页面的生命周期,它经历了初始化Init、加载Load以及呈现Render三个重要阶段,其中构造了页面控件树,并对页面控件树进行了大量的递归操作,最后将与模板结合生成的HTML返回给了浏览器。那么,在ASP.NET MVC模式下,一个页面的生命周期又经历了哪些步凑呢?别急,本篇漫漫道来!
Edison Zhou
2018/08/20
1.2K0
ASP.Net请求处理机制初步探索之旅 - Part 5  ASP.Net MVC请求处理流程
通过一个模拟程序让你明白ASP.NET MVC是如何运行的
ASP.NET MVC的路由系统通过对HTTP请求的解析得到表示Controller、Action和其他相关的数据,并以此为依据激活Controller对象,调用相应的Action方法,并将方法返回的ActionResult写入HTTP回复中。为了更好的演示其实现原理,我创建一个简单的ASP.NET Web应用来模拟ASP.NET MVC的路由机制。这个例子中的相关组件基本上就是根据ASP.NET MVC的同名组件设计的,只是我将它们进行了最大限度的简化,因为我们只需要用它来演示大致的实现原理而已。[源代码
蒋金楠
2018/01/15
1.2K0
通过一个模拟程序让你明白ASP.NET MVC是如何运行的
.NET重构—单元测试的代码重构
阅读目录: 1.开篇介绍 2.单元测试、测试用例代码重复问题(大量使用重复的Mock对象及测试数据) 2.1.单元测试的继承体系(利用超类来减少Mock对象的使用) 2.1.1.公用的MOCK对象
王清培
2018/01/08
1.4K0
.NET重构—单元测试的代码重构
ASP.NET MVC Preview生命周期分析
做ASP.NET WebForm开发都知道,ASP.NET有复杂的生命周期,学习ASP.NET MVC就要深入理解它的生命周期。今天从CodePlex上下载了ASP.NET Preview 2 的源代码,还有两个程序集Routing与Abstractions并未发布,不过这两个程序集的类并不多,可以用NET反编译工具 Reflector解开来看看,可惜这两个程序集用的是VS2008使用.net 3.5开发的,用了c# 3.0的很多特性,Reflector反编译不完全。 ASP.NET MVC通过HttpMo
张善友
2018/01/30
1.5K0
Asp.net mvc 知多少(八)
本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问http://www.dotnettricks.com/free-ebooks自行下载。该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。 由于个人技术水平和英文水平也是有限的,因此错误在所难免,希
圣杰
2018/01/11
1.5K0
Asp.net mvc 知多少(八)
ASP.NET MVC Controller激活系统详解:总体设计
我们将整个ASP.NET MVC框架划分为若干个子系统,那么针对请求上下文激活目标Controller对象的子系统被我们成为Controller激活系统。在正式讨论Controller对象具体是如何被创建爱之前,我们先来看看Controller激活系统在ASP.NET MVC中的总体设计,了解一下组成该子系统的一些基本的组件,以及它们对应的接口或者抽象类是什么。 目录 一、Controller 二、 ControllerFactory 三、ControllerBuilder     实例演示:如何提
蒋金楠
2018/01/15
1.8K0
ASP.NET MVC Controller激活系统详解:总体设计
mvc页面传值的几种方式_netuse
1、比如Request.Form[“ddlType”]为control中需要模拟的内容
全栈程序员站长
2022/11/09
7290
[转]ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由。也介绍了它本身的局限性-依赖于路由信息中的键值对:
徐大嘴
2019/03/21
1.6K0
认识ASP.NET MVC的5种AuthorizationFilter
在总体介绍了筛选器及其提供机制(《深入探讨ASP.NET MVC的筛选器》)之后,我们按照执行的先后顺序对四种不同的筛选器进行单独介绍,首先来介绍最先执行的AuthorizationFilter。从命名来看,AuthorizationFilter用于完成授权相关的工作,所以它应该在Action方法被调用之前执行才能起到授权的作用。不仅限于授权,如果我们希望目标Action方法被调用之前中断执行的流程“做点什么”,都可以以AuthorizationFilter的形式来实现。[本文已经同步到《How ASP.N
蒋金楠
2018/01/15
1.6K0
认识ASP.NET MVC的5种AuthorizationFilter
推荐阅读
相关推荐
JustMock .NET单元测试利器(二)JustMock基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档