DataOps 不僅僅是資料的 DevOps!

語言: CN / TW / HK

DevOps 通常被描述為無限迴圈,而 DataOps 被描述為交叉的價值和創新管道

關於DataOps的一個常見誤解是它只是將DevOps 應用於資料分析。雖然在語義上有點誤導,但“DataOps”這個名字有一個積極的屬性。它表明資料分析可以實現軟體開發通過 DevOps 實現的目標。也就是說,當資料團隊使用新工具和方法時,DataOps 可以在質量和週期時間上產生一個數量級的改進。DataOps 實現這些收益的具體方式反映了資料團隊(相對於使用 DevOps 的軟體開發團隊)的獨特人員、流程和工具特徵。這是我們對 DataOps 和 DevOps 之間顯著和細微差異的深入探討。

01 DataOps 的知識遺產

DevOps是一種使用自動化加速構建生命週期(以前稱為釋出工程)的軟體開發方法。DevOps通過利用按需 IT 資源(基礎設施即程式碼)以及程式碼的自動化整合、測試和部署,專注於軟體的持續整合和持續交付。軟體開發和 IT 運營(“開發”和“運營”)的這種合併縮短了部署時間,縮短了上市時間,最大限度地減少了缺陷,並縮短了解決問題所需的時間。

使用DevOps,領先的公司已經能夠將他們的軟體釋出週期從幾個月縮短到(字面上)幾秒鐘。這使他們能夠在快節奏的新興市場中成長並處於領先地位。谷歌、亞馬遜和許多其他公司現在每天多次釋出軟體。通過提高程式碼釋出的質量和週期時間,DevOps 應該為這些公司的成功贏得很多讚譽。

優化程式碼構建和交付只是資料分析更大難題的一部分。DataOps 旨在減少資料分析的端到端週期時間,從想法的起源到創造價值的圖表、圖形和模型的文字建立。除了工具之外,資料生命週期還依賴於人。要使 DataOps 有效,它必須管理協作和創新。為此,DataOps 將敏捷開發引入資料分析中,以便資料團隊和使用者更高效地協同工作。

在敏捷開發中,資料團隊以稱為“衝刺”的短增量釋出新的或更新的分析。隨著創新的快速發生,團隊可以不斷地重新評估其優先事項並更輕鬆地適應不斷變化的需求。使用瀑布式專案管理方法,這種型別的響應是不可能的,這種方法將團隊鎖定在一個漫長的開發週期中,最後只有一個“大爆炸”交付。

 

研究表明,當敏捷開發取代傳統的瀑布順序方法時,敏捷軟體開發專案完成得更快且缺陷更少。敏捷方法在需求快速變化的環境中特別有效——這是資料分析專業人員所熟知的情況。在 DataOps 環境中,敏捷方法使組織能夠快速響應客戶需求並加快實現價值的時間。

敏捷開發和 DevOps 為資料分析增加了重要價值,但 DataOps 還有一個主要組成部分。敏捷和 DevOps 與分析開發和部署相關,而資料分析還管理和編排資料管道。資料不斷地從管道的一側進入,通過一系列步驟並以報告、模型和檢視的形式退出。資料管道是資料分析的“操作”端。將資料管道概念化為必須管理質量、效率、約束和正常執行時間的生產線是有幫助的。為了完全接受這種製造思維,我們將此管道稱為“資料工廠”。”

在 DataOps 中,通過操作的資料流是一個重要的關注領域。DataOps 編排、監控和管理資料工廠。一種特別強大的精益製造工具是統計過程控制(SPC)。SPC 測量和監控資料管道的資料和操作特徵,確保統計資料保持在可接受的範圍內。當 SPC 應用於資料分析時,它會顯著提高效率、質量和透明度。SPC 到位後,流經作業系統的資料被驗證為正常工作。如果發生異常情況,資料分析團隊將通過自動警報第一個知道。

雖然“DataOps”這個名稱暗示它從 DevOps 中借用最多,但這三種方法——敏捷、DevOps 和統計過程控制——構成了 DataOps 的知識遺產。敏捷管理分析開發,DevOps 優化程式碼驗證,構建和交付新的分析,SPC 協調和監控資料工廠。圖 1 說明了敏捷、DevOps 和統計流程控制如何流入 DataOps。

您可以在長達一個世紀的思想演變的背景下檢視 DataOps,這些思想改進了人們管理複雜系統的方式。它始於像Demming和統計過程控制這樣的先驅——這些想法逐漸以敏捷、DevOps 和現在的 DataOps 的形式進入技術領域。

02 DevOps與DataOps — 人為因素

如上所述,DataOps 與管理人員和工具一樣重要。DataOps 和 DevOps 之間的一個細微差別與利益相關者的需求和偏好有關。

DevOps 的建立是為了滿足軟體開發人員的需求。開發工程師喜歡編碼並擁抱技術。學習新語言或部署新工具的要求是機會,而不是麻煩。他們對程式碼建立、整合和部署的所有細節都非常感興趣。DevOps 包含複雜性。

DataOps 使用者通常與此相反。他們是專注於構建和部署模型和視覺化的資料科學家或分析師。科學家和分析師通常不像工程師那樣精通技術。他們專注於領域專業知識。他們感興趣的是讓模型更具預測性或決定如何最好地視覺呈現資料。用於建立這些模型和視覺化的技術只是達到目的的一種手段。資料專業人員最樂於使用一兩個工具——除此之外的任何工具都會增加不受歡迎的複雜性。在極端情況下,複雜性會超出他們的管理能力。DataOps 承認資料專業人員生活在一個多工具、異構的世界中,它試圖讓這個世界對他們來說更易於管理。

03 DevOps與DataOps — 流程差異

通過檢視資料分析開發和生命週期流程,我們可以開始瞭解資料專業人員面臨的獨特複雜性。我們發現,與軟體開發人員相比,資料分析專業人員面臨著既相似又獨特的挑戰。

DevOps 生命週期通常使用無限符號形狀的圖表來說明 - 參見圖 3。週期的結束(“計劃”)反饋到開始(“建立”),並且過程無限迭代。

DataOps 生命週期共享這些迭代屬性,但重要的區別是 DataOps 由兩個活動的相交管道組成(圖 4)。上面描述的資料工廠是一個管道。另一個管道控制資料工廠的更新方式——建立新分析並將其部署到資料管道中。

資料工廠將原始資料來源作為輸入,並通過一系列精心安排的步驟產生分析見解,為組織創造“價值”。我們稱之為“價值管道”。DataOps 自動化編排,並使用SPC監控流經價值管道的資料質量。

“創新管道”是將新的分析思想引入價值管道的過程。創新管道在概念上類似於 DevOps 開發過程,但經過仔細研究,有幾個因素使 DataOps 開發過程比 DevOps 更具挑戰性。圖 4 顯示了價值和創新管道的簡化檢視。

04 DevOps與DataOps — 開發和部署流程

DataOps 建立在 DevOps 開發模型之上。如圖5 所示,DevOps 流程包括軟體開發專案常見的一系列步驟:

開發——建立/修改應用程式

構建——組裝應用程式元件

測試——在測試環境中驗證應用程式

部署——將程式碼轉換為生產

執行——執行應用程式

DevOps 引入了兩個基本概念:持續整合(CI) 和持續部署(CD)。CI 在開發環境中不斷構建、整合和測試新程式碼。構建和測試是自動化的,因此它們可以快速重複地進行。這樣可以快速識別和解決問題。圖5 說明了 CI 如何包含 DevOps 的構建和測試過程階段。

CD 是一種部署或交付軟體的自動化方法。一旦應用程式通過了所有資格測試,DevOps 就會將其部署到生產環境中。CI 和 CD 一起解決了阻礙敏捷開發的主要約束。在 DevOps 之前,敏捷創造了一系列快速的更新和創新,這些更新和創新會在手動整合和部署過程中停滯不前。藉助自動化 CI 和 CD,DevOps 使公司能夠每天多次更新他們的軟體。

05 DataOps 中編排的二元性

需要注意的是,“編排”在圖 5 所示的 DataOps 流程中發生了兩次。正如我們上面解釋的,DataOps 編排資料工廠(價值管道)。資料工廠由一個包含許多步驟的管道過程組成。想象一個複雜的有向無環圖(DAG)。“協調器”可以是一個軟體實體,它控制步驟的執行、遍歷 DAG 並處理異常。例如,編排器可能會建立容器、使用上下文相關引數呼叫執行時程序、在階段之間傳輸資料以及“監控”管道執行。資料工廠的編排是圖 6 中 DataOps 流程中的第二個“編排”。

如上所述,創新管道具有資料管道的代表性副本,用於在部署到生產之前測試和驗證新分析。這是與“測試”結合並在“部署”新分析之前發生的編排——如圖 7 所示。

編排發生在價值和創新管道中。同樣,測試在 DataOps 中扮演著雙重角色。

06 DataOps 中測試的二元性

DataOps 中的測試在價值和創新管道中都有作用。在價值管道中,測試監控流經資料工廠的資料值,以捕捉異常或標記統計規範之外的資料值。在創新管道中,測試會在部署新分析之前對其進行驗證。

在 DataOps 中,測試以資料或程式碼為目標。我們使用圖 8 討論了這個概念。流經價值管道的資料是可變的,並且受統計過程控制和監控。測試針對的是不斷變化的資料。另一方面,價值管道中的分析是固定的,只能使用正式的釋出流程進行更改。在價值管道中,分析受到修訂控制,以最大限度地減少可能影響資料工廠的任何服務中斷。

在創新管道中,程式碼是可變的,資料是固定的。分析被修改和更新直到完成。沙盒設定完成後,資料通常不會更改。在創新管道中,測試針對的是程式碼(分析),而不是資料。在將新程式碼推廣(合併)到生產環境之前,所有測試都必須通過。一個好的測試套件可以作為一種自動化的影響分析形式,在部署之前執行在任何程式碼更改上。

一些測試同時針對資料和程式碼。例如,確保資料庫具有正確行數的測試有助於您的資料和程式碼協同工作。最終,資料測試和程式碼測試都需要整合到一個整合的管道中,如圖 4 所示。DataOps 使程式碼和資料測試能夠協同工作,因此始終保持高質量。

當工程師加入軟體開發團隊時,他們的第一步就是建立一個“沙箱”。沙盒是一個隔離的開發環境,工程師可以在其中編寫和測試新的應用程式功能,而不會影響正在並行開發其他功能的隊友。軟體開發中的沙盒建立通常很簡單——工程師通常會從隊友那裡收到一堆指令碼,並且可以在一兩天內配置一個沙盒。這是使用 DevOps 的團隊的典型思維方式。

從工具和資料的角度來看,資料分析中的沙箱通常更具挑戰性。首先,與典型的軟體開發團隊相比,資料團隊總體上傾向於使用更多的工具。有數以千計的工具、語言和供應商用於資料工程、資料科學、商業智慧、資料視覺化和治理。如果沒有大多數軟體開發團隊所特有的集中化,資料團隊往往會因分散在企業中的不同工具和資料孤島而自然而然地產生分歧。

07 DataOps 複雜性——測試資料管理

為了建立用於分析的開發環境,您必須建立資料工廠的副本。這需要資料專業人員複製可能具有安全性、治理或許可限制的資料。複製整個資料集可能不切實際或成本高昂,因此需要一些思考和謹慎來構建具有代表性的資料集。對多 TB 資料集進行取樣或過濾後,可能必須對其進行清理或編輯(刪除敏感資訊)。資料還需要基礎設施,由於技術障礙或許可證限制,這些基礎設施可能不容易複製。

測試資料管理的概念是 DataOps 中的首要問題,而在大多數 DevOps 環境中,這是事後才想到的。為了加速分析開發,DataOps 必須使用所需的資料、軟體、硬體和庫自動建立開發環境,以便創新與敏捷迭代保持同步。

08 DataOps 以兩種方式連線組織

DevOps 致力於幫助開發和運營(資訊科技)團隊以整合的方式協同工作。在 DataOps 中,這個概念如圖 11 所示。開發團隊是分析師、科學家、工程師、架構師和其他建立資料倉庫和分析的人。

在資料分析中,運營團隊支援和監控資料管道。這可以是 IT,但也包括客戶——建立和使用分析的使用者。DataOps 將這些團隊聚集在一起,以便他們可以更緊密地合作。

自由與中心化

DataOps 還將組織在另一個維度上結合在一起。大量資料分析開發發生在企業的偏遠角落,靠近業務部門,使用 Tableau、Alteryx 或 Excel 等自助服務工具。這些從事去中心化、分散式分析建立的本地團隊在向用戶提供創新方面發揮著至關重要的作用。賦予這些創造力口袋以保持企業的競爭力,但坦率地說,缺乏自上而下的控制會導致無法管理的混亂。

在一組(例如 IT)的控制下集中分析開發,使組織能夠標準化指標、控制資料質量、實施安全和治理,並消除資料孤島。問題是過多的中心化會扼殺創造力。

DataOps 的一個重要優勢是它能夠協調資料分析的分散式和集中式開發之間的來回——兩者之間的緊張關係集權與自由. 在 DataOps 企業中,新的分析在本地創新領域產生並經過改進。當一個想法被證明有用或值得更廣泛地分發時,它會被提升為一個集中的開發團隊,他們可以更有效、更穩健地大規模實施它。

DataOps 將本地化和集中式開發結合在一起,使組織能夠在保持本地化開發的同時獲得集中化的效率——創新矛的尖端。DataOps 將企業跨兩個維度整合在一起,如圖 13 所示——開發/運營以及分散式/集中式開發。

DataOps 在組織中的核心團隊之間帶來了三個創新週期:集中的生產團隊、集中的資料工程/分析/科學/治理開發團隊,以及使用自助服務工具的團隊,這些團隊分佈在離客戶最近的業務線中。圖 14 顯示了創新的連鎖迴圈。

09 企業示例:資料分析生命週期複雜性

在高層次研究了 DataOps 開發過程之後,讓我們來看看企業環境中的開發生命週期。圖 14 說明了從開始到生產的分析過程的複雜性。分析首先由個人建立和開發,然後合併到團隊專案中。完成單元驗收測試後(UAT),分析進入生產。DataOps 的目標是在個人開發環境中建立分析,進入生產環境,接收使用者的反饋,然後通過進一步的迭代不斷改進。由於人員、工具、程式碼、版本、手動程式/自動化、硬體、作業系統/庫和目標資料的差異,這可能具有挑戰性。圖 14 中的列顯示了這四種環境中每一種環境的不同特徵。

如果沒有 DataOps,在這四個完全不同的環境中將分析推向生產環境的挑戰是艱鉅的。它需要拼湊起來的手動操作和指令碼,這些指令碼本身管理起來很複雜。人工流程容易出錯,因此資料專業人員通過長時間工作來彌補,錯誤地依賴希望和英雄主義來取得成功。所有這些都會導致不必要的複雜性、混亂和大量時間和精力的浪費。圖15 所示的生命週期進展緩慢,再加上高嚴重性錯誤進入生產環境,可能會使資料分析團隊幾乎沒有時間進行創新。

寫在最後的話

DataOps 簡化了資料分析建立和操作的複雜性。它將資料分析開發與使用者優先順序保持一致。它簡化並自動化了分析開發生命週期——從沙箱的建立到部署。DataOps 控制和監控資料工廠,因此資料質量保持高水平,使資料團隊專注於增加價值。

您可以通過執行這七個步驟來開始使用 DataOps 。您還可以採用DataOps 平臺,該平臺將在現有工具和基礎架構的上下文中支援 DataOps 方法。

DataOps 平臺可自動執行構成 DataOps 的步驟和流程:沙盒管理、編排、監控、測試、部署、資料工廠、儀表板、敏捷等。DataOps 平臺專為資料專業人員而構建,旨在將他們所需的所有工具、步驟和流程簡化為易於使用、可配置的端到端系統。這種高度自動化消除了大量的手動工作,使團隊騰出時間來建立新的創新分析,從而最大限度地提高組織資料的價值。

 


作者:DataKitchen

文章來源:DataOps 不僅僅是資料的 DevOps! (uml.org.cn)