DataOps是現代資料棧的未來嗎?

danny_2018發表於2023-11-07

隨著資料擴充套件需求,團隊需要開始優先考慮其可靠性。本文主要探究為什麼 DataOps是可能的答案,以及我們該如何開始DataOps。

在DevOps席捲軟體工程領域之前,一旦他們的應用程式啟動並開始執行,應用程式便如黑盒一般,開發人員無從知曉。

工程師往往等到客戶或者相關使用者抱怨“網站訪問緩慢”或者503頁面過多時,才會發現系統何時發生了中斷。

不幸的是,這導致相同的錯誤反覆發生,因為開發人員缺乏對應用程式效能的洞察力,並且一旦出現故障,不知道從哪裡開始除錯他們的程式碼。

那解決方案呢?現在廣泛採用的DevOps概念是一種新方法,它要求在軟體部署和開發過程中開發人員 (Dev) 和運維團隊 (Ops)之間進行協作和持續迭代。

到了2015年左右,Netflix、Uber 和 Airbnb等大型資料導向的公司已經採用持續整合/持續部署 (CI/CD) 原則,甚至構建開源工具來促進資料團隊的成長,於是DataOps誕生了。

事實上,如果不管資料工程師有沒有意識到這一點,他都可能已經將DataOps流程和技術應用到堆疊中了。

在過去的幾年裡, DataOps作為一個框架在各種規模的資料團隊中越來越受歡迎,它支援快速部署資料流水線,同時仍然提供可靠的、值得信賴的、隨時可用的資料。

DataOps可以使任何企業受益,這就是為什麼我們要整理一份指南,來幫助大家消除對有關方面的誤解。

在本指南中,我們將解釋下面幾個問題。

PART 01

什麼是DataOps?

DataOps是一門融合資料工程和資料科學團隊以滿足企業在資料方面的需求的方法論,類似於DevOps幫助擴充套件軟體工程的方式。

與 DevOps將 CI/CD 應用於軟體開發和運維的方式類似,DataOps需要一種類似於CI/CD、自動化優先的方法來構建和擴充套件資料產品。同時, DataOps使資料工程團隊更容易為分析師和其他下游使用人員提供可靠的資料來驅動決策。

PART 02

DataOps與DevOps

雖然DataOps與DevOps有許多相似之處,但兩者之間也有重要區別。

其中關鍵區別是DevOps是一種將開發和運維團隊聚集在一起,以提高軟體開發和交付效率的方法,而DataOps專注於打破資料生產者和資料消費者之間的孤島,使資料更加可靠和更有價值。

多年來,DevOps團隊已成為大多數科技企業不可或缺的一部分,消除了軟體開發人員和IT人員之間的隔閡,促進了軟體無縫且可靠地釋出到產品中。隨著DevOps在企業中越來越受歡迎,支援它們的技術棧開始變得越來越複雜。

為了保持系統整體處於健康狀況,DevOps工程師利用可觀察性來監控、跟蹤和分類事件,以防止應用程式停機。

軟體可觀察性包括三個支柱:

日誌:記錄給定時間戳發生的事件,同時為發生的特定事件提供上下文。

指標:用數字表示一段時間內測量的資料。

跟蹤:表示分散式環境中相互關聯的事件。

總之,可觀察性的三個支柱使DevOps團隊能夠預測未來的行為並信任他們的應用程式。

類似地,DataOps原則可幫助團隊消除隔閡並更有效地工作,從而在整個企業內交付高質量的資料產品。

隨著公司開始從各種來源獲取大量資料,DataOps專業人員還利用可觀察性來減少停機時間。

資料可觀察性是企業充分了解其系統中資料健康狀況的能力。它透過對在數天、數週甚至數月內未被檢測到的事件進行監控和告警,從而降低資料停機時間的頻率和影響(資料不完整、錯誤、丟失或其他不準確的時間段)。

與軟體可觀察性一樣,資料可觀察性包括自己的一組支柱:

新鮮度:資料是最新的嗎?最後一次更新是什麼時候?

分佈:資料是否在可接受的範圍內?是否符合預期的格式嗎?

卷:所有資料都到了嗎?表中是否有重複或刪除的資料?

架構:架構是什麼,它有變化嗎?對架構的更改是主動進行的嗎?

沿襲:哪些上游和下游的相關性連線到給定的資料資產?誰依賴這些資料進行決策,這些資料在哪些表中?

PART 03

DataOps框架

為了更快、更可靠地洞察資料, DataOps團隊應用了一個持續的反饋迴圈,也稱為DataOps生命週期。DataOps生命週期是從DevOps生命週期中汲取靈感,但考慮到資料不斷變化的特性,它融合了不同的技術和流程。DataOps生命週期允許資料團隊和業務團隊協同工作,為企業提供更可靠的資料和分析。

以下是實際的DataOps生命週期:

規劃:與產品、工程和業務團隊合作,為資料的質量和可用性設定KPI、SLA和SLI。

開發:構建資料產品和機器學習模型,為資料應用程式提供生產力。

整合:將程式碼和資料產品(或其中之一)整合到現有的技術和資料棧中(或其中之一),例如,將DBT模型與Airflow整合,以便DBT模組可以自動執行。

測試:測試資料以確保其符合業務邏輯並滿足基本操作閾值(例如資料的唯一性或無空值)。

釋出:將資料釋出到測試環境中。

部署:將資料合併到生產環境中。

操作:將資料執行到應用程式中,例如為機器學習模型提供資料的Looker或Tableau儀錶板和資料載入器。

監控:持續監控資料中的任何異常併發出警報。

這個迴圈會不斷重複。透過將DevOps的類似原則應用於資料流水線,資料團隊可以更好地協作,從而一開始就識別、解決甚至防止資料質量問題的發生。

PART 04

DataOps的五個最佳實踐

與我們在軟體開發領域的朋友類似,資料團隊也開始效仿,將資料視為產品。

資料是企業決策過程的關鍵部分,將產品管理思維應用到如何構建、監控和測量資料產品,有助於確保這些決策能基於準確、可靠的資訊。

在過去幾年與數百個資料團隊交談後,我們總結了五個關鍵的DataOps最佳實踐,可以幫助您更好地適應這種“資料即產品”的方法。

1、儘早讓有關人員在KPI上達成一致,並定期重新審視它們

既然企業將資料視為產品,那麼內部有關人員就是企業的客戶。因此,儘早與資料的關鍵有關人員保持一致,並就誰使用資料、他們如何使用資料以及用於什麼目的達成一致是至關重要的。

為關鍵資料集制訂服務水平協議(SLA)也很重要。與有關人員就“什麼樣的資料質量標準才是對的”達成一致,有助於企業避免在哪些是KPI,哪些是無關緊要的指標,以及類似的問題反覆討論。

在和有關人員達成一致看法後,企業應該定期與他們核對以確保優先順序仍然一致。Red Ventures的高階資料科學家Brandon Beidel每週與公司的每個業務團隊會面,討論團隊在 SLA方面的進展。

“我總是用簡單的商業術語來企業對話,並專注於誰、什麼、何時、何地以及為什麼”,布蘭登告訴我們。“我特別想問一些關於資料新鮮度限制的問題,我發現這對業務有關人員特別重要。”

2、儘可能多的任務自動化

DataOps的主要關注點之一是資料工程自動化。資料團隊可以將通常需要數小時才能完成的機械任務自動化,例如單元測試、硬編碼獲取管道和工作流編排。

透過使用自動化解決方案,團隊可以減少人為錯誤進入資料流水線的可能性並提高可靠性,同時幫助企業做出更好、更快的基於資料的決策。

3、擁抱“交付和迭代”文化

對於大多數資料驅動的企業而言,速度至關重要。而且,資料產品並不需要百分百完美才能增加價值。我的建議就是構建一個基本的MVP,對其進行測試,評估學習成果,並根據需要進行修改。

我的第一手經驗表明,透過在生產中使用實時資料進行測試和迭代,可以更快地構建成功的資料產品。團隊可以與相關人員協作,監控、測試和分析模式,以解決任何問題並改善結果。如果經常這樣做,將會有更少的錯誤並降低錯誤進入資料流水線的可能性。

4、引進自助服務工具

DataOps的一個重要好處是消除了資料在業務人員和資料工程師之間的隔閡。為了做到這一點,業務使用者需要能夠透過自助工具滿足自己的資料需求。

業務人員可以在需要時訪問他們需要的資料,而不是讓資料團隊來滿足業務使用者的臨時請求(這最終會減緩決策制定的速度)。Intuit的前工程副總裁Mammad Zadeh認為,自助服務工具在跨企業啟用DataOps方面發揮至關重要的作用。

“資料中心團隊應確保資料的生產者和使用者都可以使用正確的自助式基礎設施和工具,以便他們能夠輕鬆完成工作,”Mammad告訴我們,“為他們配備正確的工具,讓他們直接互動,不要設定任何障礙。”

5、優先考慮資料質量,然後才是擴充套件規模

在擴充套件的同時保持高資料質量並非易事。因此,從最重要的資料資產開始——沒錯,就是有關人員在做出重要決策時所依賴的資訊。

如果資料資產中不準確的資料可能意味著時間、資源和收入的損失,請注意這些資料以及透過資料質量功能(如測試、監控和警報)支援這些決策的實施。然後,繼續構建企業的能力以涵蓋更多資料生命週期。(回到最佳實踐第2條,請記住,大規模資料監控通常會涉及自動化。)

PART 05

企業可以從DataOps中受益的四種方式

雖然DataOps的存在是為了消除資料孤島並幫助資料團隊協作,但團隊在實施DataOps時可以實現其他四個好處。

1、更好的資料質量

公司可以在其流水線中應用DataOps以提高資料質量。這包括自動化日常任務,例如測試和引入端到端可觀察性,並在資料棧的每一層(從獲取到儲存到轉換到BI工具)進行監控和警報。

這種自動化和可觀察性的結合降低了人為錯誤的機會,並使資料團隊能夠快速主動地響應資料停機事件——通常是在有關人員意識到出現任何問題之前。

有了這些DataOps實踐,業務人員可以獲得質量更高的資料,遇到更少的資料問題,並在整個企業內建立對基於資料的決策的信任。

2、更快樂、更高效的資料團隊

平均來說,資料工程師和科學家至少花費30%的時間來解決資料質量問題,而DataOps的一個關鍵部分是建立一個自動化且可重複的流程,這反過來為資料工程師和資料科學家節省了時間。

將繁瑣的工程任務(例如連續程式碼質量檢查和異常檢測)自動化可以改善工程流程,同時減少企業內部的技術債務。

DataOps讓團隊成員更快樂,他們可以將寶貴的時間集中在改進資料產品、構建新功能和最佳化資料流水線上,以加快企業資料的價值實現的速度。

3、更快地獲得分析見解

DataOp可自動執行通常需要花費數小時才能完成的測試和異常檢測等工程任務。因此, DataOps為資料團隊帶來了速度,促進了資料工程和資料科學團隊之間更快的協作。

更短的資料產品開發週期可以降低成本(就工程時間而言),並允許資料驅動的企業更快地實現其目標。這是可能的,因為多個團隊可以在同一個專案上並肩工作以同時交付結果。

根據我的經驗, DataOps促進不同團隊之間的協作可以帶來更準確的洞察和分析,從而改進的決策制定能力,並帶來更高的利潤。如果充分實現了DataOps,團隊就可以實時訪問資料並調整他們的決策,而不是等待資料可用或請求臨時支援。

4、降低運營和法律風險

當企業努力透過民主化訪問來增加資料的價值,道德、技術和法律方面的挑戰也將不可避免地增加。通用資料保護條例 (GDPR) 和加州消費者隱私法案 (CCPA) 等政府法規已經改變了公司處理資料的方式,並讓公司努力將資料直接交到更多團隊這個過程變得更復雜。

DataOps——特別是資料可觀察性——可以透過提供更多的可見性和透明度來幫助解決這些問題,即使用者對資料的操作、資料輸入到哪些表以及誰可以訪問上游或下游的資料更清楚。

PART 06

在公司實施DataOps

關於DataOps的好訊息是採用現代資料棧和其他最佳實踐的公司可能已經將DataOps原則應用到他們的流水線中。

例如,越來越多的公司正在招聘DataOps工程師來推動基於資料進行決策——但這些職位描述,可能包括了已經由公司的資料工程師在處理的職責。DataOps工程師通常負責:

開發和維護可部署、測試和記錄的自動化設計指令碼、流程和程式庫。

與其他部門合作,將源系統與資料湖和資料倉儲進行整合。

建立並實施測試資料流水線的自動化。

在影響下游有關人員之前主動識別和修復資料質量問題。

透過引進自助服務工具或為業務人員執行培訓計劃,來提高整個企業的資料意識。

熟悉資料轉換、測試和資料可觀察性平臺,以提高資料可靠性。

即使其他團隊成員目前正在兼管這些職能,擁有一個專門的角色負責來構建DataOps框架也能提高可靠性,並簡化採用這些最佳實踐的過程。

無論團隊成員擔任什麼職務,就像沒有應用可觀察性就無法擁有DevOps一樣,沒有資料可觀察性就無法擁有DataOps。

資料可觀察性工具使用自動監控、警報和分類來識別和評估資料質量和可發現性問題。這會帶來更健康的流水線、更高效的團隊和更滿意的客戶。

DataOps對於資料團隊的重要性不言而喻,智領云云原生DataOps,雲原生技術下的DataOps方法論實踐,以雲原生的方式在平臺上執行大資料應用,使資料不再孤立地分佈於多個雲的孤島中,從而可以從任何地方流暢安全地進行移動,並以一致、整體的方式管理資料從準備到報表階段的整個生命週期。

目前,由智領雲自主研發的Kubernetes Data Platform(簡稱KDP),作為市場上首個可完全在Kubernetes上部署的容器化雲原生大資料平臺,深度整合了雲原生架構的優勢,將大資料元件及資料應用納入Kubernetes管理體系,標準化系統管理,提升系統執行效率,降低運維成本,消除應用孤島及資料孤島,解決傳統Hadoop大資料平臺在部署、運維,執行效率上由於架構限制帶來的難點。


來自 “ 智領雲 ”, 原文作者:Glen Willis;原文連結:https://mp.weixin.qq.com/s/D1zvcBTIwmDlNkqjE7BncA,如有侵權,請聯絡管理員刪除。

相關文章