iT邦幫忙

2021 iThome 鐵人賽

DAY 1
1
Software Development

淺談中台架構、DDD與Python實踐系列 第 1

【Day 01】中台架構浪潮與啟示

前言

近幾年中國掀起一股『中台架構』熱潮,大型企業紛紛導入此一概念,重整戰略資訊架構,建構業務、數據、AI、技術、移動、通訊、安控、...等中台,接著這股熱潮也吹進國內金融產業,前陣子某金控就辦了一個大型的研討會,主軸就放在中台架構規劃、DDD與微服務實踐上,究竟它有何魔力? 我們就來好好的研究一下。

記得之前在電信業服務時,公司還未開台就已經備妥近百個應用系統,以備營運之用,當時資訊部門馬上面臨一些問題,所有系統可否單一帳號登錄? 客戶/商品資訊可否共享? 客戶資訊開放共享後,如何保密不讓非相關的人士查閱? 這些事情看似簡單,問題是近百個應用系統有的是外購、委外開發、自行開發,也使用不同的資料庫、程式語言、開發框架,如何整合是一個大問題,這個現象幾乎是所有企業長久經營下來,必會面臨的問題,因此,阿里巴巴提出中台架構,馬上掀起千堆雪,大家一股腦的想要一探究竟。

https://ithelp.ithome.com.tw/upload/images/20210916/20001976eA98HVGfGk.png
圖片來源:阿里巴巴集團的「大中台、小前台」組織戰略

起源與進展

中台架構是阿里巴巴在2015年提出的概念,喊出『大中台、小前台』,將13個業務中心進行整合,在2018年再提出『業務-數據雙中臺』,將13個業務中心整合成業務、數據兩個中台,之後,再衍生出『技術中台』、『AI中台』、『技術中台』、『移動中台』、『通訊中台』、『安控中台』...。

在阿里巴巴提出中台架構,並且大肆宣揚後,其他大型企業也隨之跟進,包括騰訊、百度等也提出各種中台,希望能破除企業內的資料孤島,建立統一的架構平台。相關報導可參閱『你還不懂「數據中臺」?』一文介紹。

到了2021年阿里執行長張勇又宣稱要把中台架構拆了,變成碎片化(Fragmentation),其實,張勇並不是要把中台架構拆掉,而是要把2018年提出的『業務-數據雙中台』變成更多的中台,包括知識中台、AI中台、移動中台、研發中台、...等等,並將『微服務』(Microservices)導入中台,使系統開發與交付(Delivery)更迅速,以迎接業務型態與銷售管道不斷創新的挑戰。微服務是要拆分業務,而中台架構是要整合相關業務、資料與技術,看似相反,他們如何並用,是一個很有趣的思維。

中台是甚麼?

事實上,學術上並沒有中台這個名詞,只有前台(Front End)與後台(Back End),Gartner中國還特別為它翻譯為『Middle Platform』,它重要的不是分為多少種中台,而是強調企業復用的能力,復用就是重複使用(Reuse),也就是企業如何建立一個共享平台,提升企業水平整合能力,讓各業務能在共通架構下,對新業務、新產品、新通路、新服務型態的需求,可以更快速的反應,包括系統的開發與調整。

以產物保險為例,公司通常會依業務型態切分為多個事業群,各自開發系統,如下:
https://ithelp.ithome.com.tw/upload/images/20210902/20001976eQwWNSelLs.png

但每個業務都有高度重疊的功能,例如車險、火險、水險業務功能都包含以下功能,膝蓋式的反應就是把各業務進行水平整合,這樣我們就能快速開發出新的險別/險種,例如健康險:
https://ithelp.ithome.com.tw/upload/images/20210906/20001976wLjKuexJKb.png

再進一步的思考,每個企業都有些共通的特性,例如每個企業都會有客戶、產品、訂單、使用者等,這些又可以獨立出來,提供跨企業的共通平台,這就是幾年前提出的概念『Master Data Management』(MDM)。
https://ithelp.ithome.com.tw/upload/images/20210902/20001976n2H6nsRk1h.png

所以,嚴格講中台並不是一種技術架構,而是一種思維,它的企圖心很大,從戰略資訊系統架構、個別系統分析、詳細設計(Design Pattern)至開發架構(微服務)無所不包,既要『統合』共通架構,建構共享平台,又要能『切分』成各種微服務,分層設計,以利後續的維護與擴充,初次接觸,感覺有點在畫大餅,深入研讀後,整個思維確實可以幫助中大型企業,進行資訊系統改造。
https://ithelp.ithome.com.tw/upload/images/20210906/20001976tH0H9sU1qV.png

怎麼進行?

中台架構這麼好,那要如何搞定它呢? 目前的作法是以領域驅動設計(Domain-Driven Design, DDD)進行業務領域的切分與規劃,找出核心能力、通用領域、支撐(Support)平台,之後就在此中台架構之上,進行個別系統的分析/設計/開發,最終以微服務的形式發佈,希望能解構(Decoupling)過往龐大的前後台單體(Monolithic)架構。

因此,要建構一個中台架構,必須要瞭解下列事項:

  1. 訂定戰略資訊架構(Strategy Information System):規劃企業整體資訊系統架構。
  2. 掌握領域驅動設計(DDD)方法論:訂定領域模型、聚合(Aggregate)相關領域,推出企業服務。
  3. 熟悉微服務(Microservices)技術:如何切分微服務,考量與後端的整合。

以上每一項都是大哉問,之後,我們就來仔細地品嘗相關的技術吧。


下一篇
【Day 02】戰略資訊系統(Strategic information system)
系列文
淺談中台架構、DDD與Python實踐10

尚未有邦友留言

立即登入留言