【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

美团大众点评合并:背后技术力量的对比回顾

  • 2015-10-14
  • 本文字数:3046 字

    阅读完需:约 10 分钟

美团网和大众点评网在 10 月 8 日中午联合发布声明,宣布达成战略合作,两者将共同成立一家新公司。两者也在 InfoQ 及其组织的大会上进行过多次分享,我们将对美团和大众点评使用的技术进行回顾,来看看这两家电商巨头的技术实力。

美团和大众点评都是国内 O2O 领域的主要参与者。除了团购外,美团还有自营的外卖、电影、酒店预订等业务。大众点评网最开始主要为用户提供各种生活信息服务,基于这些信息开发了团购等业务模式,近期它也开始涉足电影、酒店预订等业务。

由此可见,两者在业务上存在相当的重合,那么他们在公司成长的过程中又分别选取了什么样的技术发展路线?

技术对比

下面我们将从技术角度来看两者的异同,包括云架构,数据架构,前端,移动端,个性化推荐。

云架构

大众点评容器私有云

大众点评在 2014 年 7 月基于 Docker 搭建了私有云平台。2015 年 8 月份大众点评云平台首席架构师盛延敏在 InfoQ 主办的 CNUTCon 容器技术峰会上分享了它们容器私有云的实战内容。

Docker 的应用场景之一就是构建企业私有云平台,它具有简单轻量的特点,可以降低私有云的构建难度,也能更高效的利用物理资源。大众点评的私有云平台承担了大部分线上业务。实例数 2800 个左右,Docker 物理集群 300 多台。

大众点评原来的应用部署在 KVM 上,需要耗费很大运维时间和精力,特别对于扩容和缩容。搭建 Docker 私有云之后实现了应用标准化和运维自动化,从而节省了运维成本。

大众点评的 Docker 云底层使用 Docker,通过 Dockerfile,Docker Registry 统一管理应用的标准化运行环境。组件之间使用 NATS, 降低耦合。接入层使用 Nginx 和 Zookeeper。对于 WEB 应用,通过与 Nginx 的 Restful 接口交互;对于服务类应用,通过 Zookeeper 上注册和注销服务 IP 和端口,便于客户端发现和更新该服务。

美团云

美团网于 2013 年上半年发布了其公有云服务美团云。它们也在 InfoQ 上分享了公有云的研发经验

美团云最初版本起步于 2012 年 7 月,一开始构建的是私有云计算平台。2013 年 5 月,美团云对外提供公有云服务。美团云架构设计使用 OpenStack 的框架,网络架构参考 CloudStack,主要组件由自己开发,部分组件在 OpenStack 原生组件上进行了二次开发。

核心云主机管理为自研,采用 Region-Zone-Cluster 三层架构,支持跨地域,多数据中心的大规模集群部署。采用基于 KVM 的主机虚拟化和基于 OpenVSwitch+OpenFlow 的网络虚拟化技术,降低了系统的开发和维护成本。镜像管理使用 Glance;身份管理使用 Keystone;对象存储使用 Swift。

美团云在 2013 年 5 月刚上线时单月交易额 10 亿左右,2015 年 7 月单月突破 111 亿,对美团云系统和网络稳定性要求比较高,目前美团云支撑了超过两亿用户的高并发访问。并采用多个数据中心,数据中心之间使用光纤高速互联,确保美团云的可靠性。

数据架构

大众点评

大众点评在起步阶段,为了抢占市场,快速推出产品,采用方案比较简单。访问量大起来后,针对系统做了改进。大众点评的 DBA 经理苗发平曾在 InfoQ 分享大众点评的数据架构之道。新版本中引入了 Ehcache 作为一级缓存,Memcached 作为二级缓存,缓解数据库读压力,分布式文件系统 MogileFS 作为分布式图片存储服务解决海量图片存储,搜索引擎 Lucene,Nosql 数据库 MongoDB 作为 K-V 数据服务。后期引入 MySQL 数据库,并采用 Hadoop 集群管理。最新版本中为解决服务治理问题,引入“泳道架构与容错隔离”方案,来提供系统的高可用性。架构中使用 MySQL 高可用方案。通过 MMM 实现 HA 高可用,实现秒级故障转移。

美团

关于美团网的架构,美团网的技术委员会主席夏华夏在 InfoQ 主办的全球架构师峰会上分享了一些美团架构实践经验。美团初期使用 MySql+Apache/PHP, 随着业务增加,在开源软件的基础上做集成和优化,使用了 Memcache 和 Varnish,随后增加了 Redis。

初期架构图:

现在的美团整体架构图:

前端开发

大众点评是国内领先的城市生活消费指南网站,浏览量为 500M(GA)/ 每月,高峰 3000 次动态请求 / 每秒,180 万动态访问量 / 天。前端早期使用 ASP.NET+SQL server,独立的 web 和 Database 服务器。后来引进了 Cortex,基于 CommonJS 的 Web 开发环境

美团网采用 JS 框架,基于 YUI3 来构建,使用了 YUI 内部的 Loader、模块、组件框架等基本思路和工具,围绕 YUI 开发了自己的公共底层库、Combo 以及发布工具等。2014 年底,基于 React 开发页面组件,使用 NPM 进行分享,用 NPM+Reduce 构成新的资源管理方案。其后在 Node 框架的基础上,提供了一系列中间件和开发工具,逐步构建对组件友好的前端工程化方案 Turbo。

移动客户端

大众点评:

大众点评月综合浏览量(网站及移动设备)超过 150 亿,其中移动客户端的浏览量超过 85%,移动客户端累计独立用户数超过 2 亿。移动端是大众的业务重点。我们可以通过大众点评移动应用架构师屠毅敏在全球架构师峰会上关于大众点评移动应用的架构演进的演讲来一窥大众点评的移动开发技术。大众点评的移动架构主要关注三个方面:速度,灵活性,耦合。在速度方面优化 Http 协议减短响应时间,并进行了缓存优化。引入 NDK 以及 Hybrid App 进行开发。利用 Android DexClassLoader 进行动态加载。

美团:

美团手机移动端业务种类多差异大,为解决早期架构上的耦合场景问题,引入了 Portal 开源框架。并引入 Subtree 代码管理和 CocoaPods 第三方库依赖管理工具。并利用 Jenkins 进行持续集成。美团技术专家陈晓亮曾在 InfoQ 主办的 QCon 全球软件开发大会上针对美团移动平台背后的技术进行了演讲。

美团手机移动端架构图:

个性化推荐

大众点评:

大众点评网因应对大数据查询分析功能,从 2011 年开始使用 Hadoop,有 60 多个节点,700TB 容量,还有 2 个 HBase 线上集群。使用 Puppet 管理集群,之后由于业务需要,又自行开发了 Taurus 调度系统。并于 2012 年数据库仓库转向 Hadoop/Hive。在 2013 年建立主要的大数据架构后,大众点评上线了 HBase 应用,并引入 Spark/Shark 以提高 Ad Hoc Query 执行时间。整个大数据架构采用开源 + 自研的形式。

美团:

为解决信息过载,帮助用户快速找到所需,美团推出大数据推荐系统。美团推荐系统框架分为:数据层,触发层,融合过滤层和排序层。数据层用 Hadoop/Hive,HBase,MySql 和 Redis 作为数据存储,使用了 ETL 系统,Map/Reduce,Spark,Storm,Flume 作为数据产生。触发层利用各种触发策略如用户行为产生推荐的候选集,使用传统的 user based,item based 协同过滤算法进行融合筛选。排序层主要是利用机器学习的模型对触发层筛选出来的候选集进行重排序。

随着美团交易规模的逐步增大,积累下来的业务数据和交易数据越来越多。目前在美团的团购系统中大量地应用到了机器学习和数据挖掘技术。并且研究了基于机器学习方法的 POI 品类推荐算法。美团网的技术总监王栋曾以美团的智能化推荐为主题接受过 InfoQ 的采访。

总结

上面对云架构,前端,移动端,数据库,大数据的概况来看,在云架构上大众点评使用的是 Docker,而美团是采用 OpenStack+ 自研。前端和移动端因功能不同而不一致。数据库两者在前期都采用简单架构以满足初创公司快速发展,后因业务需要而不断采用新的开源技术。在大数据方面,均采用了 Hadoop,HBase,Spark,Storm 等来保证数据的准确快速产生,而因推荐业务需要,美团还大量使用了机器学习。可见美团和大众点评均具有实力强大的技术团队,从云架构和大数据来看,美团似乎更甚一筹,两家公司合并实为强强联合,至于后续会如何发展,还将拭目以待。

感谢徐川对本文的审校。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2015-10-14 04:4916438
用户头像
Tina InfoQ高级编辑

发布了 1246 篇内容, 共 828.3 次阅读, 收获喜欢 3518 次。

关注

评论

发布
暂无评论
发现更多内容

不忘初心,继续努力

一周思进

ARTS 打卡计划

k6新崛起的性能测试工具

风中之心

DevOps 性能 性能测试

2020年南京第十三届物联网应用展览会

南京专业智博会

展览会 论坛会 博览会 智博会

2020南京第十三届智慧工地装备展览会

南京专业智博会

展览会 论坛会 博览会 智博会

如何优雅地实现泛型类的类型参数化

KAMI

Java 编程 反射 泛型

思维模型 - 概念篇

石云升

学习 高效 思维模型 决策

面试造飞机系列:说下微服务接口设计原则?

程序员柠檬

分布式 微服务 后端 架构设计

Java 底层基础笔记(一)硬件

奈何花开

Java Linux 计算机基础

2020年亚洲南京大数据产业展览会

南京专业智博会

展览会 论坛会 博览会 智博会

Wireshark的使用与数据分析(一)

姬翔

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十二)编写测试-简单测试

编程道与术

Java 编程 TDD 单元测试 JUnit

Linux下程序出问题不要慌,资深程序员教你6招搞定!

程序员柠檬

Linux 程序员 后台开发

用大数据分析了一线城市1000多份岗位招聘需求,告诉你如何科学找工作

程序员柠檬

Python 数据分析

你真的清楚 Nginx 指令的规则吗?

子杨

nginx 运维

游戏夜读 | 记忆里的老游戏

game1night

Markdown 几行字符就可以生成思维导图了!

JackTian

markdown 思维导图 markdown语法 markdown编辑器 Markmap

PageHelper

BitSea

分布式锁🔒是个啥❓ 其实就这么点事

山中兰花草

Java redis 后端 分布式锁 开发

使用 PCA 进行降维可视化,了解特征分布

黄大路

数据挖掘 数据分析 可视化

原创 面试官:你说对MySQL事务很熟?那我问你10个问题

程序员柠檬

MySQL 数据库

2020年南京第十三届智慧停车展会

南京专业智博会

展览会 博览会 智博会 展览会论坛会

Jupyter最佳实践

pydata

如何衡量产品需求效果

黄大路

产品经理 产品设计 运营

ARTS-week-1

saddamwilson

ARTS 打卡计划

推荐几款有意思的小众App(05.30)

静陌

产品 App

2020亚洲智能家居全屋智能展会-南京站

南京专业智博会

展览会 论坛会 博览会 智博会

2020亚洲南京第十三届人工智能机器人服务展览会

南京专业智博会

展览会 论坛会 博览会 智博会

这可能是 Markdown 写微信公众号的一款神器了!

JackTian

效率工具 markdown markdown编辑器 markdownnice 神器

ARTS打卡-01

Geek_yansheng25

ARTS 打卡计划

github看代码效率提高10倍!因为用了sourcegraph这个工具

程序员柠檬

GitHub 程序员 效率工具

10分钟白嫖我的常用的在线工具网站清单

JavaGuide

设计 在线工具 工具类网站 PDF

美团大众点评合并:背后技术力量的对比回顾_移动_Tina_InfoQ精选文章