摘要:美团技术专家、供应链平台系统负责人陈义宏简单介绍了美团供应链系统架构,以及其演进历程。
完善的供应链系统,是美团自创立至今持续茁壮成长的基础所在。它经历“千团大战”和后来残酷同业竞争的重重磨练。在不断的自我优化与创新中,帮助美团奠定了团购行业的领先地位。而面对企业今后多元化业务的发展需要,这个系统又进行了架构的重塑。
在UPYUN主办的“UPYUN Open Talk”第三期北京站上,美团技术专家、供应链平台系统负责人陈义宏向与会的知名企业及创业团队的开发者们做了深入浅出的精彩分享。
美团供应链系统架构简介及演进历程 via陈义宏
以下为分享摘录:
供应链系统简介
美团是以团购起家并作为核心业务,之后增加了一些支付、商家管理,包括验证、凭证方面还有其他的等业务。供应链系统主要负责商品的生产和商品的运营,其中的这个“商品”指的是我们本地的生活服务的各种套餐、代金券和其他的业务。
关注过团购领域的朋友们应该听说过“千团大战”,美团之所以能在这样的挑战中活下来,一个重要原因是我们的BD比较牛。这一块的工作流程是:在BD与商家谈妥之后,会给商家在美团建立一个帐号,签订合同,以便在之后把谈妥的这些东西变成大家在手机APP或者是网站上出售的东西,比如团购券。从BD谈妥单子,到消费者能从网页上买到商品,这中间的过程都是供应链完成的工作。
它的定位,是给美团是正在茁壮成长的业务提供支持,因此它的建设是一步步循序渐进的。
供应链系统的发展演进
美团的供应链系统的架构不是很复杂,它是随着公司创立到在现在的各个发展阶段而一步步建立起来的,架构有一个不断演进的过程。
1.手工阶段
系统初创是在2010年,当时我们是模仿美国的例子,一天一单,全靠手工。单子上传上去,七天之后才可以在网站上看见。流程上有编审的程序,不但要审核,还要专人进行编辑。这种情况延续到2011年,高层进行了一个星期的考量之后,决定一天要上多单。
2. 从在线化到自动化
从这时起,我们要求每天上单量达到250,并相应安排了250个编辑。因此,公司开始建立一个合同和CMS,就是替换成编辑的手工工作。CMS是结构化,有三大块,原来一个人的工作分成三个人来做。做完这个之后一个人可以上11单。
和滴答团、拉手、糯米竞争时,美团并不占据很大优势。公司针对性地调整了策略,大幅度增加每天上单的数量,计划要一天上几千单。就一个单子和商家谈好之后,要尽快上线。
之后,公司基本上把整个关键系统重新写了,把每一个看见的元素都属性化。具体做法,就是在同一属性的情况下做了一个模板的概念,模板可以根据不同的品类具有不同的属性。
我们结合前端一起根据我们模板配置,根据配置自动输出目录界面的一套系统,就是动态表单。输出基本上每一个属性都有一个ID,有一个值。后来又节省了大量编辑或审核人员的工作,又裁掉了大部分的页面美化工序,效率得到了大大提升,做了非常多的自动化的工作,上单时间减少到2天。
这样,到2014年9月份,我们的上单量一天接近1.4万单/日。编辑数量也从最初的240人缩减到10人,上单时间一般都是在一天之内。这之后,美团奠定了团购领头羊的地位。
向多业务支撑化发展
1. 平台+差异化
在如今,整个行业都处于不断的快速变化中。团购现在已经无法支撑一家比较大的公司了,我们很多的竞争对手都已经开始涉及新业务,比如点评投资饿了么,主打外卖。美团也要做同样的发展,所以就有了美团外卖和早餐的出现。此外还有一些新的品类垂直运营,像KTV、并作项目,现在有独立团队在运营;酒店和售票的领域也进行了拓展。现有业务都会在飞速发展中,包括一些新的形式,像到家服务,以及代替代金券的满减。
以上这些的新业务,给供应链系统提出了挑战——从单一的团购到解决多业务支撑,我们该怎么做?首先应该对它进行重新的梳理。对比有些在供应链系统上投入几十个人团队的企业,我们现在人员要少得多,2013年只有两个人,如今也只有11、12个人在做。因此现在需要改变之前这种粗犷的、不考虑系统内部设计的快速迭代发展方式。
因此,我们分析了美团内部的系统,比如我们的外卖、早餐、酒店,寻找它们上单的流程存在哪些共性和差异。差异基本上都体现在流程和展示方面,我们就对这些差异进行结构化的定义,对它们进行针对性的优化。
比如现在有闪电上单,BD上单,销售人员和商家谈妥了之后自行上单。另外我们还有商家自助上单。虽然它们的流程不一样,但是他们的底层相同的。我要做的就是这种统一平台+差异化流程的系统优化。
前面提到了动态表单,它其中的一个问题就是属性绑定。而当我们上单渠道多的时候,同一个属性在不同的上单渠道上显示的值的数量可能不同。现在的方法,就是把这些值剥离开来,变成一个AC(属性中心),和一个DF(动态表单)。我们会做各种上单录入的模板,每个渠道都不一样。而且会为每一个属性在不同的渠道定义不同的显示项,再根据显示项来产生组成我的模板,再把模板输出到具体的录入的过程当中。
同时,系统的CMS也是根据属性去生成页面。我们会在保持我们产品中心非常平台化的情况下,做一个差异化的适配。以做KTV的上单系统为例,因为商家可能比我们理解的更深入,因此就让他们定包厢、时间和酒水,而适配我们来做。在价格、结算和库存这块都有以产品为中心,输给我们的下游。通过我们系统屏蔽了各种不同商家渠道和不同业务的差异,脏活累活我们来做,给所有下游系统的工作提供了很大的便利。
2. 产品中心的结构
这个是我们的产品中心,这是它内部的结构,我们会做一些抽象,比如说消费单元,一个人最终能够到商家那里去消费的东西。比如理发店,理发就是一个消费单元,理发的时候还给你掏一下耳朵,那也是一个小费单元。
至于销售单元,这个和用户最终享受到的服务有一定的关系,但定义的方向不同。从销售的概念来说,比如你买一台iPhone,销售单元就是iPhone+耳机+贴膜之类,而这其中的消费单元就是单独的手机/耳机/贴膜。销售单元就是一个打包,是消费单元在网站上售卖的不可分开购买的一个抽象。所以我们有了销售单元之后,我们的库存是做在销售单元之上。
团购是一个类型,套餐是另一个类型。KTV可能没有物流信息,但是他有预定信息,因此,我们可以在产品层次上根据不同的业务线做抽象。而产品作为我们最终出售的东西,它有一套销售规则:比如这个商品的开卖时间或者抢购时间;它的购买渠道,比如这个套餐只能在手机端购买在PC端不行;还有购买规则,比如一个手机号只能买一个,此外还有消费规则。这样,通过整个这一套体系,基本上能够在底层支撑我们现有旅游、外卖、酒店、物流的多元化业务,团购自然不在话下。
这就是我们现在支撑多业务的平台+差异化的基础,在此基础上是一些流程。每一个系统将来要接入一个新的业务的话,它只需要通过我们的AC+DF一个界面,经过我们的流程,再接入我们平台化的东西,这个业务就会得到系统的支持。