成功實(shí)施 Data Mesh 的十條指導(dǎo)建議
作者 | Kelsey Beyer
自2019年 Thoughtworks 員工 Zhamak Dehghani 首次提出 Data Mesh 概念以來(lái),Thoughtworks 便開(kāi)始嘗試在全球范圍內(nèi)與客戶共同實(shí)施 Data Mesh。
以下是根據(jù)我們的經(jīng)驗(yàn)總結(jié)的十項(xiàng)建議。對(duì)于每項(xiàng)建議,我們都指出了在實(shí)施過(guò)程中觀察到的反模式、我們推薦的替代方法及其原因。這些建議將按照組織中的層級(jí)順序從高到低列出。
1.僅靠自下而上是行不通的,應(yīng)當(dāng)盡早獲得自上而下的支持
一項(xiàng)新技術(shù)要獲得管理層的支持往往都存在一些挑戰(zhàn)。也正因?yàn)槿绱?,一?Data Mesh 的倡導(dǎo)者試圖通過(guò)“在特定領(lǐng)域?qū)嵤?Data Mesh、進(jìn)而構(gòu)建數(shù)據(jù)產(chǎn)品”的方式來(lái)自下而上地實(shí)施 Data Mesh。
然而,我們已經(jīng)看到,當(dāng)這些領(lǐng)域和數(shù)據(jù)產(chǎn)品試圖將 Data Mesh 擴(kuò)展到其他部門(mén)時(shí),會(huì)遇到一個(gè)無(wú)法逾越的障礙——其他部門(mén)不明就里,對(duì)這個(gè)整體方法持懷疑態(tài)度。
想要以自下而上的方式跨越部門(mén)界限,試圖改變他們的優(yōu)先級(jí)、資金、角色和責(zé)任會(huì)非常困難。當(dāng)有人詢問(wèn)“你是誰(shuí),為什么你要告訴我該怎么做?”時(shí),倡導(dǎo)者也會(huì)略顯尷尬。
平臺(tái)團(tuán)隊(duì)有時(shí)也會(huì)遇到同樣的問(wèn)題。他們應(yīng)該是最佳實(shí)踐的推動(dòng)者和教練:沒(méi)有自上而下的支持,他們無(wú)法改變數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)的工作方式、團(tuán)隊(duì)設(shè)置,甚至無(wú)法實(shí)施統(tǒng)一的數(shù)據(jù)治理策略。當(dāng)數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)試圖說(shuō)服非 Data Mesh 團(tuán)隊(duì)向他們提供數(shù)據(jù)訪問(wèn)權(quán)限或協(xié)助解釋數(shù)據(jù)時(shí),也會(huì)遇到類似的障礙。擴(kuò)展 Data Mesh 需要自上而下的授權(quán),以便在擁有不同優(yōu)先級(jí)和利益相關(guān)者之間創(chuàng)造共識(shí)和達(dá)成一致。
需要自上而下和自下而上的雙重支持:愿意從自下而上改變工作方式的團(tuán)隊(duì),以及支持這一變化的高層領(lǐng)導(dǎo)。
2.從運(yùn)營(yíng)模式開(kāi)始
實(shí)施 Data Mesh 需要同時(shí)在運(yùn)營(yíng)模式和技術(shù)方面作出改變,但前者常常被擱置,因?yàn)樗y撼動(dòng)了。因此,組織經(jīng)常嘗試采用技術(shù)優(yōu)先的方法來(lái)實(shí)施 Data Mesh。這種策略雖然能改善技術(shù)實(shí)踐,但通常在第一年內(nèi)就會(huì)失敗。這是因?yàn)橹С?Data Mesh 擴(kuò)展所需的結(jié)構(gòu)沒(méi)有得到充分的改變,以適應(yīng)新的工作方式。
誠(chéng)然,改變運(yùn)營(yíng)模式很難,但這卻是不可或缺的。甚至它應(yīng)該在 Data Mesh 計(jì)劃的第一天就同步實(shí)施。
Data Mesh 不是一個(gè)項(xiàng)目,它是一個(gè)企業(yè)級(jí)計(jì)劃。影響著各團(tuán)隊(duì)之間的協(xié)作方式,需要彼此配合和支持。因此,高層需要給予高度支持和幫助,以確保組織范圍內(nèi)的一致性。與此同時(shí),它還需要一定程度的變革管理,例如創(chuàng)建各種治理機(jī)構(gòu),重新定義角色和責(zé)任,以及提高組織的技術(shù)水平。轉(zhuǎn)型部門(mén)可以在此處提供幫助,通過(guò)將具有運(yùn)營(yíng)模式和技術(shù)知識(shí)的人聚集在一起,確保組織一致性。
總的來(lái)說(shuō),運(yùn)營(yíng)模式的改變可能令人望而生畏,但它是成功在組織內(nèi)實(shí)施 Data Mesh 的基本要素,需要盡早做。
3.以“代表組織領(lǐng)域?qū)ο蠛蛢?yōu)化效率及溝通”的方式定義領(lǐng)域
領(lǐng)域所有權(quán)是 Data Mesh 中的核心原則。這一點(diǎn)至關(guān)重要,因?yàn)樗_保了 Data Mesh 中的每個(gè)數(shù)據(jù)產(chǎn)品都由組織內(nèi)該特定領(lǐng)域的專家所擁有。其好處在于,它使得數(shù)據(jù)產(chǎn)品對(duì)于那些可能想要使用它的人來(lái)說(shuō)更加有用——它消除了某些術(shù)語(yǔ)在特定數(shù)據(jù)字段中含義的潛在混淆,并有助于減少不一致性。
換句話說(shuō),如果某些內(nèi)容不夠明確,領(lǐng)域所有者最適合進(jìn)行修正或提供必要的上下文。
當(dāng)然,這并非沒(méi)有挑戰(zhàn)。定義組織領(lǐng)域的界限以及誰(shuí)擁有什么,是困難的。這通常是由預(yù)先設(shè)定的預(yù)算和報(bào)告線,或潛在的政治暗流所引起的。因此,在一開(kāi)始,比較容易的方式是沿著現(xiàn)有功能的邊界定義領(lǐng)域。隨后,隨著項(xiàng)目的推進(jìn)和新信息的浮現(xiàn),可以進(jìn)一步對(duì)過(guò)于復(fù)雜的領(lǐng)域界限進(jìn)行分割,或重新分配領(lǐng)域界限。
更好的做法是,從定義一個(gè)領(lǐng)域開(kāi)始,隨著時(shí)間的推移作為一個(gè)迭代過(guò)程向外探索。已經(jīng)在其運(yùn)營(yíng)模式中采用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的組織,在進(jìn)行這種操作性轉(zhuǎn)變時(shí)會(huì)更加輕松。
最終,定義領(lǐng)域有多種方式。重要的是這些領(lǐng)域在組織的背景下講得通,有文檔記錄,并使溝通和流程更快、更高效。下面是一些可能的例子:
- 沿現(xiàn)有的業(yè)務(wù)單位或功能劃分
- 根據(jù)業(yè)務(wù)成果(如增加利潤(rùn)、提高客戶滿意度等目標(biāo))劃分
- 沿價(jià)值流(為客戶交付價(jià)值或成果的舉措)劃分
- 使用逆康威操作(即根據(jù)所需的架構(gòu)來(lái)構(gòu)建團(tuán)隊(duì),而不是讓現(xiàn)有的通信路徑和結(jié)構(gòu)來(lái)塑造它)
- 采用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
總結(jié)而言,領(lǐng)域定義使組織能夠識(shí)別數(shù)據(jù)的所有者和專家,并對(duì)溝通和協(xié)作渠道進(jìn)行高效地優(yōu)化。對(duì)于每個(gè)組織而言都是獨(dú)特的,盡管第一個(gè)領(lǐng)域的定義可能很困難,可以從組織最容易采用的方法開(kāi)始,在熟悉工作方式和責(zé)任后進(jìn)行持續(xù)演變。
4.同步構(gòu)建運(yùn)營(yíng)模式、數(shù)據(jù)治理和平臺(tái)
平臺(tái)將運(yùn)營(yíng)模式定義的角色、責(zé)任和工作方式以及數(shù)據(jù)治理定義的策略變?yōu)楝F(xiàn)實(shí)。
我們經(jīng)常看到的一個(gè)反模式是,運(yùn)營(yíng)模式和數(shù)據(jù)治理是分開(kāi)的、孤立的項(xiàng)目,每個(gè)項(xiàng)目都定義了一堆文檔,這些文檔被扔過(guò)墻給IT部門(mén)去實(shí)施。在這里,將“Data Mesh”視為一個(gè)產(chǎn)品可能會(huì)有所幫助,在其中運(yùn)營(yíng)模式、數(shù)據(jù)治理和平臺(tái)具有相同的基本目標(biāo)、假設(shè)、計(jì)劃和待辦事項(xiàng)列表。采用這種一體化方法,運(yùn)營(yíng)模式和數(shù)據(jù)治理理念可以通過(guò)數(shù)據(jù)產(chǎn)品進(jìn)行反復(fù)測(cè)試和優(yōu)化,而這些數(shù)據(jù)產(chǎn)品正是基于平臺(tái)能力得以實(shí)現(xiàn)的。
我們建議首先選擇的場(chǎng)景應(yīng)該將運(yùn)營(yíng)模式和數(shù)據(jù)治理策略定義為需求的一部分。
一個(gè)示例需求:
“當(dāng)數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)創(chuàng)建一個(gè)數(shù)據(jù)產(chǎn)品時(shí),它會(huì)自動(dòng)注冊(cè)到數(shù)據(jù)目錄中,并附上對(duì)其輸入端口、輸出端口、模式、服務(wù)級(jí)別協(xié)議(SLOs)、領(lǐng)域和領(lǐng)域所有者的描述,以增加組織內(nèi)數(shù)據(jù)產(chǎn)品的透明度。”
然后,平臺(tái)可以實(shí)現(xiàn)這樣的需求,之后相關(guān)的運(yùn)營(yíng)模式和數(shù)據(jù)治理辦公室可以監(jiān)控這種策略在 Data Mesh 生態(tài)系統(tǒng)中的影響和性能(以及其性能是否達(dá)到了定義的成功度量標(biāo)準(zhǔn))。
5.盡早建立一個(gè)良好的平臺(tái)
自助式數(shù)據(jù)平臺(tái)是 Data Mesh 的四個(gè)原則之一,它是關(guān)于數(shù)據(jù)產(chǎn)品能力、領(lǐng)域定義和治理策略決策的技術(shù)實(shí)現(xiàn)基礎(chǔ)。平臺(tái)以自助服務(wù)的方式為數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)提供能力,使他們無(wú)需等待平臺(tái)團(tuán)隊(duì)臨時(shí)創(chuàng)建資源和進(jìn)行數(shù)據(jù)集成。
采用 Data Mesh 方法,平臺(tái)團(tuán)隊(duì)不再負(fù)責(zé)維護(hù)和轉(zhuǎn)換數(shù)據(jù)以供分析師使用,而是負(fù)責(zé)提供構(gòu)建數(shù)據(jù)產(chǎn)品(自包含的可部署包)的能力,數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)可以請(qǐng)求并使用這些能力來(lái)維護(hù)他們的數(shù)據(jù)。
這些構(gòu)建數(shù)據(jù)產(chǎn)品的能力被稱為“架構(gòu)量子”(如《演進(jìn)式架構(gòu)》中所定義)。它們包含了數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)構(gòu)建其數(shù)據(jù)產(chǎn)品所需的一切,例如圍繞數(shù)據(jù)接入、存儲(chǔ)、分布式計(jì)算的數(shù)據(jù)轉(zhuǎn)換的基礎(chǔ)能力,與數(shù)據(jù)目錄工具的集成,數(shù)據(jù)質(zhì)量工具中的監(jiān)控和治理策略。有時(shí),對(duì)于不同類型的數(shù)據(jù)產(chǎn)品會(huì)提供多種選擇。這些實(shí)踐和模板使團(tuán)隊(duì)能夠盡可能輕松地交付數(shù)據(jù)產(chǎn)品。
由于自助式數(shù)據(jù)平臺(tái)是 Data Mesh 的主要推動(dòng)者,它們需要盡早建立。一個(gè)常見(jiàn)的錯(cuò)誤是組織在沒(méi)有基本平臺(tái)的情況下啟動(dòng)數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)。這些最初的數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)會(huì)因?yàn)榈却脚_(tái)開(kāi)發(fā)基線能力而陷入僵局?jǐn)?shù)月,這給正在進(jìn)行中的計(jì)劃帶來(lái)了壓力。在另一個(gè)極端,一些組織花費(fèi)數(shù)年時(shí)間試圖構(gòu)建了完美的平臺(tái),這需要耗費(fèi)太長(zhǎng)時(shí)間,而且維護(hù)和運(yùn)營(yíng)起來(lái)太困難。
正確的做法是介于兩者之間:一個(gè)“良好的平臺(tái)”是基于研究數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)實(shí)際需要什么而構(gòu)建的。一個(gè)經(jīng)過(guò)充分研究的自助式服務(wù)平臺(tái)在減少創(chuàng)建數(shù)據(jù)產(chǎn)品時(shí)可能發(fā)生的摩擦中起著重要作用。
為了避免花太多時(shí)間構(gòu)建完美的平臺(tái),我們建議從定義一組核心MVP(最小可行產(chǎn)品)能力開(kāi)始,這些能力“足夠好”,以便讓數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)快速移動(dòng),為組織提供價(jià)值,并繼續(xù)根據(jù)新的數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)和領(lǐng)域的經(jīng)驗(yàn)進(jìn)行迭代構(gòu)建和擴(kuò)展。
6.在新的 Data Mesh 平臺(tái)中復(fù)用現(xiàn)有技術(shù)
在 Data Mesh 的早期階段,許多客戶都會(huì)對(duì)所需的大量技術(shù)和工具感到壓力重重。實(shí)際上,盡管有些工具可能更適合 Data Mesh 的需求,但最理想的做法是在合理的情況下,利用起已有的技術(shù)棧、許可證和專業(yè)知識(shí)。隨后,可以添加自定義層以改善開(kāi)發(fā)人員體驗(yàn),并使用新工具來(lái)填補(bǔ)任何剩余的能力差距。
請(qǐng)注意,“復(fù)用現(xiàn)有技術(shù)”并不意味著“復(fù)用現(xiàn)有的或舊的平臺(tái)”。現(xiàn)有的或舊的平臺(tái)可能與 Data Mes h方法不兼容,因?yàn)?Data Mesh 需要在構(gòu)建平臺(tái)的方式上進(jìn)行關(guān)鍵的范式轉(zhuǎn)變。此外,復(fù)用不符合 Data Mesh 方法的舊平臺(tái)可能會(huì)增加額外的復(fù)雜性,提高成本并減慢您的速度。
我們建議首先對(duì)現(xiàn)有的技術(shù)進(jìn)行梳理,然后根據(jù) Data Mesh 自助數(shù)據(jù)平臺(tái)的需求以及你的數(shù)據(jù)產(chǎn)品要求,對(duì)這些技術(shù)進(jìn)行評(píng)估。對(duì)于那些符合要求且已足夠成熟,可以通過(guò)自助服務(wù)方式使用的工具(例如,提供了API接口,或者能夠?yàn)榱藢?shí)現(xiàn)基礎(chǔ)設(shè)施即代碼而聲明性地定義資源),應(yīng)予以保留和再利用。
7.場(chǎng)景先行,小步慢行
如果使用 Data Mesh 的項(xiàng)目失敗,其首要原因很可能是它們?cè)噲D過(guò)快地?cái)U(kuò)展規(guī)模。正確的操作是給予組織時(shí)間去學(xué)習(xí)和適應(yīng)變化。這種初步的耐心最終會(huì)帶來(lái)長(zhǎng)期的回報(bào)。
我們建議從包含兩到三個(gè)數(shù)據(jù)產(chǎn)品的場(chǎng)景開(kāi)始,這些產(chǎn)品在六個(gè)月的時(shí)間內(nèi)涵蓋運(yùn)營(yíng)模式、產(chǎn)品和技術(shù)三個(gè)維度。
可以理解的是,一些組織認(rèn)為這種方法“太保守”了。他們可能想要采取更激進(jìn)的方法,在開(kāi)始時(shí)同時(shí)啟動(dòng)幾個(gè)場(chǎng)景。我們發(fā)現(xiàn),涉及上述三個(gè)維度下的第一個(gè)數(shù)據(jù)產(chǎn)品通常需要六個(gè)月的時(shí)間來(lái)引導(dǎo)。一旦度過(guò)這一時(shí)期,就需要對(duì)數(shù)據(jù)產(chǎn)品所有者進(jìn)行培訓(xùn),并組建一個(gè)平臺(tái)團(tuán)隊(duì),以便開(kāi)始為平臺(tái)構(gòu)建新的能力。還需要新的模板和工作方式,以將組織從集中式轉(zhuǎn)變?yōu)榉稚⑹侥J健_€需要建立一個(gè) Data Mesh 治理委員會(huì),并制定一個(gè)路線圖,以增加額外的領(lǐng)域。
簡(jiǎn)而言之:不要在學(xué)會(huì)走路之前開(kāi)始跑。在旅途中會(huì)有很多學(xué)習(xí)的機(jī)會(huì)。不要錯(cuò)過(guò)它們。
8.審慎選擇您的首個(gè)場(chǎng)景
確定最初的場(chǎng)景可能會(huì)讓人感到挑戰(zhàn)重重,但重要的是要記住,并沒(méi)有唯一正確的答案。每個(gè)組織都有其獨(dú)特之處,您所做的決策將取決于您想要優(yōu)化的內(nèi)容以及您所在組織的風(fēng)險(xiǎn)承受能力。
例如,一些客戶選擇了非常緊急且復(fù)雜的場(chǎng)景。他們通常渴望解決組織中因效率低下和內(nèi)部政治斗爭(zhēng)而造成的阻礙。其他客戶則選擇了更為保守的路線,通過(guò)選擇一個(gè)簡(jiǎn)單、孤立的場(chǎng)景來(lái)測(cè)試組織對(duì) Data Mesh 的接受度。
與此同時(shí),其他客戶選擇優(yōu)化構(gòu)建多樣化的平臺(tái)能力。一個(gè)成熟的 Data Mesh 數(shù)據(jù)平臺(tái)提供了批量數(shù)據(jù)處理、近乎實(shí)時(shí)數(shù)據(jù)處理、數(shù)據(jù)分析、人工智能/機(jī)器學(xué)習(xí)(AI/ML)和數(shù)據(jù)治理的能力。選擇需要這些能力的場(chǎng)景,為并行構(gòu)建所有平臺(tái)能力的基礎(chǔ)工作設(shè)定了優(yōu)先級(jí)。
這種方法的另一個(gè)好處是,需要多種能力(例如機(jī)器學(xué)習(xí)和批量處理能力,這是常見(jiàn)的依賴關(guān)系)的場(chǎng)景成為首批場(chǎng)景的候選。然而,這種方法需要一個(gè)龐大且強(qiáng)大的平臺(tái)團(tuán)隊(duì),能夠處理產(chǎn)品思維和以兼容且可互操作的方式集成能力的復(fù)雜性。
在眾多方法和優(yōu)化途徑中,我們的建議是,從以下情況中選擇最初場(chǎng)景:
- 在組織現(xiàn)有能力范圍內(nèi)可管理
- 與業(yè)務(wù)目標(biāo)緊密相關(guān),并有明確的成功度量標(biāo)準(zhǔn)
- 可實(shí)現(xiàn)
由于內(nèi)部政治和過(guò)度優(yōu)化,選擇場(chǎng)景很容易讓人陷入困境,但通常沒(méi)有一個(gè)完美的場(chǎng)景。需要避免的一個(gè)常見(jiàn)錯(cuò)誤是“分析癱瘓”:即過(guò)度分析導(dǎo)致無(wú)法行動(dòng)。因此,應(yīng)該為這項(xiàng)工作設(shè)定一個(gè)時(shí)間限制,并從那些“足夠好”的用例開(kāi)始。
9.將數(shù)據(jù)產(chǎn)品納入平臺(tái)和運(yùn)營(yíng)模式的治理結(jié)構(gòu)
我們觀察到在IT驅(qū)動(dòng)的組織中存在一個(gè)反模式,即數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)的加入僅限于在平臺(tái)上的加入。實(shí)際上,將他們納入運(yùn)營(yíng)模式設(shè)立的組織流程同樣至關(guān)重要。
適當(dāng)?shù)丶尤脒\(yùn)營(yíng)模式流程中,可以讓數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)在各種討論中擁有代表權(quán),從而影響諸如特性優(yōu)先級(jí)等重要活動(dòng)。加入過(guò)程還包括將他們添加到正確的交流渠道,以確保他們不會(huì)錯(cuò)過(guò)關(guān)于新特性、發(fā)布和學(xué)習(xí)機(jī)會(huì)的重要信息。
從長(zhǎng)遠(yuǎn)來(lái)看,沒(méi)有加入運(yùn)營(yíng)模式的團(tuán)隊(duì)可能與更廣泛的 Data Mesh 生態(tài)系統(tǒng)的原則不一致。這可能導(dǎo)致各方的不滿和挫敗感。
10.要堅(jiān)定
在組織內(nèi)部實(shí)施 Data Mesh 時(shí),往往需要隨著時(shí)間的推移進(jìn)行重大變革,這些變革會(huì)影響到許多人、現(xiàn)有部門(mén)以及決策流程。當(dāng)組織的一部分抵制變化時(shí),這可能會(huì)變得困難。
可能會(huì)有人認(rèn)為,快速變化的組織——比如重視實(shí)驗(yàn)、對(duì)數(shù)據(jù)訪問(wèn)策略持更寬松態(tài)度的初創(chuàng)公司——與更加成熟、集中化、遺留問(wèn)題更頑固的大型企業(yè)組織所面臨的問(wèn)題不同,因此應(yīng)該區(qū)別對(duì)待。盡管這種說(shuō)法有一定道理,但實(shí)際情況是,無(wú)論組織類型如何,如果想要成功,就必須在實(shí)施和資源投入上做出變革的承諾。
我們最成功的 Data Mesh 采納者已經(jīng)做到了以下幾點(diǎn):
- 及早獲得了相關(guān)高層的支持
- 將 Data Mesh 作為組織的一部分,每個(gè)人都愿意通過(guò)全公司范圍的、以數(shù)據(jù)為先的理念參與 Data Mesh 的實(shí)踐和思維方式
- 人們?cè)敢馔度霑r(shí)間學(xué)習(xí)新方法并改變他們的流程
- 合適的人迅速被安排到合適的位置,一旦發(fā)現(xiàn)缺口就迅速投入資源
- 組織愿意接受并實(shí)施一個(gè)去中心化的模式
- 組織準(zhǔn)備好與領(lǐng)域保持一致(如果他們還沒(méi)有)
已經(jīng)下定決心全力以赴的組織,能夠更快(且成本更低)地通過(guò) Data Mesh 實(shí)現(xiàn)價(jià)值。這就是為什么為了變革的效率和成功,需要對(duì) Data Mesh 做出全面承諾的原因。
總結(jié)
Data Mesh 可能為您的組織帶來(lái)創(chuàng)新和積極影響,但前提是組織對(duì)正確實(shí)施它有堅(jiān)定的決心和承諾。變革固然充滿挑戰(zhàn),但只要采取了恰當(dāng)?shù)姆椒ê土鞒蹋陀锌赡芸朔砷L(zhǎng)的陣痛,最終實(shí)現(xiàn) Data Mesh 的成功。