DataOps 是現代數據堆棧的未來嗎?
譯文在DevOps掀起軟件工程風暴之前,一旦他們的應用程序開始運行,開發人員就被蒙在鼓里。工程師們不是在第一時間知道故障發生,而是在客戶或利益相關者抱怨 "網站滯后 "或503頁面太多時才會發現。
不幸的是,這會導致了同樣的錯誤反復發生,因為開發人員缺乏對應用程序性能的洞察力,不知道在發生故障時從哪里開始調試他們的代碼。
所以現在廣泛采用DevOps概念,要求在軟件部署和開發過程中,開發人員(Dev)和運營(Ops)團隊之間進行協作和持續迭代來解決上述問題。
到2010年中期,大型的數據優先公司,如Netflix、Uber和Airbnb已經采用了持續集成/持續部署(CI/CD)原則,甚至建立了開源工具來促進其數據團隊的發展,DataOps也就誕生了。
事實上,如果你是一個數據工程師,你可能已經在你的堆棧中應用了DataOps流程和技術,無論你是否意識到這一點。
在過去的幾年里,DataOps在各種規模的數據團隊中越來越受歡迎,它是一個能夠快速部署數據管道的框架,同時還能提供可靠和值得信賴的數據,并且隨時可用。
什么是數據運維?
DataOps 是一門融合數據工程和數據科學團隊以支持組織的數據需求的學科,其方式類似于 DevOps 幫助擴展軟件工程的方式。
與 DevOps 如何將 CI/CD 應用于軟件開發和運營類似,DataOps 需要一種類似于 CI/CD、自動化優先的方法來構建和擴展數據產品。同時,DataOps 使數據工程團隊更容易為分析師和其他下游利益相關者提供可靠的數據來推動決策。
DataOps 與 DevOps
雖然 DataOps 與 DevOps 有許多相似之處,但兩者之間存在重要區別。
關鍵區別在于 DevOps 是一種將開發和運營團隊聚集在一起以提高軟件開發和交付效率的方法,而 DataOps 專注于打破數據生產者和數據消費者之間的孤島,使數據更加可靠和有價值。
多年來,DevOps 團隊已成為大多數工程組織不可或缺的一部分,消除了軟件開發人員和 IT 之間的孤島,因為他們促進了軟件無縫且可靠地發布到生產中。隨著 DevOps 的發展以及為它們提供動力的技術堆棧的復雜性開始增加,DevOps 在組織中越來越受歡迎。
為了保持系統整體健康狀況的持續變化,DevOps 工程師利用可觀察性來監控、跟蹤和分類事件,以防止應用程序停機。
軟件可觀察性包括三個支柱:
- 日志:在給定時間戳發生的事件的記錄。日志還為發生的特定事件提供上下文。
- 指標:在一段時間內測量的數據的數字表示。
- Traces:表示分布式環境中相互關聯的事件。
總之,可觀察性的三個支柱使 DevOps 團隊能夠預測未來的行為并信任他們的應用程序。
同樣,DataOps 的紀律可幫助團隊消除孤島并更有效地工作以在整個組織內交付高質量的數據產品。
隨著公司開始從各種來源攝取大量數據,DataOps 專業人員還利用可觀察性來減少停機時間。
數據可觀察性是組織充分了解其系統中數據健康狀況的能力。它通過監控和提醒團隊可能在數天、數周甚至數月內未被發現的事件,減少數據停機的頻率和影響(數據不完整、錯誤、丟失或其他不準確的時間段)。
與軟件可觀察性一樣,數據可觀察性包括自己的一組支柱:
- 新鮮度:數據是最新的嗎?最后一次更新是什么時候?
- 分布:數據是否在可接受的范圍內?它是預期的格式嗎?
- 卷:所有數據都到了嗎?是否有任何數據重復或從表中刪除?
- 架構:架構是什么,它有變化嗎?對架構的更改是故意的嗎?
- 沿襲:哪些上游和下游依賴項連接到給定的數據資產?誰依賴這些數據進行決策,這些數據在哪些表中?
通過深入了解這些支柱的數據狀態,DataOps 團隊可以了解并主動解決數據生命周期每個階段的質量和可靠性問題。
數據運維框架
為了更快、更可靠地從數據中獲得洞察力,DataOps 團隊應用了一個持續的反饋循環,也稱為 DataOps 生命周期。DataOps 生命周期從 DevOps 生命周期中汲取靈感,但考慮到數據不斷變化的性質,它結合了不同的技術和流程。DataOps 生命周期允許數據團隊和業務利益相關者協同工作,為組織提供更可靠的數據和分析。
以下是 DataOps 生命周期在實踐中的樣子:
- 計劃:與產品、工程和業務團隊合作,為數據的質量和可用性設置 KPI、SLA 和 SLI(下一節將詳細介紹)。
- 開發:構建將為你的數據應用程序提供動力的數據產品和機器學習模型。
- 集成:將代碼和/或數據產品集成到你現有的技術和/或數據堆棧中。(例如,你可以將 DBT 模型與 Airflow 集成,以便 DBT 模塊可以自動運行。)
- 測試:測試你的數據以確保它符合業務邏輯并滿足基本操作閾值(例如數據的唯一性或無空值)。
- 發布:將你的數據發布到測試環境中。
- 部署:將你的數據合并到生產中。
- 操作:將你的數據運行到應用程序中,例如為機器學習模型提供數據的 Looker 或 Tableau 儀表板和數據加載器。
- 監控:持續監控數據中的任何異常并發出警報。
這個循環會一遍又一遍地重復。然而,通過將 DevOps 的類似原則應用于數據管道,數據團隊可以更好地協作,從一開始就識別、解決甚至防止數據質量問題的發生。
DataOps 的五個最佳實踐
與我們在軟件開發領域的朋友類似,數據團隊也開始效仿,將數據視為產品。
數據是組織決策過程的關鍵部分,數據團隊也開始將數據視為產品,并將產品管理思維應用于構建、監控和測量數據產品的方式有助于確保這些決策基于準確、可靠的洞察力。
在過去幾年與數百個數據團隊交談后,我們總結了五個關鍵的 DataOps 最佳實踐,可以幫助你更好地適應這種“數據就像產品”的方法。
1. 盡早讓利益相關者在 KPI 上達成一致,并定期重新審視它們。
由于你將數據視為產品,因此內部利益相關者就是你的客戶。因此,盡早與關鍵數據利益相關者保持一致并就誰使用數據、他們如何使用數據以及用于什么目的達成一致至關重要。為關鍵數據集制定服務水平協議 (SLA) 也很重要。與利益相關者就良好的數據質量達成一致有助于你避免在 KPI 或無關緊要的測量上出現旋轉周期。
在你和你的利益相關者達成一致后,你應該定期與他們核對以確保優先級仍然相同。Red Ventures 的高級數據科學家 Brandon Beidel 每周與公司的每個業務團隊會面,討論他的團隊在 SLA 方面的進展。
“我總是用簡單的商業術語來構建對話,并專注于'誰、什么、何時、何地以及為什么,”布蘭登告訴我們。“我特別會問一些關于數據新鮮度限制的問題,我發現這對業務利益相關者特別重要。”
2.自動化盡可能多的任務
DataOps 的主要關注點之一是數據工程自動化。數據團隊可以自動執行通常需要數小時才能完成的死記硬背任務,例如單元測試、硬編碼攝取管道和工作流編排。
通過使用自動化解決方案,你的團隊可以減少人為錯誤進入數據管道的可能性并提高可靠性,同時幫助組織做出更好、更快的數據驅動決策。
3. 擁抱“運送和迭代”文化
對于大多數數據驅動的組織而言,速度至關重要。而且,你的數據產品可能不需要 100% 完美才能增加價值。我的建議?構建一個基本的 MVP,對其進行測試,評估你的學習成果,并根據需要進行修改。
我的第一手經驗表明,通過使用實時數據在生產中進行測試和迭代,可以更快地構建成功的數據產品。團隊可以與相關利益相關者合作,監控、測試和分析模式,以解決任何問題并改善結果。如果你定期執行此操作,你將減少錯誤并降低錯誤進入數據管道的可能性。
4. 投資自助服務工具
DataOps 的一個關鍵好處是消除了數據在業務利益相關者和數據工程師之間的孤島。為了做到這一點,業務用戶需要能夠自助滿足自己的數據需求。
業務利益相關者可以在需要時訪問他們需要的數據,而不是滿足業務用戶的臨時請求(這最終會減慢決策制定)的數據團隊。Intuit 的前工程副總裁 Mammad Zadeh 認為,自助服務工具在整個組織中啟用 DataOps 方面發揮著至關重要的作用。
“中央數據團隊應確保數據的生產者和消費者都可以使用正確的自助式基礎設施和工具,以便他們能夠輕松完成工作,”Mammad 告訴我們。“為他們配備正確的工具,讓他們直接互動,并讓他們走開。”
5. 優先考慮數據質量,然后擴展
在擴展的同時保持高數據質量并非易事。因此,從你最重要的數據資產開始——你的利益相關者在做出重要決策時所依賴的信息。
如果給定資產中的不準確數據可能意味著時間、資源和收入的損失,請注意這些數據以及通過數據質量功能(如測試、監控和警報)推動這些決策的管道。然后,繼續構建你的能力以涵蓋更多數據生命周期。(回到最佳實踐#2,請記住,大規模數據監控通常涉及自動化。)
組織可以從 DataOps 中受益的四種方式
雖然 DataOps 的存在是為了消除數據孤島并幫助數據團隊協作,但團隊在實施 DataOps 時可以實現其他四個關鍵優勢。
1. 更好的數據質量
公司可以在其管道中應用 DataOps 以提高數據質量。這包括自動化日常任務,例如測試和引入端到端可觀察性,并在數據堆棧的每一層(從攝取到存儲到轉換到 BI 工具)進行監控和警報。
這種自動化和可觀察性的結合減少了人為錯誤的機會,并使數據團隊能夠快速主動地響應數據停機事件——通常是在利益相關者意識到出現任何問題之前。
通過實施這些DataOps 實踐,業務利益相關者可以獲得更好的數據質量,遇到更少的數據問題,并在整個組織內建立對數據驅動決策的信任。
2. 更快樂、更高效的數據團隊
平均而言,數據工程師和科學家至少花費 30% 的時間來解決數據質量問題,而 DataOps 的一個關鍵部分是創建一個自動化且可重復的流程,從而釋放工程時間。
將繁瑣的工程任務(例如連續代碼質量檢查和異常檢測)自動化可以改善工程流程,同時減少組織內部的技術債務量。
DataOps 讓團隊成員更快樂,他們可以將寶貴的時間集中在改進數據產品、構建新功能和優化數據管道上,以加快實現組織數據價值的時間。
3. 更快地獲得分析見解
DataOps 可自動執行通常需要花費無數小時才能完成的測試和異常檢測等工程任務。因此,DataOps 為數據團隊帶來了速度,促進了數據工程和數據科學團隊之間更快的協作。
數據產品的較短開發周期降低了成本(在工程時間方面),并允許數據驅動的組織更快地實現其目標。這是可能的,因為多個團隊可以在同一個項目上并肩工作以同時交付結果。
根據我的經驗,DataOps 促進不同團隊之間的協作可以帶來更快的洞察力、更準確的分析、改進的決策制定和更高的盈利能力。如果 DataOps 得到充分實施,團隊可以實時訪問數據并調整決策,而不是等待數據可用或請求臨時支持。
4. 降低運營和法律風險
隨著組織努力通過使訪問民主化來增加數據的價值,道德、技術和法律方面的挑戰也將不可避免地增加。通用數據保護條例 (GDPR)和加州消費者隱私法案 (CCPA)等政府法規已經改變了公司處理數據的方式,并在公司努力將數據直接交到更多團隊手中時引入了復雜性。
DataOps——特別是數據可觀察性——可以通過提供更多的可見性和透明度來幫助解決這些問題,即用戶對數據的操作、數據饋入哪些表以及誰可以訪問上游或下游的數據。
在你的公司實施 DataOps
關于數據運營的好消息?采用現代數據堆棧和其他最佳實踐的公司可能已經將 DataOps 原則應用到他們的管道中。
例如,越來越多的公司正在招聘DataOps 工程師來推動數據在決策中的應用——但這些職位描述包括你公司的數據工程師可能已經在處理的職責。DataOps 工程師通常負責:
- 開發和維護可部署、測試和記錄的自動化設計腳本、流程和程序庫。
- 與其他部門合作,將源系統與數據湖和數據倉庫集成。
- 為測試數據管道創建和實施自動化。
- 在影響下游利益相關者之前主動識別和修復數據質量問題。
- 通過投資自助服務工具或為業務利益相關者運行培訓計劃,提高整個組織的數據意識。
- 熟悉數據轉換、測試和數據可觀察性平臺,以提高數據可靠性。
即使其他團隊成員目前正在監督這些職能,擁有一個專門負責構建 DataOps 框架如何實現的角色將增加責任感并簡化采用這些最佳實踐的過程。
無論你的團隊成員擁有什么職位,就像沒有應用程序可觀察性就無法擁有 DevOps 一樣,沒有數據可觀察性就無法擁有 DataOps。
數據可觀察性工具使用自動監控、警報和分類來識別和評估數據質量和可發現性問題。這會帶來更健康的管道、更高效的團隊和更快樂的客戶。
?
原文標題:??https://dzone.com/articles/is-dataops-the-future-of-the-modern-data-stack??