為何該選用分散式資料架構?探討企業資料架構的演進:Data Warehouse to Data Mesh

Photo by @rawpixel.com on Freepik

導言

資料在當今的企業環境中已經成為一種無比珍貴的資源,它被視為一種能夠驅動AI和商業分析等需求的關鍵元素。當我們深入探討如何將資料整合、儲存以及進行分析的時候,數據倉庫 (Datawarehouse) 的概念往往是企業選擇的解決方案。但是,傳統的數據倉庫雖然在整合和分析大量數據方面有其價值,但幾乎可以說是一種錯誤的選擇,隨後一種更有競爭力的資料架構 Data Mesh 相應而生。

數據倉庫 (Data Warehouse) 的困難處

團隊架構的盲點

讀者可能會好奇,數據倉庫 (Data Warehouse) 為什麼是個錯誤的策略和架構呢?

當今的計算系統中,企業已經不可能把資料放在單一的機器上做計算,勢必需要利用群集的方式將資料分散到大量的運算資源中計算,利用此特性才有可能達到企業追求的目標。所以其實在這些資料架構需求的背後,其實是研究一種平行的計算系統。

所以我們要問的問題是,什麼樣的障礙會阻擋平行計算系統的發展?

答案是協調,一旦企業需要協調任何事情,不論是資訊處理、資料架構或是團隊組成,只要是牽扯到協調,基本就會成為企業的瓶頸。舉一個最明顯的例子,像是多數企業會採取的微服務架構,就是避免協調造成的瓶頸。試想一下,今天如果有一個數百或數千人的企業,如果採取統一的軟體發布,協調數千人的軟體程式碼和部屬基本上整個企業是不可能快速運作的,無法在當今的時代快速迭代意味著暴露大量的失敗風險。

同樣的數據倉庫 (Data Warehouse) 就是面臨這樣的情境,數據倉庫採取的就是利用一個集中的團隊和計算架構,將大量團隊生成的資料集中再單一的團隊手上,一方面數據倉庫光是蒐集資料就需要大量的時間成本和上游團隊溝通,甚至下游消費資料的商業分析團隊和 AI/ML 團隊也需要花成本和數據倉庫管理人員溝通,這一來一往,不用說實際產出價值,光是搞清楚資料的用途就要花上巨量的資源。

註記:馬爾文·康威提出的康威定律 (Conway’s Law)

設計系統的架構受制於產生這些設計的組織的溝通結構”,即系統設計本質上反映了企業的組織機構。系統各個模組和服務間也反映了企業各個部門之間的訊息流動和合作方式

康威定律源於模組和服務的設計者需要互相之間頻繁溝通,而跨部門交流通常比較難。

<敏捷軟體開發的組織模式> 中寫道

如果團隊、部門、子部門等的組織結構沒有緊密反映產品的必要組成或產品組成的關係,那麼項目將會遇到麻煩。因此,應該確保組織結構兼容於產品架構。

技術錯誤的盲點

以上還只是討論團隊組成溝通上的瓶頸,技術上數據倉庫 (Data Warehouse) 也用一種非常沒有效率的方式來運轉。雖然說現代企業可以輕易擁有大量的計算資源,但是如果沒有將這些計算資源平分到團隊上,就無法展現這些計算資源的效益

舉例來說,企業的硬體可以很容易就有數百、千個 CPU 當作計算資源,但是傳統的數據倉庫卻會很快達到使用計算資源的限制。

通常數據倉庫的計算模型是先將資料從 Database 讀取出來,然後經由管線把資料進行格式化還有清理,然後再經由一段管線進行聚合之類的運算,然後儲存到數據倉庫中。會發現到這個過程最多可能會經過 5~6 管線和處理單元,也就是說擁有數百、千個 CPU 的硬體,只能夠使用到其中的 5~6 CPU,很快的就算這些 CPU 以滿載的方式執行,卻很快就達到其上限。

那正確的解決方案是什麼呢?

精明的讀者應該會發現,我們一開始就不應該使用這種中心化的計算方式,而是分散式的計算方式,我們完全不需要把資料集中到一個團隊手上,而是把倉儲資料的權責平均分散再各個團隊身上。

這樣每個團隊就可以在自己管理的資料集中處理這些步驟,把企業的的超大資料集平均拆分到各個團隊和計算身上,這樣一來不論有多少團隊,只要投入更多的計算資源,依舊不會造成任何瓶頸。

新時代的解決方案數據網格 (Data Mesh)

其實上面的計算模型就是近年提出的 Data Mesh 的概念,是由 Zhamak Dehghani 這位企業顧問提出的觀點。Data Mesh 用了全新的思考方式來構建企業管理數據的方式。Zhamak Dehghani 在其論文 <How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh> 中提出一些 Data Mesh 該有的特性。

這些資料應該應該以分散式的方式保留在各個團隊,也就是 Domain Ownership 的概念。一方面可以充分的利用計算資源,另一方面可以消除團隊之間的溝通的成本。

接著,團隊之間如果需要交付數據,則是利用 Data Product 的概念,各自的 Domain Team 把資料封裝成 Data Product,來供應到整個企業,如果有任何團隊需要,都可以自助取用。每個領域提供一個開放的API,以讓其他領域訪問其數據。這些數據被封裝為資料產品,意味著它們被視為可以供其他領域使用的具有商業價值的產品。

最直觀的想像就是 Data Mesh 就是資料本身的微服務

Data Mesh 還有一些特性,因為篇幅限制我們就不一一詳談,但是主要的哲學便是將中心化的團隊和計算資源,拆分成分散式的各種考量

企業如果想要進行數位轉型,我們建議不用像打造數據倉儲一樣一開始就投資極大量的資金和人力,可以先從少數團隊嘗試把關鍵的需求利用 Data Mesh 來解決看看,當體驗到 Data Mesh 帶來的各種優勢之後,要擴張系統到整體公司的規模也不是難事,因為 Data Mesh 中不難看出從基礎設施到團隊組織都是可以無限制的擴充。

寬橋(Brobridge)在 Kubernetes 和微服務領域深耕多年,深入了解客戶的需求之後開始打造 Brobridge Gravity 解決方案,此產品用於解決企業跨系統資料交換、微服務架構資料供應和 AIoT 數據平台,協助 IT 人員、開發者實現最佳化的資料交換架構,滿足各類數位轉型的需求。如果您也有相關問題或需求,歡迎 與我們直接聯繫

--

--