數(shù)字化時(shí)代,數(shù)據(jù)庫(kù)就是業(yè)務(wù)架構(gòu),這句話怎么講?
在數(shù)字化浪潮洶涌澎湃的當(dāng)下,傳統(tǒng)企業(yè)置身于技術(shù)十字路口,面臨諸多關(guān)鍵抉擇,其中業(yè)務(wù)邏輯處理究竟安置于何處,是依托應(yīng)用側(cè),還是借助數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程和 SQL,有時(shí)候還挺難說(shuō)哪個(gè)更合適。這絕非簡(jiǎn)單的二選一,而需依據(jù)不同業(yè)務(wù)場(chǎng)景與實(shí)際需求細(xì)細(xì)權(quán)衡。
圖片
在國(guó)內(nèi),前些年受到聯(lián)網(wǎng)企業(yè)主導(dǎo)的去 IOE 工作影響,“數(shù)據(jù)庫(kù)向后退,應(yīng)用向前走” 一度成為主流走向。上周末,來(lái)自加拿大的 OMINIGRES 創(chuàng)始人尤里提出 “database is the business architecture”,反映出了北美中小用戶在系統(tǒng)建設(shè)上的不同選擇,意味著將數(shù)據(jù)庫(kù)與數(shù)字化業(yè)務(wù)深度融合,充分挖掘數(shù)據(jù)庫(kù)潛能構(gòu)建業(yè)務(wù)系統(tǒng),這樣可以大大節(jié)約中小企業(yè)的IT投資。北美的IT建設(shè)注重實(shí)效,講求性價(jià)比,不像我們,哪怕IT投資十分捉襟見肘的企業(yè),不搞個(gè)中臺(tái),用點(diǎn)微服務(wù),CIO就好像沒(méi)干好一樣。
重視可維護(hù)性與代碼可讀性的企業(yè)業(yè)務(wù)系統(tǒng),應(yīng)用側(cè)承載業(yè)務(wù)邏輯優(yōu)勢(shì)顯著。以大型電商平臺(tái)繁雜的訂單處理流程為例,從用戶下單瞬間起,庫(kù)存扣減、支付確認(rèn)、物流調(diào)配等環(huán)節(jié)便緊密交織,且隨市場(chǎng)動(dòng)態(tài)、客戶喜好頻繁調(diào)整。此時(shí),若選用應(yīng)用程序代碼,如 Java 等編寫,開發(fā)人員遵循面向?qū)ο缶幊桃?guī)范,代碼結(jié)構(gòu)清晰,團(tuán)隊(duì)成員能輕松洞察業(yè)務(wù)邏輯脈絡(luò)。版本迭代時(shí),借助各類開發(fā)工具,代碼變更追蹤易如反掌,持續(xù)集成與部署高效推進(jìn)。同時(shí),完善的單元測(cè)試框架可對(duì)各功能模塊逐一 “體檢”,保障修改后的代碼質(zhì)量過(guò)硬。
當(dāng)跨數(shù)據(jù)庫(kù)兼容性成為企業(yè)剛需,應(yīng)用側(cè)處理更是當(dāng)仁不讓。倘若業(yè)務(wù)邏輯扎根于數(shù)據(jù)庫(kù)中,遷移成本將如雪球般越滾越大。反之,將業(yè)務(wù)邏輯封裝于應(yīng)用程序代碼,開發(fā)人員只需著力適配數(shù)據(jù)庫(kù)連接驅(qū)動(dòng),微調(diào)少量數(shù)據(jù)訪問(wèn)層代碼,即可低成本實(shí)現(xiàn)平穩(wěn)過(guò)渡。
不過(guò),在性能至上的領(lǐng)域,數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程和 SQL 則能夠發(fā)揮到極致。金融機(jī)構(gòu)每日直面海量交易數(shù)據(jù)沖擊,如股票交易系統(tǒng)的實(shí)時(shí)行情剖析、銀行的批量轉(zhuǎn)賬清算業(yè)務(wù)。存儲(chǔ)過(guò)程在數(shù)據(jù)庫(kù)服務(wù)器本地 “發(fā)力”,大幅削減數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)?“長(zhǎng)途奔波”,緊密貼合數(shù)據(jù)庫(kù)查詢優(yōu)化器、索引機(jī)制,實(shí)現(xiàn)數(shù)據(jù)的快速讀寫與復(fù)雜聚合運(yùn)算,即便高并發(fā)、大數(shù)據(jù)量來(lái)襲,系統(tǒng)響應(yīng)依舊穩(wěn)如泰山。
涉及關(guān)鍵業(yè)務(wù)數(shù)據(jù)操作,存儲(chǔ)過(guò)程更是數(shù)據(jù)一致性與安全性的忠誠(chéng)衛(wèi)士。一些關(guān)鍵業(yè)務(wù)必須作為原子事務(wù)處理,借由數(shù)據(jù)庫(kù)強(qiáng)大的事務(wù)管理能力與 ACID 特性,確保操作準(zhǔn)確穩(wěn)定高效,杜絕數(shù)據(jù)不一致的 “定時(shí)炸彈”。對(duì)外僅露有限接口,將核心業(yè)務(wù)邏輯深藏其中,讓外部惡意攻擊、非法篡改無(wú)機(jī)可乘。
對(duì)于成本敏感的企業(yè)建設(shè)IT系統(tǒng)時(shí),簡(jiǎn)單的中間件+數(shù)據(jù)庫(kù)+存儲(chǔ)過(guò)程架構(gòu)也可以大大節(jié)約系統(tǒng)建設(shè)成本,避免了復(fù)雜的前端應(yīng)用架構(gòu)。
傳統(tǒng)企業(yè)抉擇系統(tǒng)架構(gòu)的時(shí)候,應(yīng)道立足當(dāng)下業(yè)務(wù)痛點(diǎn),以未來(lái)發(fā)展藍(lán)圖為指引,審慎掂量應(yīng)用側(cè)與數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的長(zhǎng)短板,讓技術(shù)架構(gòu)精準(zhǔn)賦能企業(yè)運(yùn)營(yíng),如此才能多快好省地建設(shè)IT系統(tǒng)。
各位讀者,今天的文章是不是讀著有點(diǎn)費(fèi)勁?因?yàn)檫@篇文章是我和豆包聊天后生成的。我讀了以后,對(duì)今后退休后碼碼字賺點(diǎn)零花錢又多了幾分信心,因?yàn)榍皫滋煊信笥押臀艺f(shuō),豆包寫作已經(jīng)秒殺人類了。說(shuō)那話的哥們寫作水平一定很爛。豆包寫出來(lái)的東西雖然通順,但是不大像是人說(shuō)的話。
接下來(lái)用我自己的語(yǔ)氣來(lái)繼續(xù)這個(gè)話題,這句話可以翻譯為 “數(shù)據(jù)庫(kù)就是業(yè)務(wù)架構(gòu)”。從某種特定角度理解其合理性:
從數(shù)據(jù)驅(qū)動(dòng)的業(yè)務(wù)視角看,在現(xiàn)代企業(yè)中,業(yè)務(wù)架構(gòu)很大程度上依賴于數(shù)據(jù)。數(shù)據(jù)庫(kù)存儲(chǔ)了業(yè)務(wù)運(yùn)作所需的各種關(guān)鍵信息,例如客戶數(shù)據(jù)(包括客戶的基本信息、購(gòu)買歷史、偏好等)、產(chǎn)品數(shù)據(jù)(產(chǎn)品規(guī)格、庫(kù)存數(shù)量、價(jià)格等)以及交易數(shù)據(jù)(訂單信息、支付記錄等)。
從系統(tǒng)集成的角度看,企業(yè)通常會(huì)有多個(gè)不同的系統(tǒng),如客戶關(guān)系管理系統(tǒng)(CRM)、企業(yè)資源規(guī)劃系統(tǒng)(ERP)等。這些系統(tǒng)之間的集成往往是通過(guò)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)的。
不過(guò)這句話也有不完全準(zhǔn)確的方面。首先業(yè)務(wù)架構(gòu)還有其他的要素,業(yè)務(wù)架構(gòu)不僅僅包括數(shù)據(jù)庫(kù)。它還涉及到業(yè)務(wù)流程、組織架構(gòu)、業(yè)務(wù)規(guī)則等多個(gè)方面。業(yè)務(wù)流程定義了工作的順序和方式,組織架構(gòu)確定了人員的職責(zé)和分工,業(yè)務(wù)規(guī)則則規(guī)定了業(yè)務(wù)操作的準(zhǔn)則。
在戰(zhàn)略和目標(biāo)層面,業(yè)務(wù)架構(gòu)還需要考慮企業(yè)的戰(zhàn)略和業(yè)務(wù)目標(biāo)。企業(yè)的戰(zhàn)略決策會(huì)影響業(yè)務(wù)架構(gòu)的設(shè)計(jì),例如企業(yè)決定開拓新的市場(chǎng)或推出新的產(chǎn)品服務(wù)線,這會(huì)導(dǎo)致業(yè)務(wù)架構(gòu)的調(diào)整。數(shù)據(jù)庫(kù)雖然可以支持這些戰(zhàn)略變化,但它本身不是戰(zhàn)略的制定者,也不能完全體現(xiàn)企業(yè)在戰(zhàn)略和目標(biāo)層面上的業(yè)務(wù)架構(gòu)考慮。比如,企業(yè)的戰(zhàn)略是要提供高端個(gè)性化的服務(wù),這就需要在業(yè)務(wù)架構(gòu)中考慮如何設(shè)計(jì)服務(wù)流程、組織相應(yīng)的專業(yè)服務(wù)團(tuán)隊(duì)等,而數(shù)據(jù)庫(kù)只是記錄和輔助這些過(guò)程中產(chǎn)生的數(shù)據(jù)。
在業(yè)務(wù)全面數(shù)字化的趨勢(shì)下,數(shù)據(jù)庫(kù)的設(shè)計(jì)可以越來(lái)越緊密地與業(yè)務(wù)流程相結(jié)合。隨著數(shù)據(jù)治理的重要性日益凸顯,數(shù)據(jù)庫(kù)可以成為承載業(yè)務(wù)規(guī)則的載體。數(shù)據(jù)服務(wù)與業(yè)務(wù)功能也可以深度融合,數(shù)據(jù)庫(kù)可以提供豐富的數(shù)據(jù)服務(wù),這些服務(wù)能夠直接支持業(yè)務(wù)功能的實(shí)現(xiàn)。
二者相融合后會(huì)有以下的優(yōu)勢(shì):首先是提高業(yè)務(wù)敏捷性,當(dāng)數(shù)據(jù)庫(kù)與業(yè)務(wù)架構(gòu)融合后,企業(yè)能夠更快速地響應(yīng)市場(chǎng)變化,因?yàn)閿?shù)據(jù)庫(kù)和業(yè)務(wù)架構(gòu)的融合使得數(shù)據(jù)到業(yè)務(wù)決策再到業(yè)務(wù)行動(dòng)的鏈路更短,減少了中間環(huán)節(jié)的信息損耗和延遲。
其次是增強(qiáng)數(shù)據(jù)一致性和準(zhǔn)確性,在融合的環(huán)境下,業(yè)務(wù)規(guī)則在數(shù)據(jù)庫(kù)中得以實(shí)施,確保了數(shù)據(jù)的生成和更新符合業(yè)務(wù)要求,數(shù)據(jù)庫(kù)能夠準(zhǔn)確地更新信息,避免了數(shù)據(jù)不一致的情況,提高了數(shù)據(jù)的準(zhǔn)確性,從而為整個(gè)業(yè)務(wù)提供更可靠的數(shù)據(jù)支持。
第三是優(yōu)化資源配置,融合后的數(shù)據(jù)庫(kù)能夠更好地反映業(yè)務(wù)架構(gòu)中的資源需求和使用情況。企業(yè)可以合理安排設(shè)備維護(hù)時(shí)間,避免生產(chǎn)中斷,提高資源利用效率。
關(guān)于今天寫的這個(gè)問(wèn)題,其實(shí)在幾年前我和一個(gè)搞業(yè)務(wù)的老專家交流過(guò),他就提出了數(shù)模與業(yè)務(wù)模型脫節(jié)的問(wèn)題,他當(dāng)時(shí)問(wèn)我能不能不使用數(shù)據(jù)庫(kù)為中心,而是以業(yè)務(wù)模型為中心來(lái)構(gòu)建信息系統(tǒng),一切都圍繞業(yè)務(wù)建模。當(dāng)時(shí)我覺(jué)得他這個(gè)想法有點(diǎn)過(guò)于理想化,實(shí)現(xiàn)起來(lái)難度很大,因?yàn)闃I(yè)務(wù)是在不斷變化的,動(dòng)態(tài)的數(shù)據(jù)模型會(huì)讓應(yīng)用無(wú)法穩(wěn)定演進(jìn)。其實(shí)這個(gè)想法未必不能實(shí)現(xiàn),前提條件是數(shù)據(jù)庫(kù)要具備十分強(qiáng)大的多模融合能力和AI算法能力。這似乎也是數(shù)據(jù)庫(kù)技術(shù)正在奮斗的方向。