用微服務技術快速強化數位核心系統

金融業數位轉型的直達車:打造數據中台

Fred Chien(錢逢祥)
Brobridge - 寬橋微服務
6 min readAug 18, 2020

--

Photo by Paweł Czerwiński on Unsplash

不只是金融業,幾乎所有企業都有屬於自己不同型態的數位核心系統,這些長年存在的系統既是企業的命脈,也是數位轉型下的一大包袱。面對快速變革的外部需求、商業轉型,甚至是大量數位需求,既有核心系統的適用性逐漸受到挑戰,導致所有企業都在尋求改造之道。

改造核心系統不是一件易事,從「強化」的角度著手更為現實,如何運用微服務技術改造中台系統,達成強化核心的目的,才是我們關心的議題。

當然,我們更關心的是如何迅速、無痛的導入微服務技術來達成這個目標。

開放銀行面臨的數位系統困境

以 Open API 巨量存取需求為例

當整個社會、商業環境都朝數位化轉型前進,開放銀行的發展勢必會大力推進,伴隨而來的是業務量上升、外部數位連接需求劇增、大量資料交換等議題。先不論其他系統將面臨的挑戰,在傳統的架構下,核心資料庫會首當其衝,將面臨巨量的存取壓力,導致與資料相關的服務優先崩潰。

由於軟硬體架構上的物理限制,單一資料庫的效能有其極限,除了耗時耗力,也要花大量的金錢才能換取些微的效能改善,這對所有企業來說,都是一個終極議題。

另外,在核心系統上的原始資料和狀態尤其重要,若任何的外部連接都可以影響核心的運作,除了效能、穩定性問題外,資料安全性都是一大麻煩。

建立資料安全防線:資料中繼設計

引入 CQRS 建立中繼資料庫,實現資料實體分離

若要避免所有的資料需求直接打穿核心資料庫系統,最好的作法就是:「不要直接碰觸核心系統」。為此,採用微服務架構中常被提及的 CQRS 技術,為資料建立安全防線,就是絕佳的解決方案。

要建立資料安全防線,需要實現:

  1. 資料提取(只選擇必要資料)
  2. 過濾與聚合(過濾敏感資訊、減少資料維度、降低查詢複雜度)
  3. 建立中繼資料庫(動態建立快取)

只要引入常規的 CQRS 設計和工具,資料提取的顆粒度可以達到「欄位」層級,只提取需要的欄位,而無需複製整個資料庫、資料表,大幅縮小資料尺寸,達到更好的資料快取效率。

一旦落實了中繼資料庫的設計,所有外部查詢需求將不再與核心資料庫直接連結,由於在建立中繼資料庫的多視圖(Multiple Views)設計下,資料維度已經針對特定需求而優化、去關聯化,使得查詢複雜度因此降低,能提供最高效的查詢。

在安全性上,因為只有必要的資料,過濾和聚合的過程中,已經針對敏感資訊進行去識別化和刪除。中繼資料庫所保存的資料重要性,已經得到最大限度降低,即使被入侵或是破壞,也得以確保將損失得控制在最小範圍。

對於資料吞吐量的提升,雖然資料庫查詢效能藉由資料聚合工作得到到最佳的提升,但面對巨量需求時,資料庫仍然不一定能承受壓力。在這種情況,我們可以對資料中繼資料庫實現抄寫機制,來建立多個副本,也就是「傳統的讀寫分離」如:Replication 或 CDC。

建構規模化數據中台

由資料中繼組成的資料庫叢集,形成規模化的數據中台

當每個應用需求被整理出來對應到不同的資料中繼資料庫,就能間接實現微服務架構中所謂資料庫私有化(Database per service)的設計,而這些中繼資料庫即形成一個規模化的數據中台。更重要的是,照這樣的模式導入微服務技術,不知不覺中,每一個外部需求的流程,都已經滿足微服務架構的服務拆分和設計方法,實現可以橫向擴展或達成敏捷開發的需求。

此外,實現數據中台並習慣於這樣的形式之後,核心的需求除了關鍵的交易之外,將逐漸退出第一線的應用場景,數位轉型所需的敏捷、新業務需求,都不會再將核心系統和其原始資料庫作為瓶頸或累贅。

下一步,可以從資料中繼的設計開始,探討資料歸屬權,進行微服務的聚合設計,並實現資料中繼的資料中繼,達成分散式資料管理的目標,真正落實微服務架構。

更進一步的 CQRS 應用場景

CQRS 的應用場景全貌

引入 CQRS 其實能實現許多事,除了「傳統讀寫分離」要達成的效能優化以外,若將顆粒度做到欄位、事件程度,再整合應用程式層級的設計,能實現異質資料庫的需求。尤其是,資料因為提取、過濾、聚合,資料集的尺寸和敏感性都大幅度降低,變成適合拋轉到第三方、不同的雲端系統之上,增加混合雲整合的可能性。

當然,若要完整的實現這些應用場景,甚至利用 CQRS 來實現微服務架構,CQRS 機制在應用層的支援和可客製化性就相當重要,不再只是傳統單純的 Replication 或 CDC 可以滿足,需要特別注意。

實現 CQRS 需要快還要再快

自己實現 CQRS 相當痛苦,找到對的方法和解決方案能省下大量時間

從過去經驗來看,可以說從快取角度引入 CQRS 是最無痛且迅速的方法,也為難搞的微服務架構打開了一道缺口,從資料的整理和規劃,逐步形成未來的微服務架構。只是,若要順利實現這些目標,面對大量應用需求,CQRS 機制的部署就勢必要「快、狠、準」,甚至要全面自動化。

相當幸運的是,在這雲原生(Cloud Native)的時代,部署 CQRS 可以是一件非常快速的事,只要引入的解決方案正確,規劃方向也無誤,通常數分鐘內就可以落實一套 CQRS 機制、建立一座新的資料中繼,應用程式甚至無需做大規模改造。即便面對數百個新的應用需求,可能也只是幾天工作量的事情。

不做大規模改造、快速解耦資料、滿足效能需求和敏捷的應對商業模式改變,在這些前提下,才是導入微服務架構和強化核心系統的正確姿勢。

本文資料,來源皆參考自 寬橋(Brobridge) 的實務經驗,以及微服務架構設計教育訓練課程和 Gravity 解決方案說明,想要暸解更多關於微服務架構設計及 CQRS 的議題,可以與我們聯絡。如果您想要導入「資料快取平台」,為您的微服務導入之路打下堅實基礎,也為未來的「數據中台」和「資料中繼平台」做好準備,歡迎與我們洽詢。

--

--