一文讀懂DataOps
大部分企業(yè)的數(shù)據(jù)平臺建設(shè)要想順利過渡到第三階段,則離不開一個(gè)關(guān)鍵方法論—DataOps(數(shù)據(jù)運(yùn)維)的幫助。
DataOps 與 DevOps 十分形似,也有著與 DevOps 類似的軟件開發(fā)角色,它是數(shù)據(jù)工程師簡化數(shù)據(jù)使用、實(shí)現(xiàn)以數(shù)據(jù)驅(qū)動(dòng)企業(yè)的方法,也是企業(yè)順利實(shí)現(xiàn)第三階段的關(guān)鍵。因此,本節(jié)將介紹 DataOps 的概念,解釋為什么它對于企業(yè)從數(shù)據(jù)中獲取真正價(jià)值、實(shí)現(xiàn)數(shù)字化運(yùn)營以及建設(shè)數(shù)據(jù)中臺都非常重要。
一、什么是 DataOps
維基百科對 DataOps 的定義是:一種面向流程的自動(dòng)化方法,由分析和數(shù)據(jù)團(tuán)隊(duì)使用,旨在提高數(shù)據(jù)分析的質(zhì)量并縮短數(shù)據(jù)分析的周期。DataOps 的這一定義會(huì)隨著時(shí)間的推移而變化,但其關(guān)鍵目標(biāo)非常明確:提高數(shù)據(jù)分析的質(zhì)量并縮短數(shù)據(jù)分析的周期。
在 2018 年 Gartner 發(fā)布的《數(shù)據(jù)管理技術(shù)成熟度曲線》報(bào)告中,DataOps 的概念被首次提出(圖 1)。該報(bào)告指出,DataOps雖然可以降低數(shù)據(jù)分析的門檻,但并不會(huì)使數(shù)據(jù)分析變成一項(xiàng)簡單的工作。與 DevOps 的落地一樣,實(shí)施成功的數(shù)據(jù)項(xiàng)目也需要做大量的工作,例如深入了解數(shù)據(jù)和業(yè)務(wù)的關(guān)系、樹立良好的數(shù)據(jù)使用規(guī)范和培養(yǎng)數(shù)據(jù)驅(qū)動(dòng)的公司文化。當(dāng)然,DataOps 將極大提高人們使用數(shù)據(jù)的效率并降低使用數(shù)據(jù)的門檻,公司可以更快、更早、更好地使用數(shù)據(jù),且成本和風(fēng)險(xiǎn)更低。
二、 DataOps 解決的問題
大數(shù)據(jù)的大多數(shù)應(yīng)用可以分為 AI(人工智能)或 BI(商業(yè)智能)。此處的 AI 是指廣義的人工智能,包括機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘以及其他從數(shù)據(jù)中獲取以前未知知識的技術(shù)。BI 則更多地使用統(tǒng)計(jì)方法將大量數(shù)據(jù)匯總成更簡單的報(bào)告,方便人們理解。簡而言之,AI 使用各種數(shù)據(jù)算法來計(jì)算新的東西,BI 則是統(tǒng)計(jì)人們可以理解的數(shù)字。
編寫 AI 或 BI 程序并不難,你可以基于 TensorFlow 在幾個(gè)小時(shí)內(nèi)寫一個(gè)人臉識別程序,或者使用 MATLAB 繪制一些數(shù)據(jù)可視化圖形,甚至用 Excel 也不難實(shí)現(xiàn) AI 或 BI 程序。問題在于,要實(shí)際使用生產(chǎn)結(jié)果來支持面向用戶的產(chǎn)品或根據(jù)這些神奇的數(shù)字來決定公司的命運(yùn),你需要做的就不只是手動(dòng)工作了。
根據(jù) Dimensional Research 在 2017 年做的一項(xiàng)調(diào)查,對于想要實(shí)施大數(shù)據(jù)應(yīng)用的公司來說,圖 2 中列出的問題最為困難。
圖 2 大數(shù)據(jù)實(shí)施主要困難
在“ Hidden Technical Debt in Machine Learning Systems ”這篇論文中,Google 的數(shù)據(jù)分析師研究發(fā)現(xiàn),對于大多數(shù)機(jī)器學(xué)習(xí)項(xiàng)目,只有 5% 的時(shí)間花在編寫 ML 代碼上,另外 95% 的時(shí)間用于設(shè)置運(yùn)行 ML 代碼所需的基礎(chǔ)設(shè)施(見圖 3)。
圖 3 Google 關(guān)于機(jī)器學(xué)習(xí)中隱藏的技術(shù)債的研究
在這兩項(xiàng)研究中,我們可以很容易地看到許多艱苦的工作實(shí)際上并不是在編寫代碼。整個(gè)基礎(chǔ)設(shè)施的準(zhǔn)備工作以及高效運(yùn)行生產(chǎn)級別的代碼是非常費(fèi)時(shí)費(fèi)力的,而且經(jīng)常伴隨著各種風(fēng)險(xiǎn)。在 Google 的研究中,他們引用了來自 Twitter 大數(shù)據(jù)團(tuán)隊(duì)Jimmy Lin 和 Dmitry Ryaboy 的話:“我們的大部分工作可以被描述為‘數(shù)據(jù)管道工’。”實(shí)際上,DataOps 的目的就是使管道工的工作更簡單和高效。
三、 DataOps 的目標(biāo)功能
DataOps 旨在縮短整個(gè)數(shù)據(jù)分析的周期。它的主要使用對象是數(shù)據(jù)應(yīng)用開發(fā)人員,包括數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家。因此,從搭建基礎(chǔ)架構(gòu)到使用數(shù)據(jù)應(yīng)用的結(jié)果,通常需要實(shí)現(xiàn)以下功能。
部署:包括基礎(chǔ)架構(gòu)和應(yīng)用程序。無論底層硬件基礎(chǔ)設(shè)施如何,配置新系統(tǒng)環(huán)境都應(yīng)該快速而簡單。部署新應(yīng)用程序應(yīng)該花費(fèi)幾秒而不是幾小時(shí)或幾天時(shí)間。
運(yùn)維:系統(tǒng)和應(yīng)用程序的可擴(kuò)展性、可用性、監(jiān)控、恢復(fù)和可靠性。數(shù)據(jù)應(yīng)用開發(fā)人員不必?fù)?dān)心運(yùn)維,可以專注于業(yè)務(wù)邏輯。
治理:數(shù)據(jù)的安全性、質(zhì)量和完整性,包括審計(jì)和訪問控制。所有數(shù)據(jù)都在一個(gè)支持多租戶的安全環(huán)境中以連貫和受控的方式進(jìn)行管理。
可用:用戶應(yīng)該能夠選擇他們想要用于數(shù)據(jù)開發(fā)和分析的工具,隨時(shí)拿到他們可用的數(shù)據(jù),并根據(jù)需要輕松開發(fā)和運(yùn)行數(shù)據(jù)分析應(yīng)用。應(yīng)將對不同分析、ML、AI 框架的支持整合到系統(tǒng)中。
生產(chǎn):通過調(diào)度和數(shù)據(jù)監(jiān)控,可以輕松地將分析程序轉(zhuǎn)換為生產(chǎn)應(yīng)用,構(gòu)建從數(shù)據(jù)抽取到數(shù)據(jù)分析的生產(chǎn)級數(shù)據(jù)流水線,并且數(shù)據(jù)應(yīng)該易于使用并由系統(tǒng)管理。
簡而言之,DataOpsi 遵循類似于 DevOps 的方法:從編寫代碼到生產(chǎn)部署的路徑(包括調(diào)度和監(jiān)控)應(yīng)由同一個(gè)人完成,并遵循系統(tǒng)管理的標(biāo)準(zhǔn)。與提供許多標(biāo)準(zhǔn) CI、部署、監(jiān)控工具以實(shí)現(xiàn)快速交付的 DevOps 類似,通過標(biāo)準(zhǔn)化大量大數(shù)據(jù)組件,新手可以快速建立生產(chǎn)級的大數(shù)據(jù)應(yīng)用并充分利用數(shù)據(jù)的價(jià)值。
四、 DataOps 的主要技術(shù)
DataOps 的主要方法論仍處于快速發(fā)展階段。像 Facebook 和Twitter 這樣的公司通常會(huì)有專門的數(shù)據(jù)平臺團(tuán)隊(duì)(Data Platform Team)處理數(shù)據(jù)運(yùn)營并實(shí)現(xiàn)數(shù)據(jù)項(xiàng)目。但是,它們的實(shí)現(xiàn)方式大多與公司現(xiàn)有的 Ops 基礎(chǔ)設(shè)施集成,因而不適用于其他公司。不過我們可以從它們的成功中學(xué)習(xí)經(jīng)驗(yàn),并建立一個(gè)可以由每家公司輕松實(shí)施的通用大數(shù)據(jù)平臺。要構(gòu)建 DataOps 所需的通用平臺,一般需要以下技術(shù)。
云架構(gòu):必須使用基于云的基礎(chǔ)架構(gòu)來支持資源管理、可擴(kuò)展性和運(yùn)營效率。
容器:容器在 DevOps 的實(shí)現(xiàn)中至關(guān)重要,在資源隔離和提供一致開發(fā)、測試、運(yùn)維環(huán)境中的作用也至關(guān)重要。
實(shí)時(shí)和流處理:目前來看,實(shí)時(shí)和流處理在數(shù)據(jù)驅(qū)動(dòng)平臺中變得越來越重要,它們應(yīng)該是現(xiàn)代數(shù)據(jù)平臺中的“一等公民”。
多分析引擎:MapReduce 是傳統(tǒng)的分布式處理框架,但Spark 和 TensorFlow 等框架日常使用越來越廣泛,應(yīng)該進(jìn)行集成。
集成的應(yīng)用程序和數(shù)據(jù)管理:應(yīng)用程序和數(shù)據(jù)管理(包括生命周期管理、調(diào)度、監(jiān)控、日志記錄支持)對于生產(chǎn)數(shù)據(jù)平臺至關(guān)重要。DevOps 的常規(guī)實(shí)踐可應(yīng)用于應(yīng)用程序管理,但是數(shù)據(jù)管理及應(yīng)用程序與數(shù)據(jù)之間的交互需要很多額外的工作。
多租戶和安全性:數(shù)據(jù)安全性可以說是數(shù)據(jù)項(xiàng)目中最重要的問題,如果數(shù)據(jù)無法得到保護(hù),數(shù)據(jù)使用也就無從談起。該平臺應(yīng)為每個(gè)人提供一個(gè)安全的環(huán)境,使每個(gè)人都可以使用這些數(shù)據(jù)并對每個(gè)操作進(jìn)行授權(quán)、驗(yàn)證和審核。
DevOps 工具:該平臺應(yīng)為數(shù)據(jù)科學(xué)家提供有效的工具,以分析數(shù)據(jù)并生成分析程序,為數(shù)據(jù)工程師提供大數(shù)據(jù)流水線的工具,并為其他人提供消費(fèi)數(shù)據(jù)和結(jié)果的方法。
五、 DataOps 與數(shù)據(jù)中臺
DataOps 的核心任務(wù)是提高數(shù)據(jù)分析的質(zhì)量并縮短數(shù)據(jù)分析的周期,是高效打造數(shù)據(jù)中臺的必經(jīng)之路,因此可以將 DataOps作為數(shù)據(jù)中臺建設(shè)必須參考的一個(gè)方法論。要建設(shè)一個(gè)高效的業(yè)務(wù) IT 系統(tǒng),采用 DevOps 并不是必要條件,但是絕大部分公司會(huì)采取 DevOps 的方法論和技術(shù)體系,因?yàn)檫@是經(jīng)過實(shí)踐檢驗(yàn)的高效和普適的方式。
與 DevOps 一樣,DataOps 的使用與發(fā)展也是一個(gè)需要正確工具和正確思維加持的持續(xù)過程。DataOps 的目標(biāo)是以正確的方式更容易地實(shí)現(xiàn)大數(shù)據(jù)項(xiàng)目,以達(dá)到用更少的工作量從數(shù)據(jù)中獲得最大的價(jià)值的目的。
在過去幾年中,隨著云計(jì)算和容器技術(shù)的成熟,大數(shù)據(jù)操作的標(biāo)準(zhǔn)化成為可能。加之?dāng)?shù)據(jù)驅(qū)動(dòng)的企業(yè)文化被廣泛接受,DataOps 終于準(zhǔn)備好進(jìn)入大家的視野。我們相信這一運(yùn)動(dòng)將降低實(shí)施大數(shù)據(jù)項(xiàng)目的門檻,使每個(gè)企業(yè)和機(jī)構(gòu)都能夠更容易地獲取數(shù)據(jù)的最大價(jià)值。
可以看到,DataOps 與數(shù)據(jù)中臺需要解決的問題其實(shí)是類似的,都希望能夠更快、更好地實(shí)現(xiàn)數(shù)據(jù)價(jià)值,支持?jǐn)?shù)字化運(yùn)營,但是二者強(qiáng)調(diào)的重點(diǎn)不同:
數(shù)據(jù)中臺強(qiáng)調(diào)的是數(shù)據(jù)的統(tǒng)一管理和避免重復(fù)開發(fā),是數(shù)據(jù)能力的抽象、共享和復(fù)用;
DataOps 強(qiáng)調(diào)的是數(shù)據(jù)應(yīng)用的開發(fā)和運(yùn)維效率,就像DevOps 解放了開發(fā)人員的生產(chǎn)力一樣,DataOps 希望通過提供一整套工具和方法論,來讓數(shù)據(jù)應(yīng)用的開發(fā)和管理更加高效。
不過,雖然如此,但二者都是解決現(xiàn)有大數(shù)據(jù)平臺問題的必經(jīng)之路。數(shù)據(jù)中臺強(qiáng)調(diào)的是戰(zhàn)略層次的布局,必須有一個(gè)中臺來承擔(dān)所有數(shù)據(jù)能力的管理和使用;DataOps 強(qiáng)調(diào)的是戰(zhàn)術(shù)層面的優(yōu)化,如何讓各個(gè)開發(fā)和使用實(shí)際數(shù)據(jù)應(yīng)用的人員更加高效??梢哉f數(shù)據(jù)中臺描述了最終的目標(biāo),而 DataOps 提供了一條實(shí)現(xiàn)這個(gè)目標(biāo)的最佳路徑。
以上內(nèi)容摘自《云原生數(shù)據(jù)中臺:架構(gòu)、方法論與實(shí)踐》部分章節(jié)。