奇碩基于網(wǎng)易云的微服務(wù)與大數(shù)據(jù)實戰(zhàn)

5月24日,在網(wǎng)易和中睿協(xié)辦的“云服務(wù)、大數(shù)據(jù)應(yīng)用實例&高效研發(fā)管理---軟件研發(fā)沙龍”中,作為網(wǎng)易云的典型客戶,上海奇碩網(wǎng)絡(luò)科技有限公司CTO殷世林分享了奇碩在大數(shù)據(jù)平臺建設(shè)方面的核心技術(shù),以及基于網(wǎng)易云實現(xiàn)微服務(wù)化改造和數(shù)據(jù)平臺升級的經(jīng)驗。

奇碩的產(chǎn)品與服務(wù)

上海奇碩網(wǎng)絡(luò)科技有限公司成立于2014年4月,是一家專注于鞋服零售并為泛零售行業(yè)提供大數(shù)據(jù)服務(wù)與一體化解決方案的大數(shù)據(jù)科技公司。奇碩的業(yè)務(wù)方向包括三塊:

  1. 流量、業(yè)務(wù)診斷服務(wù),對應(yīng)的產(chǎn)品是零售魔方,通過自研的智能硬件抓取客流數(shù)據(jù),結(jié)合大數(shù)據(jù)平臺,對流量數(shù)據(jù)進行分析,再加上客戶的零售數(shù)據(jù),對客戶進行可視化的數(shù)據(jù)服務(wù),最終給客戶提供業(yè)績診斷報告。這些指標看似簡單,但是全方位反應(yīng)了零售行業(yè)日常的經(jīng)營情況:
幻燈片6.JPG
  1. 數(shù)據(jù)營銷服務(wù),對應(yīng)的產(chǎn)品是數(shù)據(jù)營銷平臺,通過抓取的流量數(shù)據(jù),對客戶設(shè)定標簽,分析消費行為,使客戶能夠據(jù)此優(yōu)化產(chǎn)品結(jié)構(gòu),做到精準營銷;
  2. 企業(yè)數(shù)據(jù)總線服務(wù),對應(yīng)的產(chǎn)品是企業(yè)數(shù)據(jù)中心,為沒有能力建設(shè)大數(shù)據(jù)平臺的企業(yè)提供數(shù)據(jù)平臺服務(wù),幫助企業(yè)分析數(shù)據(jù),挖掘價值。

技術(shù)與平臺

奇碩的核心技術(shù)如下所示:

幻燈片11.JPG

首先,奇碩擁有自研的智能硬件,通過這個智能硬件抓取流量數(shù)據(jù),并通過數(shù)據(jù)分析的算法進行建模,奇碩還有一個資深零售行業(yè)的數(shù)據(jù)團隊,他們的行業(yè)經(jīng)驗?zāi)軌驇椭靖訙蚀_的刻畫行業(yè)級用戶畫像。

幻燈片12.JPG

上圖是奇碩大數(shù)據(jù)平臺的總體架構(gòu):

  • 數(shù)據(jù)源是采集數(shù)據(jù)的智能硬件設(shè)備以及企業(yè)的運營數(shù)據(jù);
  • 通過數(shù)據(jù)的采集和抽取,在平臺上進行整合,這就是數(shù)據(jù)采集層;
  • 采集和整合的數(shù)據(jù),會放入數(shù)據(jù)存儲層進行存儲,可保存在HDFS,Hbase以及對象存儲中;
  • 在數(shù)據(jù)計算層,離線分析采取Hadoop的Map-Reduce進行處理,實時處理當前使用Storm,后期會改用Spark Streaming進行處理,數(shù)據(jù)挖掘使用的是Spark的Machine Learning庫中的算法;
  • 處理完畢后的結(jié)果,一部分存儲在Mysql,一部分存儲在HBase中;
  • 在產(chǎn)品層,通過對大數(shù)據(jù)平臺中數(shù)據(jù)的讀取和整合,在產(chǎn)品層進行展現(xiàn)。
幻燈片13.JPG

這里是基于數(shù)據(jù)平臺的數(shù)據(jù)處理中心的架構(gòu),通過數(shù)據(jù)采集和數(shù)據(jù)整合,將流量數(shù)據(jù),交易數(shù)據(jù),庫存數(shù)據(jù),銷售數(shù)據(jù)進行統(tǒng)一的處理。

通過ETL,將企業(yè)的數(shù)據(jù)抽取過來,對數(shù)據(jù)進行清洗,再根據(jù)業(yè)務(wù)專家的建議構(gòu)造數(shù)據(jù)模型,根據(jù)數(shù)據(jù)的專題構(gòu)建數(shù)據(jù)集市,最后通過OLAP工具進行數(shù)據(jù)分析。在這里奇碩可以對客戶數(shù)據(jù)進行多維度的分析,可視化的圖表。另外,在營銷平臺上,奇碩通過Spark對流量數(shù)據(jù)和營銷數(shù)據(jù),根據(jù)業(yè)務(wù)規(guī)則進行挖掘和模式的匹配,給零售企業(yè)提供數(shù)據(jù)的精準營銷。

奇碩基于網(wǎng)易云的應(yīng)用實踐

奇碩在今年遷移到網(wǎng)易云的過程中,對整個體系架構(gòu)和數(shù)據(jù)平臺進行了升級,這些升級主要包括數(shù)據(jù)平臺的升級,企業(yè)數(shù)據(jù)中心的升級和應(yīng)用系統(tǒng)架構(gòu)的升級。

數(shù)據(jù)平臺的升級

其中,數(shù)據(jù)平臺的升級涉及到以下幾個方面:

  • 安全性方面:原來的架構(gòu)使用的全部是帶公網(wǎng)網(wǎng)卡的云主機,服務(wù)經(jīng)常受到外網(wǎng)的網(wǎng)絡(luò)攻擊,差點造成數(shù)據(jù)的丟失?;诰W(wǎng)易云的部署過程中,奇碩調(diào)整了架構(gòu),屏蔽了外網(wǎng)訪問,橫向流量全部通過內(nèi)網(wǎng),運維操作通過VPN的方式進行;
  • 高可用性方面:原來的架構(gòu)部署在多臺大規(guī)格的云主機上,每一臺云主機部署了多個服務(wù),高可用性存在問題。遷移至網(wǎng)易云的時候,通過將部分應(yīng)用部署在容器中,通過對關(guān)鍵系統(tǒng)的多副本互備和負載均衡,實現(xiàn)服務(wù)的高可用;
  • 易維護性方面:原來的架構(gòu)中所有的應(yīng)用都是自己搭建的,例如數(shù)據(jù)庫,緩存等,技術(shù)人力比較緊張,需要花費大量的運維成本。使用了網(wǎng)易云的RDS和Redis集群服務(wù)后,高可用、自維護、遷移等都由網(wǎng)易云的PaaS服務(wù)承擔(dān);
  • 合理性方面:原來的架構(gòu)中,一臺云主機上部署了多個系統(tǒng),隔離性不好,也沒有實現(xiàn)按需分配,這樣資源的分配不太均勻,出現(xiàn)繁忙的服務(wù)競爭資源,部分主機資源空閑的情況?;诰W(wǎng)易云的按需分配機制,將大的應(yīng)用部署在高規(guī)格的云主機上,將小的應(yīng)用部署在容器上;
  • 易擴展性方面:基于容器技術(shù),部分節(jié)點可以水平擴展。
幻燈片16.JPG

上圖是升級過后的大數(shù)據(jù)平臺的部署架構(gòu)。分外網(wǎng)和內(nèi)網(wǎng),通過負載均衡隔離。通過代理Nginx將外網(wǎng)請求轉(zhuǎn)發(fā)到內(nèi)網(wǎng),在Nginx中配置靈活的規(guī)則,將不同的請求轉(zhuǎn)發(fā)到不同的服務(wù)中。Nginx是部署在無狀態(tài)容器上的,容器掛掉后可以自我修復(fù)。數(shù)據(jù)采集層使用的Flume,收集的數(shù)據(jù)分成兩部分,一部分存儲到HDFS里面,一部分發(fā)送到Kafka,被實時運算Storm進行處理。離線計算使用的是Map-Reduce,數(shù)據(jù)挖掘使用Spark。計算的結(jié)果主要放在Mysql里面,需要高并發(fā)訪問的,會緩存在網(wǎng)易云的緩存服務(wù)Redis中。整個大數(shù)據(jù)平臺全部基于容器和云主機。

企業(yè)數(shù)據(jù)中心架構(gòu)的升級

奇碩的數(shù)據(jù)中心也經(jīng)過了一次升級:之前的數(shù)據(jù)中心,主要是基于客戶的DB數(shù)據(jù)庫,在加上一些傳統(tǒng)的BI分析工具,做一定的可視化分析。隨著客戶的數(shù)據(jù)量越來越大,原來的很多數(shù)據(jù)都整合到了大數(shù)據(jù)平臺里面。

幻燈片18.JPG

奇碩使用Kettle將企業(yè)數(shù)據(jù)從數(shù)據(jù)庫中抽取出來,存儲在大數(shù)據(jù)平臺,在線分析工具使用了Kylin系統(tǒng),將數(shù)據(jù)分析的結(jié)果寫到HBase里面,然后通過可視化系統(tǒng)展現(xiàn)出來。

隨著業(yè)務(wù)的發(fā)展,奇碩系統(tǒng)承載的數(shù)據(jù)量也越來越大,現(xiàn)在的數(shù)據(jù)量在10G/天左右,預(yù)計年底會達1T/天左右,自己搭建數(shù)據(jù)平臺的話,運維成本太高了,正在計劃和將數(shù)據(jù)平臺遷移到網(wǎng)易猛犸,并和網(wǎng)易有數(shù)進行整合。

系統(tǒng)應(yīng)用架構(gòu)的升級

奇碩在應(yīng)用架構(gòu)方面也進行了升級。最初系統(tǒng)出于快速上線的需求,系統(tǒng)的架構(gòu)設(shè)計不是特別合理,采用了單體架構(gòu)的模式,隨著業(yè)務(wù)量和系統(tǒng)功能的增多,開始對系統(tǒng)進行微服務(wù)架構(gòu)的改造。

幻燈片20.JPG

上圖是改造后的應(yīng)用架構(gòu),把原來的系統(tǒng)按照業(yè)務(wù)規(guī)則拆分為相互不關(guān)聯(lián)的服務(wù),比如品牌服務(wù)、客流服務(wù)、畫像服務(wù)和微信服務(wù),在服務(wù)外面通過服務(wù)路由,將服務(wù)進行對外發(fā)布,在產(chǎn)品層根據(jù)產(chǎn)品所需,把服務(wù)進行簡單組合。

之前的數(shù)據(jù)層都是一個數(shù)據(jù)庫承擔(dān)很多服務(wù),這次改造對數(shù)據(jù)庫進行了拆分,比如一個數(shù)據(jù)庫拆成了多個庫或多個表,甚至增加獨立的數(shù)據(jù)庫,比如用戶數(shù)據(jù)庫是獨立的數(shù)據(jù)庫,畫像數(shù)據(jù)放在HBase中。

服務(wù)之間的注冊與發(fā)行使用Spring Cloud;前端的API Gateway基于Nginx服務(wù)路由;所有的應(yīng)用部署在網(wǎng)易云的容器中,并基于容器實現(xiàn)DevOps。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容