動輒數百TB級數據的分析平台 海量並發無壓力
今天重點解讀諸葛io技術架構的優勢以及大數據分析模型。
1、「多租戶」式平台同時支持很多百億級大型應用,直面高並發面臨的挑戰且保證高速響應,實時準確。
2、找到用戶與設備的關係,透過設備來追蹤背後真正的用戶
3、真實的用戶會話採集,絕非通過規則「人為切割」會話(session)
海量數據並發「無壓力」用戶會話真實「不切割」
點擊圖片查看大圖
?數據收集端
諸葛io的數據採集採用的是LVS+Nginx+Lua,而不是簡單的Nginx,之所以這樣設計是因為:
-我們的「多租戶」平台要同時支持很多大型應用,例如「墨跡天氣」,「Flipboard紅板報」等大數據量的數據上傳;
-我們是率先採用https協議的數據採集分析平台,所以比http高並發麵臨的挑戰會更大;
-我們要保證高響應的速度;
此外,諸葛io的私有部署也同時支持該架構,保障用戶數據上傳的實時性,準確性。
?數據分析模型
諸葛io的數據分析模型更高級,我們的模型是「用戶-觸點(設備)-會話-事件」:
a. 會話是行業分析的標準,我們的模型基於實時還原用戶會話場景,而不是通過「規則」來人為切割;
b. 諸葛io對「用戶」的判斷一直以來都是行業比較領先的規則,傳統的「用戶」其實是「設備」,而我們能找到用戶與設備的關係,透過設備來追蹤背後真正的用戶,包括不限於:
-用戶註冊前的匿名行為與註冊後行為的關聯
-單用戶的多設備(跨平台)行為關聯
-單設備多用戶的行為還原
為了支持這樣的數據模型,我們需要更複雜的服務端邏輯處理,Codis是領先的Redis分散式組件,讓我們的實時匹配更可擴展,而SSDB是兼容Redis協議的硬碟存儲,支持海量的關係存儲。
?基礎存儲、索引、OLAP
諸葛io同時支持SaaS和私有化部署,所以有統一的ETL以及差異化的數據存儲和查詢引擎,基礎存儲基於S3和HDFS。Redshift是很多矽谷最頂尖的公司都使用的技術,包括Airbnb, Yelp, Pinterest等等,我們致力於給國內客戶提高更高品質的雲端分析能力,所以也採用了更好的基礎設施。
站在AWS的肩膀上
諸葛io依託AWS可靈活拓展的雲計算平台,可降低持續成本,無需購買伺服器等前期設備,快速實現數據應用,縮減基礎設施成本及時間成本;企業搭建大數據平台的目的是應用而不是運維,所以諸葛io通過AWS平台降低企業運維成本;此外為了便於諸葛io在其他方面的探索,比如在AI方面進行探索,通過AWS平台提供的AMI可極大地降低研發成本。
總之,基於AWS平台彈性化的豐富功能,更人性化的設計方案,更高質量的全球服務,為諸葛io提供了優質的基礎設施服務:
1、功能豐富
AWS的功能非常豐富,除了EC2作為基礎機器之外,PaaS方面,我們使用了EMR/ S3/Redshift等組件,小的功能方面,還包括AMI鏡像備份恢復,用戶的IAM許可權分配,Instance機器種類和外置磁碟EBS的選型,分散式S3的文件存儲功能以及工作中產生的業務需求等。
2、彈性化
諸葛io在搭建基礎設施之初,就以滿足海量數據規模計算為目標,隨著諸葛io每年企業客戶呈指數級的增長,再次證明最初的堅持是正確的。
海量數據並發,當系統負載、QPS偏高時,常出現CPU利用率達到100%的情況,此時諸葛io即可通過調用AWS API介面來實現彈性擴容,包括主機的分配、流量的分配、IP的綁定、域名解析的配置以及存儲服務等。
3、全球服務
能夠在節約成本的前提下,非常方便的進行擴容和Hadoop/Spark數據計算,在全球部署自己的數據中心,幫助諸葛io為全球企業客戶提供服務。
?Amazon EMR
Amazon EMR 是一種 Web 服務,它能讓企業、研究人員、數據分析師和開發人員能夠輕鬆、經濟高效地處理海量數據。
大數據平台基於Hadoop,技術複雜度非常高,對諸葛io而言,底層的運維壓力和成本壓力非常大。因為動輒一個客戶可能就是數百TB級的數據,我們必須選擇非常靈活、低成本的方式來支撐業務,所以我們選擇EMR。
此外,Hadoop有很多發行版,在選擇不同的Hadoop版本時,EMR幫助諸葛io更快捷地篩選適合我們的發行版套餐,Hadoop在組件的更新和支持上非常迅速,幫助諸葛io及時跟進最新技術來調整方案。
基於Amazon EMR易操作,易於設置集群/Hadoop/節點、在重試失敗任務等方面具有很高的可靠性、允許任何規模處理數據來靈活控制成本支出、通過自動配置Amazon EC2防火牆設置保證數據安全,靈活自定義群集,使用成本的優勢,為諸葛io搭建一個強大的技術支持。
?EMR & S3 有效結合
採用AWS的S3(數據採集平台)存儲數據,可對分散的數據進行有效的集中管理,滿足對不同框架的輸入需求,甚至支持Redshift的直接查詢,而且有高持久性。在諸葛io的實際運用中,通過將EMR與S3的有效結合,降低數據傳輸成本,增加數據存儲能力擴展性,增強計算能力的擴展性,提高伸縮響應速度,攤薄存儲與計算成本。
?Redshift
Redshift:提供基於雲的全託管的PB級高速數據倉庫,用現有BI工具分析海量數據。
隨著諸葛io的客戶越來越多,Greenplum的方案已不再適合SaaS服務,因為它雖然查詢性能很好,可一旦海量並發時便遇到性能瓶頸。
在研究國外架構時,Redshift是airbnb等很多知名公司的選擇,所以,在嘗試後我們發現Redshift的確是基於數據倉庫優化,包括基於S3之後在海量數據載入和計算時有非常不錯的表現,另外,考慮到業務方案和基礎架構,諸葛io也選擇了兼容性和適配性更好的Redshift。
此外,Redshift可以利用現在使用的 SQL 語法和 BI 工具,對 Amazon S3 中的 EB 級數據進行查詢,二者範圍內可進行無縫查詢,具有極高的擴展性;通過 AWS 管理控制台或 Amazon Redshift API 使用任何系統快照或用戶快照來恢復群集,系統元數據恢復後,群集就可供使用,並且可在用戶數據在後台輸出時開始運行查詢,具有快速恢復能力;在未使用Redshift之前主要使用Greenplum作為數據倉庫,二者都是基於postgresql,數據遷移到新數據倉庫後對應用中查詢改動量較小,平滑遷移,更易於遷移。
大數據的技術發展勢不可擋,大數據技術的發展將會越來越多樣化,企業必須跟上技術發展趨勢並結合數據與價值輸出。隨著更為複雜的用戶需求湧現,精細化數據分析將成為驅動企業業務增長的關鍵功能。
諸葛io圍繞這些趨勢所產生的問題,結合用戶-觸點(設備)-會話-事件模型,提供了一站式的數據分析解決方案,從數據接入到自助式的場景分析,最後再將底層進行清洗和整合過的數據,完整開放給企業,以便實現企業數據相關價值的挖掘。
諸葛io以用戶跟蹤技術和簡易集成開發的方法,幫助移動應用的運營者挖掘用戶的真實行為與屬性,幫助互聯網產品更快、更簡單的通過數據驅動產品分析從而實現業務增長,商業價值的提升。
本文首發微信公眾號 諸葛io(ID:zhugeio1)
諸葛io,你身邊的數據驅動教練
歡迎添加微信:zhugeio2016一起探討交流
推薦閱讀:
※數據分析探索之旅(二):R 的基本操作與數據結構
※如何假裝成一個頂級的數據分析師?
※日留存、周留存、月留存,怎麼讓更多用戶留下來
※太多選擇——如何選擇合適的BI工具?