DataOps: 將 DevOps 用於 Data(二)

Bryan Yang
DataOpsTW
Published in
4 min readMay 31, 2018

原文:https://streamsets.com/blog/dataops-applying-devops-to-data/(本文經原作者同意後翻譯)

敏捷宣言

2001年時,一群軟體工程師發展了敏捷宣言,作為敏捷軟體開發的原則.

藉著親自並協助他人進行軟體開發,
我們正致力於發掘更優良的軟體開發方法。
透過這樣的努力,我們已建立以下價值觀:

個人與互動 重於 流程與工具
可用的軟體 重於 詳盡的文件
與客戶合作 重於 合約協商
回應變化 重於 遵循計劃

也就是說,雖然右側項目有其價值,
但我們更重視左側項目。

傳統瀑布式軟體開發流程有一組系統分析師產生需求文件,接著有一組軟體架構師將會根據這些文件建構系統架構,接下來有一組開發者會開發應用,QA 組將會開始測試.每一步都會花費幾個禮拜、幾個月甚至幾年,在這期間沒有可用的軟體,直到系統測試結束.通常會在最後產生可用的軟體,或是在上市前就作廢了.

相反的,敏捷方法鼓勵跨領域的團隊專注於迭代開發模式.敏捷團隊包含了分析、設計、開發、QA、甚至使用者在一起工作.敏捷團隊會建立最小可行軟體(minimal working application),將其盡快交付給使用者後,可以將其回饋帶入下一次迭代中.

如軟體開發一樣,敏捷將對資料工程有所助益 — 專注於使用迭代的方式建立可用的系統並交付真實的商業價值 — 不過可用的資料整合並不是終點.DevOps,或者說 DataOps ,看得更遠.不只是遞交系統,而延伸到了運維(operations)層面.

開發 + 運維 = DevOps

DevOps 將運維人員帶到敏捷開發的流程中,將範圍從遞交應用擴大到了整個維運階段.考慮到維運的需求,開發者將透過設計好自動化、可伸縮、以及高可用的軟體.DevOps 這個從互聯網巨頭像是 Amazon、Facebook 和 Netflix 而來的概念,現在成為產業的標準作法.

資料 + 運維 = DataOps

如果我們用「遞交資料」替換在敏捷宣言中的「軟體開發」,我們可以將其概念應用於資料工程,並且使用 DataOps 來描述這個跨領域的方法,透過資料將價值帶給企業.(編按:完整 DataOps 宣言可以參考這篇 DataOps 宣言

如 DevOps 讓使用者、開發者、QA、以及運維人員協力解決軟體遞交的問題,DataOps 將讓所有資料從業人員(data practitioners)一起來持續地遞交有品質的資料給應用及商業流程.在處理資料漂流時.資料的終端使用者,如資料分析師或資料科學家,將與資料工程師和 IT 維運一起工作,來持續地讓資料移動(data movement) — 串連許多資料來源及終點.為了結合了彈性及穩健性,透過迭代的方式來設計和操作資料移動邏輯(從資料源到資料商店再到分析).

我們認為 DataOps 將有助於資料流生命週期的迭代,這包括了建立、執行以及運維階段,各階段將受到資料保護的協助:

  • 建立(Build) —使用可配置組態的工具(而不是脆弱的手動代碼)來設計彈性、可重複的資料流管線.
  • 執行(Execute) — 在邊緣系統上運行資料管線,並且具備自動伸縮的本地集群或雲端環境.
  • 運維(Operate) — 透過持續地監控來管理資料流的效能,並且強化資料SLAs (服務層級協議 Service Level Agreement;SLA)來將開發目標及運維事實綁在一起.

如同 DevOps 將應用安全視為首要關切對象,DataOps 必須保護資料,確保在資料以及在整個資料旅途中不會受到壞人或意外泄露敏感資料,需要遵守各種監管規定.

系列文章:

--

--

Bryan Yang
DataOpsTW

Data Engineer, Data Producer Manager, Data Solution Architect