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