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)