在DevOps席卷軟件工程領(lǐng)域之前,一旦他們的應(yīng)用程序啟動(dòng)并開始運(yùn)行,應(yīng)用程序便如黑盒一般,開發(fā)人員無從知曉。工程師往往等到客戶或者相關(guān)使用者抱怨“網(wǎng)站訪問緩慢”或者503頁面過多時(shí),才會(huì)發(fā)現(xiàn)系統(tǒng)何時(shí)發(fā)生了中斷。
不幸的是,這導(dǎo)致相同的錯(cuò)誤反復(fù)發(fā)生,因?yàn)殚_發(fā)人員缺乏對(duì)應(yīng)用程序性能的洞察力,并且一旦出現(xiàn)故障,不知道從哪里開始調(diào)試他們的代碼。
那解決方案呢?現(xiàn)在廣泛采用的DevOps概念是一種新方法,它要求在軟件部署和開發(fā)過程中開發(fā)人員 (Dev) 和運(yùn)維團(tuán)隊(duì) (Ops)之間進(jìn)行協(xié)作和持續(xù)迭代。
到了2015年左右,Netflix、Uber 和 Airbnb等大型數(shù)據(jù)導(dǎo)向的公司已經(jīng)采用持續(xù)集成/持續(xù)部署 (CI/CD) 原則,甚至構(gòu)建開源工具來促進(jìn)數(shù)據(jù)團(tuán)隊(duì)的成長(zhǎng),于是DataOps誕生了。事實(shí)上,如果不管數(shù)據(jù)工程師有沒有意識(shí)到這一點(diǎn),他都可能已經(jīng)將DataOps流程和技術(shù)應(yīng)用到堆棧中了。在過去的幾年里, DataOps作為一個(gè)框架在各種規(guī)模的數(shù)據(jù)團(tuán)隊(duì)中越來越受歡迎,它支持快速部署數(shù)據(jù)流水線,同時(shí)仍然提供可靠的、值得信賴的、隨時(shí)可用的數(shù)據(jù)。DataOps可以使任何企業(yè)受益,這就是為什么我們要整理一份指南,來幫助大家消除對(duì)有關(guān)方面的誤解。
在本指南中,我們將解釋下面幾個(gè)問題。
什么是DataOps?
DataOps是一門融合數(shù)據(jù)工程和數(shù)據(jù)科學(xué)團(tuán)隊(duì)以滿足企業(yè)在數(shù)據(jù)方面的需求的方法論,類似于DevOps幫助擴(kuò)展軟件工程的方式。與 DevOps將 CI/CD 應(yīng)用于軟件開發(fā)和運(yùn)維的方式類似,DataOps需要一種類似于CI/CD、自動(dòng)化優(yōu)先的方法來構(gòu)建和擴(kuò)展數(shù)據(jù)產(chǎn)品。同時(shí), DataOps使數(shù)據(jù)工程團(tuán)隊(duì)更容易為分析師和其他下游使用人員提供可靠的數(shù)據(jù)來驅(qū)動(dòng)決策。
DataOps與DevOps
雖然DataOps與DevOps有許多相似之處,但兩者之間也有重要區(qū)別。
其中關(guān)鍵區(qū)別是DevOps是一種將開發(fā)和運(yùn)維團(tuán)隊(duì)聚集在一起,以提高軟件開發(fā)和交付效率的方法,而DataOps專注于打破數(shù)據(jù)生產(chǎn)者和數(shù)據(jù)消費(fèi)者之間的孤島,使數(shù)據(jù)更加可靠和更有價(jià)值。
多年來,DevOps團(tuán)隊(duì)已成為大多數(shù)科技企業(yè)不可或缺的一部分,消除了軟件開發(fā)人員和IT人員之間的隔閡,促進(jìn)了軟件無縫且可靠地發(fā)布到產(chǎn)品中。隨著DevOps在企業(yè)中越來越受歡迎,支持它們的技術(shù)棧開始變得越來越復(fù)雜。為了保持系統(tǒng)整體處于健康狀況,DevOps工程師利用可觀察性來監(jiān)控、跟蹤和分類事件,以防止應(yīng)用程序停機(jī)。
軟件可觀察性包括三個(gè)支柱。
- 日志:記錄給定時(shí)間戳發(fā)生的事件,同時(shí)為發(fā)生的特定事件提供上下文。
- 指標(biāo):用數(shù)字表示一段時(shí)間內(nèi)測(cè)量的數(shù)據(jù)。
- 跟蹤:表示分布式環(huán)境中相互關(guān)聯(lián)的事件。
總之,可觀察性的三個(gè)支柱使DevOps團(tuán)隊(duì)能夠預(yù)測(cè)未來的行為并信任他們的應(yīng)用程序。
類似地,DataOps原則可幫助團(tuán)隊(duì)消除隔閡并更有效地工作,從而在整個(gè)企業(yè)內(nèi)交付高質(zhì)量的數(shù)據(jù)產(chǎn)品。隨著公司開始從各種來源獲取大量數(shù)據(jù),DataOps專業(yè)人員還利用可觀察性來減少停機(jī)時(shí)間。數(shù)據(jù)可觀察性是企業(yè)充分了解其系統(tǒng)中數(shù)據(jù)健康狀況的能力。它通過對(duì)在數(shù)天、數(shù)周甚至數(shù)月內(nèi)未被檢測(cè)到的事件進(jìn)行監(jiān)控和告警,從而降低數(shù)據(jù)停機(jī)時(shí)間的頻率和影響(數(shù)據(jù)不完整、錯(cuò)誤、丟失或其他不準(zhǔn)確的時(shí)間段)。與軟件可觀察性一樣,數(shù)據(jù)可觀察性包括自己的一組支柱。
- 新鮮度:數(shù)據(jù)是最新的嗎?最后一次更新是什么時(shí)候?
- 分布:數(shù)據(jù)是否在可接受的范圍內(nèi)?是否符合預(yù)期的格式嗎?
- 卷:所有數(shù)據(jù)都到了嗎?表中是否有重復(fù)或刪除的數(shù)據(jù)?
- 架構(gòu):架構(gòu)是什么,它有變化嗎?對(duì)架構(gòu)的更改是主動(dòng)進(jìn)行的嗎?
- 沿襲:哪些上游和下游的相關(guān)性連接到給定的數(shù)據(jù)資產(chǎn)?誰依賴這些數(shù)據(jù)進(jìn)行決策,這些數(shù)據(jù)在哪些表中?
DataOps框架
為了更快、更可靠地洞察數(shù)據(jù), DataOps團(tuán)隊(duì)?wèi)?yīng)用了一個(gè)持續(xù)的反饋循環(huán),也稱為DataOps生命周期。DataOps生命周期是從DevOps生命周期中汲取靈感,但考慮到數(shù)據(jù)不斷變化的特性,它融合了不同的技術(shù)和流程。DataOps生命周期允許數(shù)據(jù)團(tuán)隊(duì)和業(yè)務(wù)團(tuán)隊(duì)協(xié)同工作,為企業(yè)提供更可靠的數(shù)據(jù)和分析。以下是實(shí)際的DataOps生命周期。
- 規(guī)劃:與產(chǎn)品、工程和業(yè)務(wù)團(tuán)隊(duì)合作,為數(shù)據(jù)的質(zhì)量和可用性設(shè)置KPI、SLA和SLI。
- 開發(fā):構(gòu)建數(shù)據(jù)產(chǎn)品和機(jī)器學(xué)習(xí)模型,為數(shù)據(jù)應(yīng)用程序提供生產(chǎn)力。
- 集成:將代碼和數(shù)據(jù)產(chǎn)品(或其中之一)集成到現(xiàn)有的技術(shù)和數(shù)據(jù)棧中(或其中之一),例如,將DBT模型與Airflow集成,以便DBT模塊可以自動(dòng)運(yùn)行。
- 測(cè)試:測(cè)試數(shù)據(jù)以確保其符合業(yè)務(wù)邏輯并滿足基本操作閾值(例如數(shù)據(jù)的唯一性或無空值)。
- 發(fā)布:將數(shù)據(jù)發(fā)布到測(cè)試環(huán)境中。
- 部署:將數(shù)據(jù)合并到生產(chǎn)環(huán)境中。
- 操作:將數(shù)據(jù)運(yùn)行到應(yīng)用程序中,例如為機(jī)器學(xué)習(xí)模型提供數(shù)據(jù)的Looker或Tableau儀表板和數(shù)據(jù)加載器。
- 監(jiān)控:持續(xù)監(jiān)控?cái)?shù)據(jù)中的任何異常并發(fā)出警報(bào)。
這個(gè)循環(huán)會(huì)不斷重復(fù)。通過將DevOps的類似原則應(yīng)用于數(shù)據(jù)流水線,數(shù)據(jù)團(tuán)隊(duì)可以更好地協(xié)作,從而一開始就識(shí)別、解決甚至防止數(shù)據(jù)質(zhì)量問題的發(fā)生。
DataOps的五個(gè)最佳實(shí)踐
與我們?cè)谲浖_發(fā)領(lǐng)域的朋友類似,數(shù)據(jù)團(tuán)隊(duì)也開始效仿,將數(shù)據(jù)視為產(chǎn)品。
數(shù)據(jù)是企業(yè)決策過程的關(guān)鍵部分,將產(chǎn)品管理思維應(yīng)用到如何構(gòu)建、監(jiān)控和測(cè)量數(shù)據(jù)產(chǎn)品,有助于確保這些決策能基于準(zhǔn)確、可靠的信息。在過去幾年與數(shù)百個(gè)數(shù)據(jù)團(tuán)隊(duì)交談后,我們總結(jié)了五個(gè)關(guān)鍵的DataOps最佳實(shí)踐,可以幫助您更好地適應(yīng)這種“數(shù)據(jù)即產(chǎn)品”的方法。
1、盡早讓有關(guān)人員在KPI上達(dá)成一致,并定期重新審視它們
既然企業(yè)將數(shù)據(jù)視為產(chǎn)品,那么內(nèi)部有關(guān)人員就是企業(yè)的客戶。因此,盡早與數(shù)據(jù)的關(guān)鍵有關(guān)人員保持一致,并就誰使用數(shù)據(jù)、他們?nèi)绾问褂脭?shù)據(jù)以及用于什么目的達(dá)成一致是至關(guān)重要的。為關(guān)鍵數(shù)據(jù)集制訂服務(wù)水平協(xié)議(SLA)也很重要。與有關(guān)人員就“什么樣的數(shù)據(jù)質(zhì)量標(biāo)準(zhǔn)才是對(duì)的”達(dá)成一致,有助于企業(yè)避免在哪些是KPI,哪些是無關(guān)緊要的指標(biāo),以及類似的問題反復(fù)討論。
在和有關(guān)人員達(dá)成一致看法后,企業(yè)應(yīng)該定期與他們核對(duì)以確保優(yōu)先級(jí)仍然一致。Red Ventures的高級(jí)數(shù)據(jù)科學(xué)家Brandon Beidel每周與公司的每個(gè)業(yè)務(wù)團(tuán)隊(duì)會(huì)面,討論團(tuán)隊(duì)在 SLA方面的進(jìn)展。
“我總是用簡(jiǎn)單的商業(yè)術(shù)語來企業(yè)對(duì)話,并專注于誰、什么、何時(shí)、何地以及為什么”,布蘭登告訴我們?!拔姨貏e想問一些關(guān)于數(shù)據(jù)新鮮度限制的問題,我發(fā)現(xiàn)這對(duì)業(yè)務(wù)有關(guān)人員特別重要。”
2、盡可能多的任務(wù)自動(dòng)化
DataOps的主要關(guān)注點(diǎn)之一是數(shù)據(jù)工程自動(dòng)化。數(shù)據(jù)團(tuán)隊(duì)可以將通常需要數(shù)小時(shí)才能完成的機(jī)械任務(wù)自動(dòng)化,例如單元測(cè)試、硬編碼獲取管道和工作流編排。通過使用自動(dòng)化解決方案,團(tuán)隊(duì)可以減少人為錯(cuò)誤進(jìn)入數(shù)據(jù)流水線的可能性并提高可靠性,同時(shí)幫助企業(yè)做出更好、更快的基于數(shù)據(jù)的決策。
3、擁抱“交付和迭代”文化
對(duì)于大多數(shù)數(shù)據(jù)驅(qū)動(dòng)的企業(yè)而言,速度至關(guān)重要。而且,數(shù)據(jù)產(chǎn)品并不需要百分百完美才能增加價(jià)值。我的建議就是構(gòu)建一個(gè)基本的MVP,對(duì)其進(jìn)行測(cè)試,評(píng)估學(xué)習(xí)成果,并根據(jù)需要進(jìn)行修改。我的第一手經(jīng)驗(yàn)表明,通過在生產(chǎn)中使用實(shí)時(shí)數(shù)據(jù)進(jìn)行測(cè)試和迭代,可以更快地構(gòu)建成功的數(shù)據(jù)產(chǎn)品。團(tuán)隊(duì)可以與相關(guān)人員協(xié)作,監(jiān)控、測(cè)試和分析模式,以解決任何問題并改善結(jié)果。如果經(jīng)常這樣做,將會(huì)有更少的錯(cuò)誤并降低錯(cuò)誤進(jìn)入數(shù)據(jù)流水線的可能性。
4、引進(jìn)自助服務(wù)工具
DataOps的一個(gè)重要好處是消除了數(shù)據(jù)在業(yè)務(wù)人員和數(shù)據(jù)工程師之間的隔閡。為了做到這一點(diǎn),業(yè)務(wù)用戶需要能夠通過自助工具滿足自己的數(shù)據(jù)需求。業(yè)務(wù)人員可以在需要時(shí)訪問他們需要的數(shù)據(jù),而不是讓數(shù)據(jù)團(tuán)隊(duì)來滿足業(yè)務(wù)用戶的臨時(shí)請(qǐng)求(這最終會(huì)減緩決策制定的速度)。Intuit的前工程副總裁Mammad Zadeh認(rèn)為,自助服務(wù)工具在跨企業(yè)啟用DataOps方面發(fā)揮至關(guān)重要的作用。“數(shù)據(jù)中心團(tuán)隊(duì)?wèi)?yīng)確保數(shù)據(jù)的生產(chǎn)者和使用者都可以使用正確的自助式基礎(chǔ)設(shè)施和工具,以便他們能夠輕松完成工作,”Mammad告訴我們,“為他們配備正確的工具,讓他們直接互動(dòng),不要設(shè)置任何障礙?!?/span>
5、優(yōu)先考慮數(shù)據(jù)質(zhì)量,然后才是擴(kuò)展規(guī)模
在擴(kuò)展的同時(shí)保持高數(shù)據(jù)質(zhì)量并非易事。因此,從最重要的數(shù)據(jù)資產(chǎn)開始——沒錯(cuò),就是有關(guān)人員在做出重要決策時(shí)所依賴的信息。
如果數(shù)據(jù)資產(chǎn)中不準(zhǔn)確的數(shù)據(jù)可能意味著時(shí)間、資源和收入的損失,請(qǐng)注意這些數(shù)據(jù)以及通過數(shù)據(jù)質(zhì)量功能(如測(cè)試、監(jiān)控和警報(bào))支持這些決策的實(shí)施。然后,繼續(xù)構(gòu)建企業(yè)的能力以涵蓋更多數(shù)據(jù)生命周期。(回到最佳實(shí)踐第2條,請(qǐng)記住,大規(guī)模數(shù)據(jù)監(jiān)控通常會(huì)涉及自動(dòng)化。)
企業(yè)可以從DataOps中受益的四種方式
雖然DataOps的存在是為了消除數(shù)據(jù)孤島并幫助數(shù)據(jù)團(tuán)隊(duì)協(xié)作,但團(tuán)隊(duì)在實(shí)施DataOps時(shí)可以實(shí)現(xiàn)其他四個(gè)好處。
1、更好的數(shù)據(jù)質(zhì)量
公司可以在其流水線中應(yīng)用DataOps以提高數(shù)據(jù)質(zhì)量。這包括自動(dòng)化日常任務(wù),例如測(cè)試和引入端到端可觀察性,并在數(shù)據(jù)棧的每一層(從獲取到存儲(chǔ)到轉(zhuǎn)換到BI工具)進(jìn)行監(jiān)控和警報(bào)。這種自動(dòng)化和可觀察性的結(jié)合降低了人為錯(cuò)誤的機(jī)會(huì),并使數(shù)據(jù)團(tuán)隊(duì)能夠快速主動(dòng)地響應(yīng)數(shù)據(jù)停機(jī)事件——通常是在有關(guān)人員意識(shí)到出現(xiàn)任何問題之前。有了這些DataOps實(shí)踐,業(yè)務(wù)人員可以獲得質(zhì)量更高的數(shù)據(jù),遇到更少的數(shù)據(jù)問題,并在整個(gè)企業(yè)內(nèi)建立對(duì)基于數(shù)據(jù)的決策的信任。
2、更快樂、更高效的數(shù)據(jù)團(tuán)隊(duì)
平均來說,數(shù)據(jù)工程師和科學(xué)家至少花費(fèi)30%的時(shí)間來解決數(shù)據(jù)質(zhì)量問題,而DataOps的一個(gè)關(guān)鍵部分是創(chuàng)建一個(gè)自動(dòng)化且可重復(fù)的流程,這反過來為數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家節(jié)省了時(shí)間。
將繁瑣的工程任務(wù)(例如連續(xù)代碼質(zhì)量檢查和異常檢測(cè))自動(dòng)化可以改善工程流程,同時(shí)減少企業(yè)內(nèi)部的技術(shù)債務(wù)。
DataOps讓團(tuán)隊(duì)成員更快樂,他們可以將寶貴的時(shí)間集中在改進(jìn)數(shù)據(jù)產(chǎn)品、構(gòu)建新功能和優(yōu)化數(shù)據(jù)流水線上,以加快企業(yè)數(shù)據(jù)的價(jià)值實(shí)現(xiàn)的速度。
3、更快地獲得分析見解
DataOp可自動(dòng)執(zhí)行通常需要花費(fèi)數(shù)小時(shí)才能完成的測(cè)試和異常檢測(cè)等工程任務(wù)。因此, DataOps為數(shù)據(jù)團(tuán)隊(duì)帶來了速度,促進(jìn)了數(shù)據(jù)工程和數(shù)據(jù)科學(xué)團(tuán)隊(duì)之間更快的協(xié)作。更短的數(shù)據(jù)產(chǎn)品開發(fā)周期可以降低成本(就工程時(shí)間而言),并允許數(shù)據(jù)驅(qū)動(dòng)的企業(yè)更快地實(shí)現(xiàn)其目標(biāo)。這是可能的,因?yàn)槎鄠€(gè)團(tuán)隊(duì)可以在同一個(gè)項(xiàng)目上并肩工作以同時(shí)交付結(jié)果。
根據(jù)我的經(jīng)驗(yàn), DataOps促進(jìn)不同團(tuán)隊(duì)之間的協(xié)作可以帶來更準(zhǔn)確的洞察和分析,從而改進(jìn)的決策制定能力,并帶來更高的利潤(rùn)。如果充分實(shí)現(xiàn)了DataOps,團(tuán)隊(duì)就可以實(shí)時(shí)訪問數(shù)據(jù)并調(diào)整他們的決策,而不是等待數(shù)據(jù)可用或請(qǐng)求臨時(shí)支持。
4、降低運(yùn)營(yíng)和法律風(fēng)險(xiǎn)
當(dāng)企業(yè)努力通過民主化訪問來增加數(shù)據(jù)的價(jià)值,道德、技術(shù)和法律方面的挑戰(zhàn)也將不可避免地增加。通用數(shù)據(jù)保護(hù)條例 (GDPR) 和加州消費(fèi)者隱私法案 (CCPA) 等政府法規(guī)已經(jīng)改變了公司處理數(shù)據(jù)的方式,并讓公司努力將數(shù)據(jù)直接交到更多團(tuán)隊(duì)這個(gè)過程變得更復(fù)雜。DataOps——特別是數(shù)據(jù)可觀察性——可以通過提供更多的可見性和透明度來幫助解決這些問題,即用戶對(duì)數(shù)據(jù)的操作、數(shù)據(jù)輸入到哪些表以及誰可以訪問上游或下游的數(shù)據(jù)更清楚。
在公司實(shí)施DataOps
關(guān)于DataOps的好消息是采用現(xiàn)代數(shù)據(jù)棧和其他最佳實(shí)踐的公司可能已經(jīng)將DataOps原則應(yīng)用到他們的流水線中。例如,越來越多的公司正在招聘DataOps工程師來推動(dòng)基于數(shù)據(jù)進(jìn)行決策——
但這些職位描述,可能包括了已經(jīng)由公司的數(shù)據(jù)工程師在處理的職責(zé)。DataOps工程師通常負(fù)責(zé):
- 開發(fā)和維護(hù)可部署、測(cè)試和記錄的自動(dòng)化設(shè)計(jì)腳本、流程和程序庫。
- 與其他部門合作,將源系統(tǒng)與數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫進(jìn)行集成。
- 創(chuàng)建并實(shí)施測(cè)試數(shù)據(jù)流水線的自動(dòng)化。
- 在影響下游有關(guān)人員之前主動(dòng)識(shí)別和修復(fù)數(shù)據(jù)質(zhì)量問題。
- 通過引進(jìn)自助服務(wù)工具或?yàn)闃I(yè)務(wù)人員執(zhí)行培訓(xùn)計(jì)劃,來提高整個(gè)企業(yè)的數(shù)據(jù)意識(shí)。
- 熟悉數(shù)據(jù)轉(zhuǎn)換、測(cè)試和數(shù)據(jù)可觀察性平臺(tái),以提高數(shù)據(jù)可靠性。
即使其他團(tuán)隊(duì)成員目前正在兼管這些職能,擁有一個(gè)專門的角色負(fù)責(zé)來構(gòu)建DataOps框架也能提高可靠性,并簡(jiǎn)化采用這些最佳實(shí)踐的過程。無論團(tuán)隊(duì)成員擔(dān)任什么職務(wù),就像沒有應(yīng)用可觀察性就無法擁有DevOps一樣,沒有數(shù)據(jù)可觀察性就無法擁有DataOps。數(shù)據(jù)可觀察性工具使用自動(dòng)監(jiān)控、警報(bào)和分類來識(shí)別和評(píng)估數(shù)據(jù)質(zhì)量和可發(fā)現(xiàn)性問題。這會(huì)帶來更健康的流水線、更高效的團(tuán)隊(duì)和更滿意的客戶。
參考鏈接:https://dzone.com/articles/is-dataops-the-future-of-the-modern-data-stackv