美团 O2O 供应链系统架构设计解析

英国知名供应链专家Martin Christopher曾经说过一句非常深刻的话:“21世纪的竞争不是企业和企业之间的竞争,而是供应链和供应链之间的竞争。”

什么是供应链?

在风云变幻、寡头纷争的O2O战场,美团屡出重拳并步步为营,战绩不俗。这一切离不开背后的神秘技术团队——供应链。

供应链,简称 SCP(Supply Chain Process)。美团借助平台的优势与商家展开合作,将约定的合作方案落实到纸质契约。彼时用户还不能直接看到或购买这些契约上的合作方案,需要一个电子化的生产过程。这个过程完成两件重要的事情,一是将拟定的方案细化,让消费者能看到详尽的图文描述,价格,购买限制等等。二是审核这个方案,确保它在法律上有效,在财务上可靠。完成这个生产过程后,用户就可以到美团的C端,例如手机APP或美团主站上看这个方案并发起购买,产生一笔交易。到具体的门店进行消费时,就能得到方案中商家许诺的服务。这一系列的过程:合作,交易,消费都是紧紧围绕一个概念发生的,那就是项目。这个项目的生产过程,就是美团供应链。

这个生产过程由哪些角色参与了哪些事,生产出来的项目又是什么呢?以传统团购为例,一个经典的上单过程由美团在城市端的BD(业务拓展人员)发起。BD和商家达成合作意向后签署一纸合同,再到美团的业务门户录入这次合作和详细方案,然后提交总部审核。审核人员根据审核手册做出判断,如果本次合作和方案可靠合法就将其审核通过。审核通过的方案再经过CMS(内容管理系统)完成标题图文的包装和各个C端渠道的适配,一单项目就生产完成了。可以看到,这个过程涉及多个业务环节和人员角色,如果能提高其中一些环节效率或减少人员投入,将成为公司的核心竞争力。

除了传统团购,美团在O2O的一些细分领域,比如酒店、旅游、外卖、早餐等等也逐步开花结果。这些新生的细分领域的项目标准化程度不一,如何支持这些细分领域的项目生产,如何让这个支持过程高效可靠,帮助美团把握住一个又一个的O2O风口,就成了美团供应链系统面临的挑战。

供应链系统的挑战复杂数据细粒度结构化

在购买传统商品时,在淘宝、京东上,用户更关心的是产品规格、材质、物流方面的信息,比如一件红色T恤,用户会关心是纯棉的吗,是不是XL码,所在的省份支持哪些快递公司,快递费多少,而不太会关心商家所处的位置。而购买餐饮团购时,用户就非常关注这个商家的物理位置,需要具体到哪个城市哪个商圈哪个门店。即使同为团购单,餐饮和酒店又有很大不同。餐饮单需要关心几人餐,餐具是否免费,允不允许自带酒水,是川菜还是江浙菜系列等。酒店单需关注是大床房还是双人床房,是否免预约,工作日和周末是否价格不同等。

由此可以看出,在不同的细分领域,甚至同一领域下不同的品类,商品的标准化程度都有很大不同。以传统团购中餐饮品类下火锅子品类为例,一个细化的方案包括:方案信息(菜系、几人餐、套餐几选几、具体菜品等),购买须知(交易类型是美团券还是优惠码,项目有效期,美团券有效期等),还有商家自身文案描述等,大概涉及将近100个属性。那么问题就来了,为什么需要将粒度拆分得这么细呢?

背后有两个原因。

一,从大的方向上来讲,供应链连接了商家和用户,也就是需要同时对接到B端和C端。B端的利益相关人是地面销售人员,他们对供应链系统的需求是录入效率高。在不同细分领域以及不同品类之间有共同关注的属性,比如购买须知(也就是项目有效期这些概念)。我们从散落的属性中把这些可复用的属性抽出来,抽象为购买须知模块,帮助BD预填写很多默认值,可以有效提升BD的上单效率。同时对C端的消费者来讲,需要从很多维度进行搜索,方便的找到符合预期的商品,而搜索的前提就是内容的结构化。

二,美团C端的渠道也愈来愈多,各C端渠道对项目方案的属性维度要求不一且调整频繁。结构化是实现这些需求的必然路径。

售卖方式灵活多变

支持完品类繁多的餐饮单方案详情后,我们马上面临另外一个问题——复杂多变的售卖方式。酒店双人间,含早餐和不含早餐,双床还是大床房都对应不同价格。其实,线下的酒店售卖场景对应到线上,除了早餐和房型的差别,还面临节假日、不同时段等等规则,产生了多种多样组合售卖方式。并且每次交易后,商家都需要扣减指定一类房型的库存。此时又该如何应对呢。是否每多一个售卖方式,BD就要重复录一个方案?这必然会导致录单时长呈几何倍数增长。如果方案细节发生调整,关联的大量方案也需要同时修改,给BD带来的成本太高。这就对供应链系统提出了新的要求:只录一次,就能支持复杂多变的售卖方式。

品类和属性动态调整

团购做精做深的过程,反应在产品层面,就是品类的扩充和拆分。例如自助餐品类需要新增字段,表达是否含WiFi、是否含停车位。例如火锅品类拆分为成都火锅、重庆火锅。每次品类的扩充与拆分都意味着产品录入界面调整,后台存储改变。体现在开发上面,需要前后端同时支持,烦不胜烦。这对供应链又提出了新要求:品类和属性调整零开发量。

审核流程可配置

不同的业务渠道对上单审核的卡控要求不一。以今年的新业务形态买单为例,从产品运营层面就已经决定毛利、敏感词等方面的可靠性,只需要总部的编审人员审核方案数据一致性。而团购渠道历史悠久,方案覆盖的场景复杂多变,需要城市端做出初审,再交由总部的中台人员代运营。但这些审核过程又不是静态不变的,一旦线下上单场景发生调整,线上的审核也需要立即跟进调整。这对供应链系统提出的要求就是:审核过程可配置。

直面挑战构建 O2O 生活服务模型

实现上面这些高大上的要求,美团供应链系统其实也不是一蹴而就的。从糙快猛的作坊式开发,到今天搞架构搞模式搞生态,供应链系统的进化是一部可歌可泣的血泪史。在经历品类猛调,渠道猛扩之后,技术一路小跑却依然跟不上产品的迭代速度。当时系统已经积攒了历久弥陈的代码和逻辑,在新需求面前难于招架、步履维艰。这时我们意识到出了问题。飞速行驶的火车就无法优雅地换轮子吗,业务多次迭代后系统就必然动态不得了?答案必然是否定的。供应链技术团队在痛定思痛之后选择了一条最难但也是彻底解决这个问题的道路:给O2O行业的各业务生态建模,抽象出产品中心。

我们以多售卖方式的酒店为例来看看产品中心的映射关系。对商家而言,能提供的服务单元包括大床房,酒水,早餐,WiFi。这些服务按照商家的销售意愿组装成销售单元进行售卖,如大床房+早餐、大床房+WIFI、大床房。对C端用户而言,感知到的就是销售单元,享受到的是销售单元内涵盖的服务单元。需要销售端感知的限制被抽象为销售规则,需要消费端感知的限制被抽象为消费规则,售卖方式被抽象为价格规则。这些规则可以被统称为SKU属性。销售单元适配上不同的SKU属性,就成为不同的C端产品。

事件驱动,过程解耦

针对审核过程动态可配置的目标,我们引入了工作流。为不同的业务渠道设计不同的审核流程:有哪些审核节点,每个审核节点由哪些人员角色操作,每个审核节点在通过或驳回后的流向,都可以动态配置,分分钟搞定。业务系统不再关心工作台的概念,供应链系统的信息流和事件流推动完全交由了工作流系统。不仅于此,原先累积在供应链系统之上,针对上单时长、等待时长等数据分析的工作用到的过程数据,都从业务系统解耦出来,由工作流的流程数据提供原生支持。从过程数据记录,挖掘分析等需求解放出来,供应链系统就更能腾出精力来专注于提升自身核心竞争力——更强更快。

自动化一切

908

在上单量飙升时,压缩供应链的上单成本能为公司带来直接收益。压缩成本就意味着在保证上单质量的同时尽可能缩短上单时长、降低人工参与度。我们将供应链生产过程化整为零,切分为多段,每一段采用定制的自动化策略,精细运营。在审核环节引入免审,在撰写环节引入免写,目标为“单均成本降低90%,效率提升8倍”,因此公司内部将这个项目称之为908。

还在继续

发展到后来,908已经不再是一个项目的名字,而是自动化一切的思路。到今天供应链系统也还在一点点雕琢,例如针对重复审单的情况引入工作流,针对品类动态扩展的情况引入属性中心。以属性中心为例,之前品类和属性调整往往意味着几天的重复开发和臃肿的代码,现在只需要业务人员在配置页面用几分钟的时间简单配置。

成就动作快

以优惠买单为例,完整的供应链流程支持的开发成本是5人日,包括:完整的商家入驻,个性化的契约协议、方案录入、结构存储和审核流程,并对接多个C端渠道。而在之前,这个数字是30人日。

降成本,提效率

实现免审免写后,体现出两个数字的变化。一是编审部门解散,这个部门原来有近百人负责上单过程的审核和撰写;二是上单量增长1000%的背景下,上单成本降低了90%以上。

总结

从技术角度回顾供应链的上单过程。BD在前台发起一起上单请求,后台根据BD要录单的业务渠道、品类等,通过DF(Dynamic Form)渲染出录入页面。请求到达后端后,先经过AC(Attribute Center)层自动完成针对不同DF的合法性检查,再转化为后台产品中心要求的数据格式。录完的方案数据沉淀到产品中心,并通过Gravity调度具体方案的审核任务。发生修改后,修改过程沉淀到变更中心,变更本身的审核也交由Gravity调度。产品中心收到Gravity的审核通过消息通知后,就安排CMS使用不同的动态模板完成拼装,进而输出到不同的C端。

以产品和变更中心为Model沉淀,以动态表单和动态模板完成View自动拼接,以属性中心和工作流完成Control逻辑驱动,最终供应链系统以MVC定下高可用自动化的江山。

时间: 2024-10-12 12:42:51

美团 O2O 供应链系统架构设计解析的相关文章

电商峰值系统架构设计--转载

1.1 系统架构设计目录 摘要:双11来临之际,<程序员>以“电商峰值系统架构设计”为主题,力邀京东.当当.小米.1号店.海尔商城.唯品会.蘑菇街.麦包包等电商企业,及商派.基调网络等服务公司,分享电商峰值系统架构设计的最佳技术实践. 自2009年11月11日,淘宝商城(现名天猫)拉开网购狂欢节的序幕,各大电商的促销浪潮此起彼伏.此时的电商大战不仅是价格之争,更是技术的较量.如何设计电商峰值系统来更好地满足用户蜂拥而至的访问,如何在海量数据处理中实时发现有效信息并转化为商机,成为众多电商企业密

Unity3D手游开发日记(2) - 技能系统架构设计

我想把技能做的比较牛逼,所以项目一开始我就在思考,是否需要一个灵活自由的技能系统架构设计,传统的技能设计,做法都是填excel表,技能需要什么,都填表里,很死板,比如有的技能只需要1个特效,有的要10个,那么表格也得预留10个特效的字段.在代码里面也是写死一些东西,要增加和修改,就得改核心代码,如果我要把核心部分做成库封装起来,就很麻烦了. 能不能做成数据驱动的方式呢? 改技能文件就行了,即使要增加功能,也只需要扩展外部代码,而不用改核心代码, 我是这么来抽象一个技能的,技能由一堆触发器组成,比

NET ERP系统架构设计

解析大型.NET ERP系统架构设计 Framework+ Application 设计模式 我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应该具备良好的可扩展性和可维护性,系统中的功能紧密关联.除去业务上的复杂性,如何设计这样的一个协作良好的系统,搭建开发人员基础平台,一直是我研究的方向. SouceCounter(版本3.3.91.79)对源代码的统计信息如下: 下面来详细解析一下这个系统的设计架构,纯.NET技术架构方案,C/S W

机票实时搜索系统架构设计

机票实时搜索系统架构设计 ? 不同的业务场景,不同的特征 ? 结合特征去进?设计和优化 ? 通?!=最优 ? 量体裁? 分布式系统的CAP理论 首先把分布式系统中的三个特性进行了如下归纳:    ● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值.(等同于所有节点访问同一份最新的数据副本) ● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求.(对数据更新具备高可用性) ● 分区容错性(P):以实际效果而言,分区相当于对通信的时限要求.系统如果不能

京东虚拟业务多维订单系统架构设计读后感

阅读文章:京东虚拟业务多维订单系统架构设计 文章网址:https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247486428&idx=1&sn=382f9d307073839f7900df7168916cf1&chksm=fbf7bb33cc80322599a586248c4bf92880374dcb8c48249c91b03170230112492b3ec628206e&scene=21#wechat_re

IM系统架构设计之浅见

背景:除去大名鼎鼎的QQ这款即时聊天工具,还有许多细分行业的IM,比如淘宝阿里旺旺.网易泡泡.YY语音.......恰巧公司产品也要开发一款基于我们自己行业的类IM系统,很有幸我担当了这个产品的架构师,核心代码编写.实现者.下面我近年来从技术上我对IM系统(即时消息的传输,不包括语音,视频,文件的传输)的理解和设计分享出来,浅薄之见,望大家别见笑,欢迎给出批评意见. 一.网络传输协议的选择 目前我知晓的所有IM系统传输即时消息无外乎使用UDP.TCP.基于TCP的http这几种协议中的一种或几种

秒杀系统架构设计

秒杀活动的用户量可能是网站平时正常访问量的数百甚至上千倍,网站如果为了秒杀时的最高并发量而设计部署,就需要比正常运营多的多的服务器,而这些服务器在绝大部分时候都是用不着的,浪费惊人.所以秒杀业务不能使用正常网站的业务流程,也不能与正常网站业务共用服务器,必须设计部署专门的秒杀系统. 秒杀系统所面对的技术挑战: 1.对现有业务造成冲击 2.高并发下的应用.数据库负载 3.突然增加的网络及服务器带宽 4.直接下单 秒杀规则是到点了才能下单,而下单页面也只是一个普通的url,如果得到这个url则不用等

petshop4.0 具体解释之中的一个(系统架构设计)

前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有很多.Net与J2EE之争,很多数据是从微软的PetShop和Sun的PetStore而来.这样的争论不可避免带有浓厚的商业色彩,对于我们开发者而言,没有必要过多关注.然而PetShop随着版本号的不断更新,至如今基于.Net 2.0的PetShop4.0为止,整个设计逐渐变得成熟而优雅,却又非常多能够借鉴之处.PetShop是一个小型的项目,系统架构与代码都比較简单,却也凸现了很多颇有价值的设计与开发理念.本系列试

高可用、高扩展、低延迟交易处理系统架构设计

为实现一个高TPS.高可靠性.高扩展性.低响应延迟的交易处理系统,在系统架构设计上,需要有诸多考虑.  1. 交易处理系统的功能 交易系统是用于连接多个不同的交易请求系统(上游系统)与交易受理系统(下游系统),在这些交易上下游系统之间传递不同格式的交易报文.同时一个交易请求可能需要发送多个不同的子交易请求到不同的交易受理系统,交易处理系统还负责子交易的拆分.交易完整性与一致性保证. 一个典型的交易处理系统,往往需要支持多种不同的通信协议(TCP长连接.TCP短链接.CTG.CICS.MQ等),支