- 云原生數(shù)據(jù)中臺:架構(gòu)、方法論與實踐
- 彭鋒 宋文欣 孫浩峰
- 2923字
- 2021-04-30 12:38:49
4.4 DataOps
大部分企業(yè)的數(shù)據(jù)平臺建設已經(jīng)進行到第一階段或第二階段,而要順利過渡到第三階段,則離不開一個關鍵方法論——DataOps(數(shù)據(jù)運維)的幫助。
DataOps與DevOps十分形似,也有著與DevOps類似的軟件開發(fā)角色,它是數(shù)據(jù)工程師簡化數(shù)據(jù)使用、實現(xiàn)以數(shù)據(jù)驅(qū)動企業(yè)的方法,也是企業(yè)順利實現(xiàn)第三階段的關鍵。因此,本節(jié)將介紹DataOps的概念,解釋為什么它對于企業(yè)從數(shù)據(jù)中獲取真正價值、實現(xiàn)數(shù)字化運營以及建設數(shù)據(jù)中臺都非常重要。
4.4.1 什么是DataOps
維基百科對DataOps的定義是:一種面向流程的自動化方法,由分析和數(shù)據(jù)團隊使用,旨在提高數(shù)據(jù)分析的質(zhì)量并縮短數(shù)據(jù)分析的周期。DataOps的這一定義會隨著時間的推移而變化,但其關鍵目標非常明確:提高數(shù)據(jù)分析的質(zhì)量并縮短數(shù)據(jù)分析的周期。
在2018年Gartner發(fā)布的《數(shù)據(jù)管理技術成熟度曲線》報告中,DataOps的概念被首次提出(圖4-6)。該報告指出,DataOps雖然可以降低數(shù)據(jù)分析的門檻,但并不會使數(shù)據(jù)分析變成一項簡單的工作。與DevOps的落地一樣,實施成功的數(shù)據(jù)項目也需要做大量的工作,例如深入了解數(shù)據(jù)和業(yè)務的關系、樹立良好的數(shù)據(jù)使用規(guī)范和培養(yǎng)數(shù)據(jù)驅(qū)動的公司文化。當然,DataOps將極大提高人們使用數(shù)據(jù)的效率并降低使用數(shù)據(jù)的門檻,公司可以更快、更早、更好地使用數(shù)據(jù),且成本和風險更低。

圖4-6 Gartner對DataOps的定位
4.4.2 DataOps解決的問題
大數(shù)據(jù)的大多數(shù)應用可以分為AI(人工智能)或BI(商業(yè)智能)。此處的AI是指廣義的人工智能,包括機器學習、數(shù)據(jù)挖掘以及其他從數(shù)據(jù)中獲取以前未知知識的技術。BI則更多地使用統(tǒng)計方法將大量數(shù)據(jù)匯總成更簡單的報告,方便人們理解。簡而言之,AI使用各種數(shù)據(jù)算法來計算新的東西,BI則是統(tǒng)計人們可以理解的數(shù)字。
編寫AI或BI程序并不難,你可以基于TensorFlow在幾個小時內(nèi)寫一個人臉識別程序,或者使用MATLAB繪制一些數(shù)據(jù)可視化圖形,甚至用Excel也不難實現(xiàn)AI或BI程序。問題在于,要實際使用生產(chǎn)結(jié)果來支持面向用戶的產(chǎn)品或根據(jù)這些神奇的數(shù)字來決定公司的命運,你需要做的就不只是手動工作了。
根據(jù)Dimensional Research在2017年做的一項調(diào)查,對于想要實施大數(shù)據(jù)應用的公司來說,圖4-7中列出的問題最為困難。

圖4-7 大數(shù)據(jù)實施主要困難
在“Hidden Technical Debt in Machine Learning Systems”這篇論文中,Google的數(shù)據(jù)分析師研究發(fā)現(xiàn),對于大多數(shù)機器學習項目,只有5%的時間花在編寫ML代碼上,另外95%的時間用于設置運行ML代碼所需的基礎設施(見圖4-8)。

圖4-8 Google關于機器學習中隱藏的技術債的研究
在這兩項研究中,我們可以很容易地看到許多艱苦的工作實際上并不是在編寫代碼。整個基礎設施的準備工作以及高效運行生產(chǎn)級別的代碼是非常費時費力的,而且經(jīng)常伴隨著各種風險。在Google的研究中,他們引用了來自Twitter大數(shù)據(jù)團隊的Jimmy Lin和Dmitry Ryaboy的話:“我們的大部分工作可以被描述為‘數(shù)據(jù)管道工’。”實際上,DataOps的目的就是使管道工的工作更簡單和高效。
4.4.3 DataOps的目標功能
DataOps旨在縮短整個數(shù)據(jù)分析的周期。它的主要使用對象是數(shù)據(jù)應用開發(fā)人員,包括數(shù)據(jù)工程師和數(shù)據(jù)科學家。因此,從搭建基礎架構(gòu)到使用數(shù)據(jù)應用的結(jié)果,通常需要實現(xiàn)以下功能。
·部署:包括基礎架構(gòu)和應用程序。無論底層硬件基礎設施如何,配置新系統(tǒng)環(huán)境都應該快速而簡單。部署新應用程序應該花費幾秒而不是幾小時或幾天時間。
·運維:系統(tǒng)和應用程序的可擴展性、可用性、監(jiān)控、恢復和可靠性。數(shù)據(jù)應用開發(fā)人員不必擔心運維,可以專注于業(yè)務邏輯。
·治理:數(shù)據(jù)的安全性、質(zhì)量和完整性,包括審計和訪問控制。所有數(shù)據(jù)都在一個支持多租戶的安全環(huán)境中以連貫和受控的方式進行管理。
·可用:用戶應該能夠選擇他們想要用于數(shù)據(jù)開發(fā)和分析的工具,隨時拿到他們可用的數(shù)據(jù),并根據(jù)需要輕松開發(fā)和運行數(shù)據(jù)分析應用。應將對不同分析、ML、AI框架的支持整合到系統(tǒng)中。
·生產(chǎn):通過調(diào)度和數(shù)據(jù)監(jiān)控,可以輕松地將分析程序轉(zhuǎn)換為生產(chǎn)應用,構(gòu)建從數(shù)據(jù)抽取到數(shù)據(jù)分析的生產(chǎn)級數(shù)據(jù)流水線,并且數(shù)據(jù)應該易于使用并由系統(tǒng)管理。
簡而言之,DataOpsi遵循類似于DevOps的方法:從編寫代碼到生產(chǎn)部署的路徑(包括調(diào)度和監(jiān)控)應由同一個人完成,并遵循系統(tǒng)管理的標準。與提供許多標準CI、部署、監(jiān)控工具以實現(xiàn)快速交付的DevOps類似,通過標準化大量大數(shù)據(jù)組件,新手可以快速建立生產(chǎn)級的大數(shù)據(jù)應用并充分利用數(shù)據(jù)的價值。
4.4.4 DataOps的主要技術
DataOps的主要方法論仍處于快速發(fā)展階段。像Facebook和Twitter這樣的公司通常會有專門的數(shù)據(jù)平臺團隊(Data Platform Team)處理數(shù)據(jù)運營并實現(xiàn)數(shù)據(jù)項目。但是,它們的實現(xiàn)方式大多與公司現(xiàn)有的Ops基礎設施集成,因而不適用于其他公司。不過我們可以從它們的成功中學習經(jīng)驗,并建立一個可以由每家公司輕松實施的通用大數(shù)據(jù)平臺。
要構(gòu)建DataOps所需的通用平臺,一般需要以下技術。
·云架構(gòu):必須使用基于云的基礎架構(gòu)來支持資源管理、可擴展性和運營效率。
·容器:容器在DevOps的實現(xiàn)中至關重要,在資源隔離和提供一致開發(fā)、測試、運維環(huán)境中的作用也至關重要。
·實時和流處理:目前來看,實時和流處理在數(shù)據(jù)驅(qū)動平臺中變得越來越重要,它們應該是現(xiàn)代數(shù)據(jù)平臺中的“一等公民”。
·多分析引擎:MapReduce是傳統(tǒng)的分布式處理框架,但Spark和TensorFlow等框架日常使用越來越廣泛,應該進行集成。
·集成的應用程序和數(shù)據(jù)管理:應用程序和數(shù)據(jù)管理(包括生命周期管理、調(diào)度、監(jiān)控、日志記錄支持)對于生產(chǎn)數(shù)據(jù)平臺至關重要。DevOps的常規(guī)實踐可應用于應用程序管理,但是數(shù)據(jù)管理及應用程序與數(shù)據(jù)之間的交互需要很多額外的工作。
·多租戶和安全性:數(shù)據(jù)安全性可以說是數(shù)據(jù)項目中最重要的問題,如果數(shù)據(jù)無法得到保護,數(shù)據(jù)使用也就無從談起。該平臺應為每個人提供一個安全的環(huán)境,使每個人都可以使用這些數(shù)據(jù)并對每個操作進行授權、驗證和審核。
·DevOps工具:該平臺應為數(shù)據(jù)科學家提供有效的工具,以分析數(shù)據(jù)并生成分析程序,為數(shù)據(jù)工程師提供大數(shù)據(jù)流水線的工具,并為其他人提供消費數(shù)據(jù)和結(jié)果的方法。
4.4.5 DataOps與數(shù)據(jù)中臺
DataOps的核心任務是提高數(shù)據(jù)分析的質(zhì)量并縮短數(shù)據(jù)分析的周期,是高效打造數(shù)據(jù)中臺的必經(jīng)之路,因此可以將DataOps作為數(shù)據(jù)中臺建設必須參考的一個方法論。要建設一個高效的業(yè)務IT系統(tǒng),采用DevOps并不是必要條件,但是絕大部分公司會采取DevOps的方法論和技術體系,因為這是經(jīng)過實踐檢驗的高效和普適的方式。
與DevOps一樣,DataOps的使用與發(fā)展也是一個需要正確工具和正確思維加持的持續(xù)過程。DataOps的目標是以正確的方式更容易地實現(xiàn)大數(shù)據(jù)項目,以達到用更少的工作量從數(shù)據(jù)中獲得最大的價值的目的。
在過去幾年中,隨著云計算和容器技術的成熟,大數(shù)據(jù)操作的標準化成為可能。加之數(shù)據(jù)驅(qū)動的企業(yè)文化被廣泛接受,DataOps終于準備好進入大家的視野。我們相信這一運動將降低實施大數(shù)據(jù)項目的門檻,使每個企業(yè)和機構(gòu)都能夠更容易地獲取數(shù)據(jù)的最大價值。
可以看到,DataOps與數(shù)據(jù)中臺需要解決的問題其實是類似的,都希望能夠更快、更好地實現(xiàn)數(shù)據(jù)價值,支持數(shù)字化運營,但是二者強調(diào)的重點不同:
·數(shù)據(jù)中臺強調(diào)的是數(shù)據(jù)的統(tǒng)一管理和避免重復開發(fā),是數(shù)據(jù)能力的抽象、共享和復用;
·DataOps強調(diào)的是數(shù)據(jù)應用的開發(fā)和運維效率,就像DevOps解放了開發(fā)人員的生產(chǎn)力一樣,DataOps希望通過提供一整套工具和方法論,來讓數(shù)據(jù)應用的開發(fā)和管理更加高效。
不過,雖然如此,但二者都是解決現(xiàn)有大數(shù)據(jù)平臺問題的必經(jīng)之路。數(shù)據(jù)中臺強調(diào)的是戰(zhàn)略層次的布局,必須有一個中臺來承擔所有數(shù)據(jù)能力的管理和使用;DataOps強調(diào)的是戰(zhàn)術層面的優(yōu)化,如何讓各個開發(fā)和使用實際數(shù)據(jù)應用的人員更加高效。可以說數(shù)據(jù)中臺描述了最終的目標,而DataOps提供了一條實現(xiàn)這個目標的最佳路徑。
- 云計算環(huán)境下的信息資源集成與服務
- 數(shù)據(jù)之巔:數(shù)據(jù)的本質(zhì)與未來
- SQL Server 2008數(shù)據(jù)庫應用技術(第二版)
- Python數(shù)據(jù)分析、挖掘與可視化從入門到精通
- 大數(shù)據(jù)算法
- Mockito Cookbook
- 數(shù)據(jù)革命:大數(shù)據(jù)價值實現(xiàn)方法、技術與案例
- SQL應用及誤區(qū)分析
- 探索新型智庫發(fā)展之路:藍迪國際智庫報告·2015(下冊)
- 深入理解InfluxDB:時序數(shù)據(jù)庫詳解與實踐
- 數(shù)據(jù)庫與數(shù)據(jù)處理:Access 2010實現(xiàn)
- 區(qū)塊鏈+:落地場景與應用實戰(zhàn)
- 商業(yè)智能工具應用與數(shù)據(jù)可視化
- 數(shù)據(jù)應用工程:方法論與實踐
- Learning Ansible