目录

一、前言

二、技术架构总结

思考点总结

扩展点总结:美团技术架构演变

初始阶段(2003年-2011年)

O2O阶段(2012年-2015年)

大数据阶段(2016年-2018年)

平台化阶段(2018年-至今)

三、业务架构总结

简单的业务架构优化方法论

第一步、让复杂的事情简单化。

第二步、让简单的事情标准化。

第三步、让标准化的事件流程化

第四步、让流程化的事情自动化

业务上单流程应用

未优化前现状分析

优化后现状分析

扩展点总结:美团业务架构演变

第一阶段:单一业务阶段(2003年-2011年)

第二阶段:O2O业务阶段(2012年-2016年)

第三阶段:平台化业务阶段(2017年-至今)

四、O2O技术应用

应用案例一:外卖单子与外卖打印机结合

 原始阶段

商家APP阶段

商家APP+联机打印阶段

云打印机阶段

应用案例二:用技术优化用户端

背景

分析

解决:用户画像

扩展总结:美团用户画像主要通过数据分析和挖掘实现的大致过程

五、总结

参考链接文献


一、前言

美团的商业模式是一种O2O(Online to Offline)的模式,通过网络平台和移动应用程序,为消费者提供餐饮、外卖、酒店预订、旅游、票务、本地服务等服务,并为商家提供在线销售和营销工具,通过收取佣金和广告费等方式盈利。美团的商业模式可以分为以下几个方面:

  • 平台聚合服务:美团通过建立一个平台,将不同品牌的商家和服务提供商聚合在一起,为消费者提供一站式的服务体验。
  • 数据化运营:美团通过数据分析,为商家提供精准的营销策略,同时也通过不断优化平台算法,提升用户体验和服务效率。
  • 消费者端:美团的用户可以通过网站和移动应用程序点餐、订酒店、购买门票等服务,通过支付宝和微信等第三方支付平台完成交易。
  • 商家端:美团的商家可以通过网站和移动应用程序发布产品和服务,提供在线销售和营销工具,并与消费者进行交互和沟通。

其主要业务通过线上平台,用户可以方便地查找、订购、支付本地的各种服务和商品,而线下商家则可以通过美团平台来扩大知名度和销售额。美团主要通过以下几种赚钱方式

  • 提供基于佣金的服务:美团向商家收取一定比例的佣金,以提供在其平台上进行交易的机会。例如,美团外卖向商家收取每笔订单10%-30%的佣金。
  • 广告服务:美团向商家提供各种广告服务,例如搜索广告、品牌广告、团购广告等。
  • 金融服务:美团推出了自己的支付工具“美团支付”,并提供消费分期、信用贷款等金融服务。
  • 会员服务:美团提供了会员服务,用户可以购买会员并享受相应的折扣和优惠。

关于美团商业模式的内容见参考链接文献1-6获取更多的了解,本博客案例根据 ArchSummit 北京 2015 大会上美团网现任技术委员会主席夏华夏的演讲《从技术细节看美团架构》整理。


二、技术架构总结

以华夏的演讲为背景,可以看到美团初期的架构演变简单如下图:

美团系统架构 美团外卖架构_架构

技术架构初期时候非常简单,是一个比较典型的LAMP 架构,前端加上Apache/PHP,后端是MySQL,一开始这种简单架构很好用,但当业务量大了之后,我们发现整个系统的性能跟不上了。然后就做了一些简单的优化,比如在Nginx 和Apache 之间加一些Varnish 缓存,在后端可能用Memcached 减少MySQL 的压力,这些都是缓存,整个架构还是没有太大的变化,还是一个优化了的LAMP 架构。

然后到2011 年的时候,美团开始做移动端,这时候架构还是没有太大的变化,只不过是在Apache 这种已有服务的API 前面又包了一层。就是在提供给PC 端的同时,我们也包了一层移动的API,这样我们可以继续给手机端的用户提供服务。这个时候其实也就是简单地把LAMP 架构做了一点点扩展,但是已经可以支撑很多用户和容量了。

美团一开始起步是个团购公司,后来开始扩展新业务,比如酒店业务、电影业务等,直到现在的美团外卖的业务。在上面架构基础上当我们去做很多不同业务的时候,我们发现做每一个业务似乎需要添加一些新的部分,这样一个部分一个部分堆积,对很多技术的同学来说,这是不能容忍的,那我们怎么去改进它呢?我们希望把中间的很多的公共的东西,与业务无关的东西抽取出来,形成一些公共的技术的组件,这样可以为很多的不同的业务来使用,发展到现在,形成这样一个看起来稍微复杂的架构。简单如下图:

美团系统架构 美团外卖架构_架构_02

  • 在最底层会有云平台,对内对外都有服务,会有云主机、云存储、虚拟网络,包括一些负载均衡的东西。
  • 在云平台上面,我们会有一些基础的组件,这些基础组件跟业务的逻辑相隔比较远,比如配置,队列中心,注册中心,包括一些SQL 和NoSQL 的存储等等,这些技术组件在所有的业务里都会使用,所以我们把它提取出来,作为技术组件提供给业务能用。
  • 再往上有一些东西是与业务结合比较多,比如说用户中心、支付、搜索、推荐、风险控制,以及建立用户的一些地理位置的库,这些东西是与业务是有交互的。但是我们去分析之后发现在不同的业务里面,这些组件还是差不多的,所以我们也是把它抽象出来作为业务组件,这些业务组件在所有的业务之间共用。
  • 再往上才是我们各个不同业务的真正的比较独特的一些逻辑。在这些业务逻辑前面,是前端的接入,这个前端接入其实对不同的业务也是一样的,它会有前端的接入和转发,会有前端内容的过滤,就是一些防抓取,防攻击这样的内容过滤。比如说为了做用户访问性能的优化,我们会做大量的各种各样内容的缓存,包括CDN 也好,包括我们内部不同层次之间,包括一些验证码的服务。

所以在这种架构下面,当我们再要去做一个新的业务的时候,我们就关注在中间业务逻辑这一块就可以了,可以很快地去拓展新的业务逻辑,而且每一个人每一个团队,只关注真正最有价值的那一部分的软件开发,当然两边会有涉及运维和安全的工作。

思考点总结

当前的架构相对最适合美团现阶段的技术架构,那从一开始的最简单的LAMP,到现在可能我们分了很多很多个组件、很多很多层,这些架构看起来是非常不一样的。但是我们现在回想起来并不觉得说,原来的就不好,现在的就好。公司在发展的不同的阶段,一开始就最适合那种最简单的情况,如果说一开始美团2010年成立的时候就上这种很复杂的架构的话,那可能2010年底才把软件开发完,那时候上线已经有五千多家团购网站在线上了,所以这是不切实际的。所以整体来说,整个技术架构演变过程中,要时刻满足业务发展需求

整个的架构里面,大量应用了一些开源的东西,从最初的LAMP架构的时候,包括MySQL、Apache,到现在一些很复杂的架构里面,比如搜索现在会用到Lucene,会用到Solr,在云主机、云平台这一块,会用到OpenStack的一些个组件,包括比如存储的Swift等等,开源产品拿过来当然会加速我们的这种开发的周期,但是开源产品我们也不仅仅是单单把它拿过来,因为任何一个开源的产品,如果要拿到一个比较复杂的业务里,你就会发现它不是那么匹配的,比如要与系统的集成,或者很多开源产品在大规模、高并发的情况下,考虑地并不是那么周到。

所以需要在开源的基础上做大量优化,一方面能让整个系统能更好地水平扩展,进行系统扩展和优化,同时也不断满足用户体验

扩展点总结:美团技术架构演变

跳离演讲内容的讲解,从整体其他文献来看美团的技术架构演变是一个长期的历程,以下是大致的阶段和发展趋势(具体参考见参考链接6-7):

初始阶段(2003年-2011年)

早期的美团只是一个比较简单的团购网站,技术架构也比较简单,主要关注如何快速地上线和迭代产品,采用了LAMP技术栈(Linux、Apache、MySQL和PHP)。

O2O阶段(2012年-2015年)

2012年,美团开始推出O2O服务,进入到新的领域,这也要求公司的技术架构能够支持更高的并发量和更复杂的业务流程。美团在这一阶段采用了一系列技术手段,如分布式存储、分布式缓存、消息队列等,来支持系统的高并发和高可用性。

大数据阶段(2016年-2018年)

2016年,美团开始大力发展数据智能和人工智能技术,以应对数据量的快速增长和业务的复杂性。为了支持大数据分析和处理,美团采用了分布式存储和计算框架,如Hadoop、Spark和Flink等,并推出了自研的大数据平台MPD(Meituan Big Data Platform)。

平台化阶段(2018年-至今)

2018年,美团在上市后进入了平台化阶段,开始大力发展开放平台和生态系统,与第三方开发者和合作伙伴共建一个完整的生态系统。为了支持这一战略目标,美团提出了“三位一体”的技术架构思想,即“平台化技术架构、数据智能架构、基础架构和运营架构”。这一架构旨在构建一个高效、灵活、可扩展和安全的技术平台,支持不同业务线的快速迭代和创新。

三、业务架构总结

业务架构对于电商来说是很复杂的生产系统,复杂业务架构的后果就是会让整个流程非常复杂,当流程复杂了,自然而然整体效率便会低下,所以要求技术团队需要不断地去优化业务架构,不断地让流程简单,让效率更高。

美团系统架构 美团外卖架构_数据_03

 上述业务流程复杂举例包括但不限于以下场景:生产商谈单模块(谈单流程、在线上单、在线审核)、拉动新用户以及新商家的业务营销模块等、商品上单模块、订单营销会员等模块

简单的业务架构优化方法论

 这里,我们可以提供一套简单的业务架构优化方法论,简单如下:

美团系统架构 美团外卖架构_技术架构_04

第一步、让复杂的事情简单化。

一个很复杂的业务架构,我们希望对它做很多理解和梳理,梳理的过程中,我们就会发现一部分步骤其实是不需要的,可以省略的,这是一种简化;

还有一个就是,当我们梳理完了,发现每一个步骤都需要的时候,我们会尽量地把一个复杂的东西拆成很多比较小块的,易于把控的一些东西,这就是一个把复杂东西简单化的一个过程。

第二步、让简单的事情标准化。

当把一个复杂的东西拆成了简单的小的东西之后,我们就容易地去对这个简单的模块简单的功能进行标准化。

所谓的标准化,就是去制订一个标准:这个东西该怎么做,应该实现什么目的,做了之后我们怎么去衡量。(就是我要去做什么,我怎么做,然后怎么去衡量。)

如果把每一个简单的东西都处理好了之后,这个简单的东西就成了一个标准的东西,标准的东西在很多时候就比较容易去推广,这就是标准化的过程。

第三步、让标准化的事件流程化

如果整个的标准比较完善了,那我们就希望把这个标准固化下来,固化下来就是说整个的工作就会变成一个很简单的流程。

招几个新的员工,然后给他们一个手册,告诉他们,照着这个手册一步一步,第一步做什么,第二步做什么,第三步做什么,这就是流程化的东西。

第四步、让流程化的事情自动化

让标准的时间流程化后,其实复杂的东西已经可以比较高效地往下运作了。

对于计算机来说,最擅长的东西就是处理这种简单的流程,所以我们如果做到流程化,就有了一个自动化的基础,我们可以用计算机来把这些固化的流程完成,这样最终就把复杂的事情能够尽量地做到自动化。

业务上单流程应用

所谓单子就是比如一个餐馆售卖的东西,就是本地服务的一个产品,我们叫一个单子。

所谓上单就是销售同学和商家谈生意,最终要上到我们的整个网站里边。

未优化前现状分析

美团系统架构 美团外卖架构_数据_05

  •  签订合同阶段:销售团队与跟商家进行沟通寻求合作,确认签订合同
  • 审核合同阶段:审核团队审核,审核具体包括合同定价合理性以及法律条款问题等,审核不通过则需打回重新签定
  • 编辑单子阶段:编辑团队对合同形成文本,联合摄影师团队,拍摄商家门头和菜品照片并进行剪切、打上防伪美团水印等,并将这些原材料整合成单子上传供商家在系统中查看可展示给用户查看的信息内容等
  • 单子确认阶段:编辑单子呈现效果供商家查看确定后即可以线上发布

整个流程,从签订合同开始,到最后用户能够看到这个单子,这之间的时间是 7 到 10 天,熬时过长并引流过慢,需要优化。

优化后现状分析

美团系统架构 美团外卖架构_美团系统架构_06

  •  业务流程在线化:目标将业务流程所有的东西尽量在线化,比如将合同直接线上填写、摄影照片等直接在线上传等
  • O2O数据结构化:所有数据尽量结构化。例如餐馆条款结构化,把每一项条款都变成数据的结构化单元,比如说你的这个单子在什么时间可用,星期几,几点几分到几点几分可以用等,当结构化之后,销售上单就是一个表单,一个表格这么填写就是很多结构化的数据,按具体格式直接改版修正即可。同时结构化数据可以自动地匹配不同的显示环境,比如PC 端和移动端同时显示同样的单子已环境进行整合展示数据即可。
  • 量化可量化的一切:进价、卖价、时间等基本信息直接量化,可以由计算机直接按制定规则将量化信息进行审核,避免大量人工审核成本。

按以上流程优化后,销售团队填写合同直接填写指定表格数据,数据完成后系统会自动地审查生成一个单子,然后立刻可以给商家做确认,商家确认之后,就可以上线给用户了。这样以来就可以把中间的很多环节和步骤全部去除,同时节省很多编辑的同学和审核的同学,降低成本的同时可以促使整个的流程更加顺畅、高效、便捷。

扩展点总结:美团业务架构演变

跳离演讲内容的讲解,从整体其他文献来看美团的业务架构演变,美团的业务架构经历了从单一业务到O2O业务再到平台化业务的演变(具体参考见参考链接9-12):

第一阶段:单一业务阶段(2003年-2011年)

早期的美团成立于2003年,最初是一家以团购为主要业务的网站。在餐饮团购业务上的成功,也让美团成为了中国领先的餐饮团购网站。

第二阶段:O2O业务阶段(2012年-2016年)

2012年,美团推出外卖业务,进入O2O领域,随后逐步拓展至其他领域,如旅游、酒店、电影等。在这一阶段,美团逐渐形成了以外卖为核心的多元化O2O业务模式,并通过整合供应链、建设配送体系等方式,打造了一整套O2O业务闭环。

第三阶段:平台化业务阶段(2017年-至今)

2017年,美团上市,开始了平台化业务的阶段。这一阶段,美团将更多的精力放在了技术和平台的建设上,通过大数据、AI等技术手段来提高服务效率和用户体验。此外,美团还逐步推出了多元化的平台服务,如社交电商、云服务等,形成了一个以本地生活服务为核心的综合性服务平台。

四、O2O技术应用

O2O: Online+Offline,就是线下加线上。

明确技术不分线上、线下,需要贯穿线上线下。举两个例子看我们怎么去用技术来优化线下的一些东西,线上的就不举了,因为技术都是在优化线上的东西。

用如下两个案列分析应用,一个是在商家端,一个是在用户端,其实不管怎么样,我们在线下技术可以做很多很多的优化,让线下效率做很多的提升,正是所有这些一个一个的优化加起来就可以把美团整个的生产效率提升上去,把成本降下来,增强美团的竞争力。

应用案例一:外卖单子与外卖打印机结合

主要经历阶段如下:

美团系统架构 美团外卖架构_后端_07

 原始阶段

2013 年的 11 月 13 号美团外卖上线,最初的时候很原始,用户在手机 APP 上下单后,美团外卖相关人员(包括一些客服的同学和很多技术的同学)打电话通知商家产生一个订单,并说明订单信息(某某定了一个什么单子,然后他的地址是什么,电话是什么),商家用纸笔记下来,通知厨师做饭,饭做完后把小纸条给配送的同学,配送的同学给用户送外卖。但是一天从一单十几单到几百单,大家很快发现承受不了,单子增长很快,人力跟不上,商家也很痛苦,因为打电话的时候,很多的信息是说不准确的,他要记电话号码,如果记不清的话,他还要再打过来问刚才那个单子电话是什么,包括地址,有些地址字还比较难写。

商家APP阶段

解放自己,给商家开发一个 APP,每个商家使用APP获取接单信息。一旦有用户下单, APP 实时通知上架,这时候要求老板根据 APP 上的信息,拿张纸,找个笔,把它写下来,然后给厨师。但是商家的工作,他虽然抄得准确一点,不用从电话里抄,直接从 APP 上抄,但是还是要做大量的工作,包括这个小纸条传来传去,有的人写得笔迹不是那么清楚。

商家APP+联机打印阶段

商家APP更版与打印机直接交互,一旦用户下单,打印机直接打印订单给到商家。商家不用花时间去写了,这时候就可以给厨师去做菜,厨师做完了交给配送员去送菜,这个就比较方便了。后来我们还是发现这个也不是很好,一般这个 APP 总是在老板那里的,如果说好几个人拿着 APP 会出现问题,好几个人拿的话,比如老板和老板娘都拿着,他们可能都去打,一个定单可能打了两份;或者说,有时候说老板拿着这个 APP,但是老板刚好不在,那他就打不了。有的店,他就不得不买一台电脑放在那,但是电脑对于很多小的外卖店,还是一笔额外的开销。因为现在手机上网的多,但是电脑上网的人已经很少了,还是对商家有很多不方便的地方。

云打印机阶段

所谓云打印机就是自己可以联网,联网方式多样,比如手机网络来联网或WiFi 联网,联网后,手机下单,美团后台服务器会把这个单子的信息直接推送到这个云打印机上,这个云打印机就像一个 POS 机那样,是一个很小的设备,会自动地打印出单子的信息,这样就大大得解放了我们美团的同学和商家的同学。

这是一个我们用技术来优化商家端这边的流程的一个例子。

应用案例二:用技术优化用户端

背景

在用户端的很多线下工作中其中常见的就是用户运营。其中美团“拉新”运营团队的主要任务是对一些已经注册了美团的帐号,在平台上过来逛了一圈,最后没买东西就走了,可能来逛了好几次,他还是没买。针对这种情况,美团方给用户 10 块钱、20 块钱等免费红包优惠活动,吸引用户完成首次的购买,活跃用户使用频次。但给用户很多免费来说,对于美团是薄利多销,利很薄,我们希望少花钱多办事,这个钱能少给就少给,能不给就不给,所以运营的团队希望技术同学优化。

分析

我们先去分析这些用户到底是什么样的用户,发现用户有很多类:

  • 一些用户虽然来逛了一圈,或者逛了几圈,他还没买,但是假以时日,可能再过几天,最后他还是会自动的转化,所以有一些用户的这种自动转化的可能性是比较高的。
  • 一些用户可能来了几次,可能每次就是来逛逛,每次逛逛,就像逛街一样,虽然他不买,但是逛着也很爽,看着菜单他可能口水直流,也觉得挺爽。所以有些用户,就是你不给他刺激,他就完不成自动的转化。
  • 一些用户质量低,所谓质量低就是对美团的质量,给他券的时候他就过来买个东西,比如给他 10 块钱,他可以过来买个 11 块钱的东西,然后转身就跑了,不给他券,他就半年不过来,美团又忍不住,又给他 10 块钱,他又过来看了看买了个 9 块钱的东西就走了。对美团来说当然希望尽量减少这种薅羊毛式的用户。
  • 一些用户属于用户质量比较高的,如果一旦帮助他转化,越过了首次消费这个坎的话,他可能就成为一个很高频的,习惯于在美团消费的用户。对于美团来说,希望真正运营的对象真正拉拢的对象就是在这些,如果不给他刺激,他自己可能转化不了,然后同时如果他转化了,他对美团的销售额的贡献会比较大。简单可按象限进行分类如下:

美团系统架构 美团外卖架构_技术架构_08

解决:用户画像

对于第一象限除外的这部分用户其实不需要发券,发券对美团来说浪费钱了,那我们怎么去找到这部分用户?答案是做用户画像。

美团系统架构 美团外卖架构_技术架构_09

在美团其实有大量的用户的数据,可以看到用户什么时候注册的美团、从什么浏览器、从什么操作系统、去看了哪些单子、浏览了什么单子、做了什么搜索、用的是什么手机等,可以从这些数据给出用户画像:我们去判断用户的各种属性创建用户画像数据库,用户画像数据库创建后,对于运营同学的需求,我们会对用用户画像数据先做特征选择和提取,用一些分类模型分析,这样判断用户是不是真的我们需要的象限,准确度 75%,召回率能达到 68%。有了这个技术支撑,最后我们运营的单位成本,比如拉新运营的单位成本就可以降低 35%,总共的拉新运营开支就节省了 30%。所以这个就是我们在技术在线下的用户运营优化。

备注属性分析举例:

  • 分析注册时的基本属性比如性别、年龄、邮箱等,比如说年龄这个属性可以做很多特征离散化,就是把一个属性离散成几百个甚至几万个放到机器学习模型中去训练一些模型
  • 分析用户地理位置可以知道是一个学校用户-学生or一个工业园区的白领or金融街的金融界人士
  • 分析用户邮箱看用户是 qq.com 用户或gmail.com 用户,他是两类不一样的用户,他所关注的东西,感兴趣的东西都不一样。
  • 分析用户的收入水平和消费水平,收入水平可能根据他的职业、年龄、工作年限去判断高收入还是低收入,消费水平直接从查看单子和下单金额分析判断这个用户是倾向于最优惠的价格还是高质量商品。
  • 分析用户浏览历史和搜索历史(包括统计搜索或浏览次数)可以知道其品类偏好,到底是喜欢美食,还是喜欢去看电影,还是喜欢去唱卡拉 OK

扩展总结:美团用户画像主要通过数据分析和挖掘实现的大致过程

其与阿里巴巴实现方式基本相类似,主要总结如下(具体参考见参考链接13-16):

  • 数据收集:美团通过各种手段收集用户的数据,包括用户的行为数据、交易数据、评论数据等。
  • 数据清洗:通过数据清洗和预处理,将数据转化为可用的格式,去除重复、错误等数据。
  • 数据挖掘:利用数据挖掘技术,从海量数据中挖掘出潜在的用户特征和行为规律,包括用户的地理位置、消费偏好、消费习惯、使用习惯等。
  • 用户分群:将用户按照某种特征或行为进行分群,例如年龄、性别、地理位置、消费能力等,以便于后续的分析和应用。
  • 画像建模:基于用户的分群和特征,利用机器学习和统计分析等技术,建立用户画像模型,描绘出用户的特征和行为习惯。
  • 应用场景:美团将用户画像应用于各个场景,例如营销推广、产品设计、服务优化等,以提高用户体验和用户满意度。

需要注意的是,用户画像是一个动态的过程,需要不断地更新和迭代,以适应用户的变化和市场的变化。

五、总结

第一,技术架构是要随着业务的发展而不断地变化,不一定一个复杂完善的架构就是好的,而是看公司当前处在什么阶段,如果是一个初创的公司,那大家还是要小步快跑用一个简单有效的方案就行了。

第二,随着业务发展,可以在一些开源软件的技术上不断的优化,业务流程也不断的做一些优化,就是把复杂的东西简单化,简单的东西标准化,标准的东西流程化,流程的东西再自动化。

第三,技术不仅仅对线上有用,在线下的每一个操作里,要不停地看我们能做一些什么样的优化并为之努力。

第四,简单的事情要把它做到极致,就是真正做到极致就会有足够多的技术挑战、足够高的门槛。对于很多 O2O 创业的团队来说,他们做得事情看起来非常简单,但是只要不断地优化,不断地极致,不断地朝着极致去发展,就可以在竞争中胜出。