- 云原生數據中臺:架構、方法論與實踐
- 彭鋒 宋文欣 孫浩峰
- 3054字
- 2021-04-30 12:38:52
6.1 基礎架構
數據中臺會出現的一個重要原因是,現有的大數據平臺在架構上無法快速高效地支持數據能力的全局管理和共享復用。因此,采用合理的基礎架構對于建立一個可持續發展的數據中臺非常重要。
思考試驗 考慮這樣一個場景:某公司的廣告部門想通過大數據平臺來分析用戶行為,實現廣告的精準投放。因為該公司還沒有大數據平臺,所以廣告部門就和IT部門一起安裝了一個大數據平臺,并開發了一些用戶行為分析應用,形成了用戶行為分析系統。這些應用實現了廣告精準投放,帶來了不錯的效益,系統也開始穩定運行。用戶增長部門看到這些應用效果不錯,也想使用一下這個用戶行為分析系統。問題是,如果它們在使用這個系統時出現問題,該由誰來負責?廣告部門、用戶增長部門還是IT部門?如果這個系統在建設時并沒有考慮到其他部門的使用,那么修改系統的工作以及修改對系統造成的影響又由誰來負責?廣告部門還是IT部門?
在面臨上述問題時,我們經??吹剑捎诘讓踊A架構的支持不夠,IT部門難以確定新功能會對現有生產系統造成什么影響。而由于新功能的影響不可預知,廣告部門會對其有抵觸情緒。這時一個能夠快速落地的選擇是,由IT部門在完全隔離的情況下再為用戶增長部門設置一套集群,這樣,各部門就可以獨立開發,互不干擾。
還有一種情況是在同一個集群中重復開發。我們在一些實際場景中看到,部門A從一個生產數據庫中采集了一些數據,建立了自己的數據倉庫。部門B也有類似的數據倉庫需求,但并不完全一致,由于部門A沒有精力滿足部門B的需求,但又不會將自己的數據倉庫開放給部門B改動,于是部門B就自己采集數據,再建一套適合自己的數據倉庫。這樣,一些核心的業務數據庫被重復采集許多遍。長久下去,每個部門都有一套自己的數據倉庫,里面的語法和語義自成體系,導致整個數據的統一協調工作成為一項不可能完成的任務。
這種做法有其存在的合理性:在項目開始的階段,大家可以快速獨立開發,避免互相影響,加快落地的效率和迭代的速度。但是在使用大數據的部門增多之后,就會出現數據的重復使用、開發、存儲,數據訪問難以控制等問題,并且容易造成數據孤島及應用孤島,到數據運用達到一定規模時,數據就會變得難以管理。
我們認為,一個好的基礎架構應當不僅能讓項目快速落地,還能讓企業的各個部門在現有系統上快速開發新功能、引入新數據,而不用擔心與現有數據發生沖突。這個基礎架構的核心需求是資源隔離、控制管理、可彈性擴充的資源和應用管理。因此,數據中臺的基礎架構應該有如下特征。
(1)云原生架構
用傳統方式建設數據中臺具有以下幾個難點:
·傳統的單體架構應用開發模式很難做到數據應用的快速落地、快速迭代,也很難保證數據應用能力的快速復用;
·新的大數據技術難以快速落地;
·難以解決多租戶環境下的數據安全及性能問題;
·業務人員很難自助完成新的數據分析及探索工作;
·難以部署和運維分布式的計算框架和存儲框架,以保證大數據分析的高性能。
基于這些原因,我們認為,數據中臺的基礎架構一定要是云原生的。云原生架構可以幫助我們快速開發、測試、迭代和上線大數據應用,輕松實現數據能力的共享和復用,實施統一的數據中臺組件的標準化配置和管理,快速集成新的大數據、人工智能和機器學習開發工具,方便地部署和運行各種分布式計算框架和存儲框架。
(2)多處理引擎支持
數據中臺需要支持多種數據處理引擎來應對不同的數據分析場景。離線大規模數據的處理一般采用Hive或Spark計算引擎(Hive后臺可以選擇MapReduce或Spark引擎),而流數據的處理一般采用Kafka或Flink作為計算引擎。在海量的數據中,分析人員經常要進行隨機查詢,在這種場景下,Cassandra或HBase會表現得比Hive更出色。在傳統的數據倉庫中,分析人員基于多維數據模型(也稱為數據立方體),利用OLAP技術進行多維度的數據分析,執行鉆取、上卷、切片、切塊及旋轉等操作。
在大數據環境下,類似的OLAP計算引擎有Apache Kylin。如果分析人員要進行基于時序數據模型的分析,則可以采用InfluxDB等時序計算引擎。圖計算也是大數據分析中常用的一種分析方式,應用領域包括社交網絡、輿情分析、用戶推薦等,目前流行的圖計算引擎是Neo4j。
在引入這些計算引擎時需要注意的是,要將它們組織成整個組織中統一的全局計算框架,并納入統一的多租戶安全管理系統和全局數據資產管理系統。只有這樣,我們才能實現全局的數據安全策略,并準確地評估這些計算引擎所消耗的資源和所產生的價值。
(3)集成的數據及應用管理
如上所述,數據中臺應該可以同時管理批處理數據和流數據,以及多種處理引擎和分布式數據存儲。我們經??匆娫谝恍┢髽I的實施環境中,各種集群、系統都有各自的管理界面、報警系統、元數據系統,這在后期會導致數據資產不明確、使用復雜、效益不明確等問題。為了避免這種情況,我們必須通過這種統一的管理模式進行統一的數據應用資產管理,全局把握數據、資源、中臺使用者以及應用之間的關聯關系,實現高效的集群資源利用,使分析人員可以快速進行大數據應用的開發、迭代、共享和復用。
(4)靈活方便的多用戶支持
多用戶是數據中臺必須支持的一個功能。在多用戶的環境下實現數據和應用的隔離,才能讓各業務部門有意愿在數據中臺的安全環境下進行數據能力的開發和迭代,把部門的私有數據隔離保護起來,同時把可以公開的數據能力抽象并共享,供其他部門復用。
數據中臺的多用戶支持一定要靈活方便,應該可以通過通用的LDAP或OpenID協議直接對接公司的用戶系統,而不需要另建一套獨立的用戶系統。使用同一套用戶系統管理一家公司內所有IT平臺架構的好處是,當公司發生人員變化的時候,只要在一個用戶系統內進行人員或組織架構的更新,就可以將這種更新覆蓋到公司所有的IT系統中。在不同的IT平臺架構中使用不同用戶系統的安全隱患是顯而易見的,如果IT部門在更新時遺漏了某一個平臺的用戶系統,則會在這個平臺中留下安全漏洞。
數據中臺的多用戶支持還要與全局的數據資產管理結合起來,數據中臺的用戶是組織的一種資產,通過分析這些用戶與數據、應用、資源的關聯關系,可以準確地評估公司各業務部門在數據中臺中所使用的資源及其產生的價值。公司可以將這種評估納入數據中臺的績效管理,進一步激發各業務部門使用數據中臺驅動業務發展的積極性。
(5)端到端的安全審計
在數據中臺的建設過程中,實現端到端的安全審計是保證數據中臺安全性的必要手段。但是在大數據的環境下,數據類型、計算引擎的多樣性以及不斷增長的海量數據和數據應用,使得安全審計的實施具有很大挑戰。一般來說,數據中臺的安全審計要重點關注以下幾個功能的實現。
·兼容性:首先是支持不同的數據類型,包括結構化數據和非結構化數據、批處理數據和實時數據、存儲在各種不同存儲系統中的數據;其次是支持不同的數據采集及數據處理引擎,例如批處理和實時處理引擎。
·快速檢索:安全審計數據是一種大數據,因此數據中臺要提供安全審計數據的快速檢索,并能夠提供整個事件端到端的回溯,直觀地分析整個事件的關聯性。
·敏感數據處理:審計數據會包含一些敏感數據,因此要對審計數據進行安全認證和授權管理,避免敏感數據泄露。
·安全報警:對于海量的安全審計數據,很難通過人工監控,因此數據中臺一定要實現安全審計數據監控和報警的自動化,當發生違反安全規范的事件時,能夠自動通知安全管理人員及時處理。
(6)高效的開發及運維流程
在云原生架構下構建的數據中臺是以容器化的方式來部署大數據的基礎組件,而大數據應用則是在微服務架構下進行開發并以容器化的方式在數據中臺中運行,云原生的DevOps和CI/CD流程可以使開發團隊快速迭代和更新大數據應用,并輕松進行數據中臺的運維工作。
- MySQL高可用解決方案:從主從復制到InnoDB Cluster架構
- 企業數字化創新引擎:企業級PaaS平臺HZERO
- 數據庫原理及應用教程(第4版)(微課版)
- 算法競賽入門經典:習題與解答
- 數據庫基礎與應用:Access 2010
- 數據化網站運營深度剖析
- 數據庫應用基礎教程(Visual FoxPro 9.0)
- Python數據分析:基于Plotly的動態可視化繪圖
- 數據庫技術及應用教程
- 數字媒體交互設計(初級):Web產品交互設計方法與案例
- gnuplot Cookbook
- Google Cloud Platform for Developers
- Spark分布式處理實戰
- 新手學會計(2013-2014實戰升級版)
- 數據分析師養成寶典