美團和大衆點評都是國內O2O領域的主要參與者。除了團購外,美團還有自營的外賣、電影、酒店預訂等業務。大衆點評網最開始主要爲用戶提供各類生活信息服務,基於這些信息開發了團購等業務模式,近期它也開始涉足電影、酒店預訂等業務。前端
因而可知,二者在業務上存在至關的重合,那麼他們在公司成長的過程當中又分別選取了什麼樣的技術發展路線?web
下面咱們將從技術角度來看二者的異同,包括雲架構,數據架構,前端,移動端,個性化推薦。算法
大衆點評容器私有云:sql
大衆點評在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等來保證數據的準確快速產生,而因推薦業務須要,美團還大量使用了機器學習。可見美團和大衆點評均具備實力強大的技術團隊,從雲架構和大數據來看,美團彷佛更甚一籌,兩家公司合併實爲強強聯合,至於後續會如何發展,還將拭目以待。
感謝徐川對本文的審校。