網易雲:奇碩基於網易雲的微服務與大數據實戰

大數據 網易 數據挖掘 NoSQL 湖南旅遊報道 2017-06-08

網易雲:奇碩基於網易雲的微服務與大數據實戰

在網易和中睿協辦的“雲服務、大數據應用實例&高效研發管理---軟件研發沙龍”中,作為網易雲的典型客戶,上海奇碩網絡科技有限公司CTO殷世林分享了奇碩在大數據平臺建設方面的核心技術,以及基於網易雲實現微服務化改造和數據平臺升級的經驗。

奇碩產品與服務

上海奇碩網絡科技有限公司成立於2014年4月,是一家專注於鞋服零售併為泛零售行業提供大數據服務與一體化解決方案的大數據科技公司。奇碩的業務方向包括三塊:

流量、業務診斷服務,對應的產品是零售魔方。通過自研的智能硬件抓取客流數據,結合大數據平臺,對流量數據進行分析,再加上客戶的零售數據,對客戶進行可視化的數據服務,最終給客戶提供業績診斷報告。這些指標看似簡單,但是全方位反應了零售行業日常的經營情況:

網易雲:奇碩基於網易雲的微服務與大數據實戰

數據營銷服務,對應的產品是數據營銷平臺,通過抓取的流量數據,對客戶設定標籤,分析消費行為,使客戶能夠據此優化產品結構,做到精準營銷;

企業數據總線服務,對應的產品是企業數據中心,為沒有能力建設大數據平臺的企業提供數據平臺服務,幫助企業分析數據,挖掘價值。

技術與平臺

奇碩的核心技術如下所示:

網易雲:奇碩基於網易雲的微服務與大數據實戰

首先,奇碩擁有自研的智能硬件,通過這個智能硬件抓取流量數據,並通過數據分析的算法進行建模,除此之外奇碩還擁有資深零售行業的數據團隊,他們的行業經驗能夠幫助公司更加準確的刻畫行業級用戶畫像。

網易雲:奇碩基於網易雲的微服務與大數據實戰

上圖是奇碩大數據平臺的總體架構:

  • 數據源是採集數據的智能硬件設備以及企業的運營數據;

  • 通過數據的採集和抽取,在平臺上進行整合,這就是數據採集層;

  • 採集和整合的數據,會放入數據存儲層進行存儲,可保存在HDFS,Hbase以及對象存儲中;

  • 在數據計算層,離線分析採取Hadoop的Map-Reduce進行處理,實時處理當前使用Storm,後期會改用Spark Streaming進行處理,數據挖掘使用的是Spark的Machine Learning庫中的算法;

  • 處理完畢後的結果,一部分存儲在Mysql,一部分存儲在HBase中;

  • 在產品層,通過對大數據平臺中數據的讀取和整合,在產品層進行展現。

網易雲:奇碩基於網易雲的微服務與大數據實戰

這裡是基於數據平臺的數據處理中心的架構,通過數據採集和數據整合,將流量數據、交易數據、庫存數據、銷售數據進行統一的處理。

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

基於網易雲的應用實踐

奇碩在今年遷移到網易雲的過程中,對整個體系架構和數據平臺進行了升級,這些升級主要包括數據平臺的升級,企業數據中心的升級和應用系統架構的升級。

1

數據平臺升級

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

安全性方面:原來的架構使用的全部是帶公網網卡的雲主機,服務經常受到外網的網絡攻擊,差點造成數據的丟失。基於網易雲的部署過程中,奇碩調整了架構,屏蔽了外網訪問,橫向流量全部通過內網,運維操作通過VPN的方式進行;

高可用性方面:原來的架構部署在多臺大規格的雲主機上,每一臺雲主機部署了多個服務,高可用性存在問題。遷移至網易雲的時候,通過將部分應用部署在容器中,通過對關鍵系統的多副本互備和負載均衡,實現服務的高可用;

易維護性方面:原來的架構中所有的應用都是自己搭建的,例如數據庫,緩存等,技術人力比較緊張,需要花費大量的運維成本。使用了網易雲的RDS和Redis集群服務後,高可用、自維護、遷移等都由網易雲的PaaS服務承擔;

合理性方面:原來的架構中,一臺雲主機上部署了多個系統,隔離性不好,也沒有實現按需分配,這樣資源的分配不太均勻,出現繁忙的服務競爭資源,部分主機資源空閒的情況。基於網易雲的按需分配機制,將大的應用部署在高規格的雲主機上,將小的應用部署在容器上;

易擴展性方面:基於容器技術,部分節點可以水平擴展。

網易雲:奇碩基於網易雲的微服務與大數據實戰

上圖是升級過後的大數據平臺的部署架構,將平臺分外網和內網,通過負載均衡隔離。通過代理Nginx將外網請求轉發到內網,在Nginx中配置靈活的規則,將不同的請求轉發到不同的服務中。Nginx是部署在無狀態容器上的,容器掛掉後可以自我修復。數據採集層使用的Flume,收集的數據分成兩部分,一部分存儲到HDFS裡面,一部分發送到Kafka,被實時運算Storm進行處理。離線計算使用的是Map-Reduce,數據挖掘使用Spark。計算的結果主要放在Mysql裡面,需要高併發訪問的,會緩存在網易雲的緩存服務Redis中。整個大數據平臺全部基於容器和雲主機。

2

企業數據中心升級

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

網易雲:奇碩基於網易雲的微服務與大數據實戰

奇碩使用Kettle將企業數據從數據庫中抽取出來,存儲在大數據平臺,在線分析工具使用了Kylin系統,將數據分析的結果寫到HBase裡面,然後通過可視化系統展現出來。

隨著業務的發展,奇碩系統承載的數據量也越來越大,現在的數據量在10G/天左右,預計年底會達1T/天左右,自己搭建數據平臺的話,運維成本太高了,正在計劃和將數據平臺遷移到網易猛獁,並和網易有數進行整合。

3

應用系統架構升級

奇碩在應用架構方面也進行了升級。最初系統出於快速上線的需求,系統的架構設計不是特別合理,採用了單體架構的模式,隨著業務量和系統功能的增多,開始對系統進行微服務架構的改造。

網易雲:奇碩基於網易雲的微服務與大數據實戰

上圖是改造後的應用架構,把原來的系統按照業務規則拆分為相互不關聯的服務,比如品牌服務、客流服務、畫像服務和微信服務,在服務外面通過服務路由,將服務進行對外發布,在產品層根據產品所需,把服務進行簡單組合。

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

服務之間的註冊與發行使用Spring Cloud;前端的API Gateway基於Nginx服務路由;所有的應用部署在網易雲的容器中,並基於容器實現DevOps。

以上由網易企業信息化服務提供商,湖南領先網絡科技整理髮布。

網易企業服務(qiye163.co)是網易憑藉其20年品牌優勢與經驗在企業郵箱的基礎上,為進一步佈局企業市場而打造的企業級產品矩陣,致力於提供一站式企業信息化解決方案。湖南領先網絡科技是網易企業產品授權經銷商,專業為企業提供網易企業郵箱、網易辦公套件等一站式企業信息化專業解決方案。辦理網易企業郵箱及企業產品相關業務,就找湖南領先網絡科技。

網易雲:奇碩基於網易雲的微服務與大數據實戰

相關推薦

推薦中...