當我們在談論DataOps時,我們到底在談論什麼

語言: CN / TW / HK

1. DataOps到底是什麼?

伴隨著全球數字化轉型的高速發展,在雲端計算、物聯網、5G、邊緣計算、元宇宙等新技術的驅動下,資料爆炸的時代已經來臨。IDC Global DataSphere顯示,2021年,全球資料總量達到了84.5ZB,預計到2026年,全球結構化與非結構化資料總量將達到221.2ZB。

此外,在《數字化轉型架構:方法論和雲原生實踐》一書中也提到雲原生應用平臺的發展將經歷DevOps—DataOps—AIOps的演進路徑,可以看出在雲原生的浪潮下,企業也越來越需要資料。但在面對資料量巨大、資料種類繁多、資料急劇增長的困境時,對企業駕馭資料的能力也提出更高的要求。如果不能對海量資料進行合理有序的組織和管理,非但不能產生資料價值,反而會對企業造成極大的負擔,從某種程度上來說,也是一種“資料災難”,而這也是DataOps一直處於熱門話題的原因。在開源SREWorks專案資料化建設過程中,我們也一直在思考:DataOps到底是在做什麼?

在討論DataOps之前,我們先來看下DevOps。DevOps是一種軟體交付管理的思想,它追求一種敏捷的、規範的、跨團隊的軟體研發協作狀態,力求將一套軟體的開發模式,從小作坊形態演變成一條標準的生產流水線。DevOps在一定程度上為DataOps的發展奠定了基礎,因此,DevOps是我們在討論DataOps時繞不開的重要話題。

DataOps本身也是屬於敏捷開發範疇,類似DevOps以較短的開發迭代週期快速滿足各自的需求,同時DataOps也需要大量標準化資料工具或元件,依賴團隊之間協作,進行資料的開發和分析。與DevOps不同的是DataOps主要專注於資料流,因此,通過資料化的方法或方法論來推動企業運營水平的提升都可以隸屬於DataOps的範疇

The DataOps lifecycle (來源 The Rise of DataOps: Governance and Agility with TrueDataOps)

DataOps是data operationalization的縮寫,DataOps不單單指資料技術的工具和平臺,更重要的是一套資料全生命週期管理的方法論和思想。基於資料驅動,通過一系列面向流程的工具和平臺,將DataOps思想進行工程化落地實踐,能夠將所有系統的相關資料採集起來,打破資料孤島,統一建設高效規範的資料模型和資料體系,深度挖掘資料價值。

DataOps的方法論和思想主要是被分析和資料團隊使用,旨在簡化資料使用、降低資料分析門檻,提高資料分析質量、縮短資料分析週期。也就是說,資料作為一種大資料時代的“新能源”,本身是需要通過平臺化的能力, 實現圍繞“資料整合、資料開發、資料儲存、資料治理以及資料服務”等體系化的資料管理流程。更進一步,基於資料驅動的思想,進行資料分析和資料消費,通過資料賦能,做好各個業務領域的相關工作,真正解決實際生產過程中遇到的痛點問題,實現資料價值落地的場景化輸出。

image.png

DataOps架構(來源:Diving into DataOps: The Underbelly of Modern Data Pipelines)

2. DataOps能夠解決哪些問題?

下面列舉一些常見的資料相關的問題,對於想要實施DataOps的公司來講,可以判斷一下是否有遇到:

1. 如何確保生產的資料質量?

2. 如何判斷生產的資料能否滿足業務的需求?

3. 如何判斷某個資料型專案工程的價值並持續投入?

4. 如何尋找大資料人才?

5. 如何提高資料處理的效能?

6. 大資料方案採用什麼技術棧?

7. 大資料方案的運維穩定性如何保障?

8. 引入了多個大資料方案,如何統一進行管理?

9. 大資料的資料許可權如何管理?

10. 資料分析結果如何指導最終的決策?

上面常見的問題,可以歸為三大場景:資料管理、資料運維和資料使用。通常實施資料化的公司都是在初期嚐到了一些資料帶來的甜頭,但是在持續投入之後,卻又發現這塊的收益產出似乎帶有很大的不確定性:資料表逐漸地被雜亂的資料堆滿,資料產出鏈路常常延遲,而通過資料分析進行決策似乎也沒像之前那麼有效了。

簡而言之,當資料量變大,資料工程變複雜之後,如果沒有規範的體系和流程,整體的協作關係又容易變回小作坊形態,存在諸如資料計算口徑不統一、資料重複建設以及資料質量不高等問題,需要尋求一些標準化、規範化、體系化、工程化的方式來進行解決。

3. 如何進行DataOps實踐?

正如前文所說,DataOps本身是一套完整的資料體系建設的方法論,其目標是能夠讓資料持續用起來,實現“資料整合、資料開發、資料儲存、資料治理以及資料服務”等資料管理能力。這也意味著需要依賴眾多的資料技術或資料元件來建設和運營DataOps資料平臺,進而形成高效可靠的資料資產化體系和資料服務化能力,也即針對Data的資料運維。

資料整合

資料整合是構建企業級DataOps資料平臺的第一步,依賴企業內部的跨部門協作,能夠將不同來源的資料(不同的業務系統)以及不同型別的資料(結構化、半結構化、非結構化、離線以及實時資料等)進行整合,實現互聯互通。從源頭上避免資料的重複造輪和資源浪費問題,為構建規範化的資料體系、沉澱資料資產以及挖掘資料價值作準備。

資料整合一般是通過資料引入方式,將一個系統的資料按時按量整合到另一個系統中。通常採用ELT(Extract-Load-Transform,提取-載入-轉換)的模式,重點在於資料匯聚,即將資料提取後直接載入到目標端儲存中,這個階段一般不做或者只做簡單的資料清洗和資料處理。業界優秀的資料整合工具包括像Sqoop、DataX、Kettle、Canal以及StreamSets等。

資料開發

資料開發的目標是能夠將資料整合階段的原始資料,按照業務的需求進行加工處理、將原始的低業務價值的資料轉換成高業務價值的資料資產,也就是說資料開發階段是實現資料資產化的核心技術手段。

資料開發作為資料加工處理的核心階段,通常會採用ETL(Extract-Transform-Load,提取-轉換-載入)的模式並整合一系列的資料開發管控流程和工具,方便資料開發人員對ETL任務的編寫、構建、釋出、運維以及任務資源管控等,提升效率。通常資料開發主要分成離線資料開發和實時資料開發兩大場景。

離線資料開發主要用於離線資料的批量定時加工處理,離線資料開發需要包含離線計算引擎、作業開發、任務排程、資料管控以及運維監控等核心能力,實際使用過程中,相關的離線ETL任務會按照預先設定的加工邏輯和ETL之間的拓撲依賴關係,進行排程執行。常見的離線處理框架包括MapReduce、Hive以及Spark等。在阿里巴巴內部也早已形成體系的MaxCompute通用大資料開發套件,快速解決使用者的海量資料離線計算問題,有效降低企業成本並保障資料安全等。

實時資料開發主要涉及對實時流式資料的加工處理,滿足像監控告警、資料大屏等對實時性要求較高的場景。在實時計算場景下,業務系統每產生一條資料,都會通過訊息中介軟體(比如Kafka)被實時傳送到流式處理平臺進行加工處理,不再依賴排程引擎。常見的流式處理框架包括Storm、Spark Streaming以及Flink等。在阿里巴巴內部也基於Apache Flink構建了一站式的實時大資料分析平臺,提供端到端的亞秒級實時資料加工處理分析能力。

資料儲存

有了資料整合和資料開發的能力,下一階段就是考慮如何進行資料儲存和資料組織,其核心是標準規範的資料倉庫和資料模型建設,也就是說資料倉庫是實現資料資產化的呈現載體。

目前用的最多的資料建模方式是維度建模,典型代表有阿里巴巴建設的“OneData”資料建模體系,主要包括資料規範定義、資料模型設計以及ETL開發規範三部分。

資料規範定義:資料主題域、業務過程、指標規範、名詞定義以及時間週期等命名規範。

資料模型設計:模型層次劃分(分成資料引入層ODS、資料公共層CDM以及資料應用層ADS三層,其中CDM層又包括明細資料層DWD、彙總資料層DWS和維度資料層DIM)、模型設計原則、模型命名規範、模型生命週期管理以及資料質量規範等。

ETL開發規範:資料處理作業的研發流程、編碼規範以及釋出運維原則等。

資料倉庫實施工作流(來源:《大資料之路》)

資料倉庫建設工程鏈路(離線鏈路+實時鏈路)

資料治理

資料治理主要是對資料資產,配置資料管理策略,主要包括資料標準、資料質量、資料成本以及資料安全等內容。通過多維度進行量化評估,針對資料建設提出改進與優化建議,確保資料質量、標準、安全、易用。它包含以下功能:

  • 資料標準化管理:負責資料倉庫中資料的表達、格式以及定義的規範性,包括模型規範、數倉元資料規範、名詞術語規範、指標規範等進行管理,針對未標準化的內容提出改進建議。

  • 資料成本:主要從儲存量和訪問情況等沉澱相關治理項,比如:空表、無效表(未關聯ETL任務表)、長期未訪問表、長週期表、大資料量表等,通過對治理項的運作,提出優化建議,推動資料開發人員進行成本治理。

  • 資料質量:圍繞資料的完整性、準確性、一致性、有效性和及時性五個維度並對資料的重要性進行資產等級劃分,對質量保障既包括事前保障,比如資料開發流程、資料標準執行等,又有事中保障,比如DQC的資料質量實時監控和告警,還有事後保障,比如資料質量故障覆盤,確定質量問題根因等。

  • 資料安全:評估資料安全風險,對資料設定安全等級,包括支援安全認證和許可權管理、資源隔離、資料加密、資料脫敏等,保障資料安全可靠的被傳輸、儲存和使用。

資料服務

資料服務旨在提供統一的資料消費服務匯流排,能夠將資料資產生成API服務,其目標是把資料服務化,讓資料能夠快速整合到業務場景當中,發揮資料平臺的價值。它包含以下主要功能:

  • 異構跨庫查詢:如果資料分佈在多個異構資料庫時,使用者無法簡單的實現資料關聯查詢,通過資料查詢服務,可以減少資料同步作業,直接實現從多個源資料庫載入資料與完成查詢的能力。

  • 資料API 定義與管理:部份常用的資料點查或統計分析,可通過定義資料集與API名稱,並最終暴露為一個HTTP資源路徑的方式,並對資料API進行釋出和訪問授權,方便在各類指令碼或程式碼中使用資料。

  • 資料快取:對於常用的資料查詢,可定義快取與更新策略,來減少資料查詢穿透到資料庫,提高效能並降低對資料庫的效能負載。

  • 服務編排:按照業務邏輯,以序列、並行和分支等結構編排多個API及函式服務為工作流。

資料應用

有了標準化的資料體系以後,針對資料進行分析和使用又是DataOps所關心的另一個維度的問題,這也是資料驅動的關鍵環節,也即以資料為中心進行決策,驅動業務行為。資料分析人員利用各種資料統計分析方法和智慧演算法,通過資料平臺提供的資料服務API,對相關資料進行多維度、深層次的分析挖掘,支撐業務相關的資料應用場景,持續讓資料用起來,真正發揮資料平臺的業務價值。

不同的業務有各自的應用場景,所以這一部分很難面面俱到。本文僅簡單介紹幾種常見的資料應用場景,希望能幫助大家更好的理解,如何基於資料平臺的資料資產和資料服務,進行資料分析和使用。

資料大屏:通過對資料進行分析計算,藉助BI類軟體,結合業務需求,以圖表等形式,把一些關鍵的彙總性資料展示出來,實現資料視覺化,為業務決策提供準確可靠的資料支援。

智慧場景:屬於AIOps範疇,基於資料平臺的資料,通過AI演算法,從資料中進行提煉、挖掘、洞察,為業務基於資料進行決策和運維運營時提供智慧能力,獲得更有前瞻性的資料支援。比較典型的智慧應用場景包括像智慧推薦、智慧客服、智慧預測以及健康管理等等。

當然,資料分析也並不是資料的終點,因為隨著資料的沉澱,業務規模的擴大,很多資料分析的結果也可能會作為另一個更高維度模型的資料輸入,被納入資料平臺的資料資產當中。因此,資料分析和開發人員需要從一個更高的維度和視角,去整合海量的資料。這也就意味著資料處理的鏈路並不是一成不變的,資料量會隨著業務不斷增長,資料模型也同樣需要不斷演進。

image.png

4. 總結

總的來說,DataOps 作為一種資料管理方式,利用 DevOps 方法論對資料的全生命週期進行管理,通過資料平臺把資料變成一種服務能力,進而提升資料的使用效率,實現資料持續用起來的目標。以資料平臺為承載,以資料場景為驅動,支援更大的創新空間和更優秀的業務模式。

SREWorks雲原生數智運維平臺,沉澱了阿里大資料運維團隊近十年經內部業務錘鍊的SRE數智化工程實踐,包含DataOps在運維領域的最佳實踐,歡迎體驗。我們旨在秉承“資料化、智慧化”運維思想,幫助更多的從業者採用“數智”思想做好運維。

參考材料

http://www.synopsys.com/blogs/software-security/agile-cicd-devops-difference/

http://zhuanlan.zhihu.com/p/55066486

http://www.uml.org.cn/bigdata/202108115.asp

http://en.wikipedia.org/wiki/DataOps

http://www.tamr.com/blog/from-devops-to-dataops-by-andy-palmer/

SREWorks開源地址:http://github.com/alibaba/sreworks