写点什么

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

  • 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 等来保证数据的准确快速产生,而因推荐业务需要,美团还大量使用了机器学习。可见美团和大众点评均具有实力强大的技术团队,从云架构和大数据来看,美团似乎更甚一筹,两家公司合并实为强强联合,至于后续会如何发展,还将拭目以待。

感谢徐川对本文的审校。

2015-10-14 04:4916686
用户头像
Tina InfoQ高级编辑

发布了 1492 篇内容, 共 1112.3 次阅读, 收获喜欢 3823 次。

关注

评论

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

从企业数据产品的演进,看指标平台发展趋势

Kyligence

数据分析 指标平台

DSC:数仓SQL脚本迁移的神奇工具

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

业务系统故障率居高不下:有哪些非常有效的治理大招?

TakinTalks稳定性社区

功能强大的数据库管理工具:DBeaverEE 激活版

真大的脸盆

Mac 数据库管理工具 数据库管理 Mac 软件 数据库分析

报名开启!KunlunBase今年首场线下MeetUP,期待与您的见面!

KunlunBase昆仑数据库

Meetup kunlunbase 内核技术

【云原生】k8s 环境快速部署(一小时以内部署完)

Java你猿哥

Java 学习 k8s Spring Boot ssm

请求响应--MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 订阅 企业号 3 月 PK 榜

跨平台开发成为移动应用程序开发趋势

没有用户名丶

国家中心城市手机银行发展洞察

易观分析

金融 经济 手机银行 城市

中国流程挖掘迎来新“启点”,望繁信科技全面升级

ToB行业头条

你值得拥有的IoT 物联网平台开发实用技巧(一)——数据价值类

阿里云AIoT

Spring源码解析-Spring 事务

Java你猿哥

Java spring Spring Boot ssm spring 源码

量化交易(机器人)开发系统现货合约策略

薇電13242772558

量化策略

2023 MacBook Pro 与2021 Macbook Pro有哪些差别

互联网搬砖工作者

MacBook M1芯片 MacBook Pro M2芯片

实践Pytorch中的模型剪枝方法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

支付宝小程序-MQTT模拟器体验阿里云IoT开发——设备接入类

阿里云AIoT

物联网

Spring Boot 集成 Liquibase,数据库也能做版本控制!

Java你猿哥

Java spring Spring Boot java 编程

家电类投诉高居榜首,拿什么拯救“投诉了个寂寞”的消费者?

Openlab_cosmoplat

工业互联网 开源社区 家电

跟清华大佬用18个要点带你一步步学习springboot2微服务项目实战

Java你猿哥

Spring Boot 面经 校招 春招 java

2023年3月中国数据库排行榜:开源OTO揽获前三,传统达梦、GBase触机便发

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

Refit — 让Http请求变得更简单

青柚1943

微服务 REST API NET6 Refit

国产操作系统应用开发的趋势与挑战

没有用户名丶

虎牙SRE谈可观测:如何做到比用户和老板更早发现业务异常?

TakinTalks稳定性社区

利用 ModelScope 社区开源模型,实现低资源场景下的零样本文本分类

阿里技术

深度学习 自然语言模型

2023年浸没液冷智算产业发展高峰论坛:OPPO发布两项白皮书

安第斯智能云

创新 OPPO 论坛 高新技术

CTO问我如何规避MyBatis使用过程中带来的全表更新风险

Java永远的神

Java 程序员 面试 后端 mybatis

Spring源码解析-Spring AOP

Java你猿哥

Java 源码 云原生 Spring Boot ssm

经验总结!朋友的阿里面经分享(内附题目+解析)

Java你猿哥

Java 校招 春招 阿里面经 Java八股文

设备使用HTTPS协议接入IoT物联网平台——设备接入类

阿里云AIoT

图片无损放大:Topaz Gigapixel AI 激活版

真大的脸盆

Mac Mac 软件 图片无损放大 图片编辑 图片放大

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