https://ithelp.ithome.com.tw/upload/images/20221011/20141198ALP3ZsHHPM.png

還記得前5天,我們將無人辦公室的點狀功能設計出來,
這時候,有學員就開始想破我的梗了,
「接下來,還不就只能把它們串起來。。。把後面5天耗盡」
不,你們把我想簡單了,
我豈是讓你們這麼好猜的人物,
短短30天,要道出Python的神功密技絕對不夠,
當然,我可以繼續把前面五個步驟給串起來說,
但,若以此方向的腳本來看,總覺得看不出Python還能有多神?
因此,我打算把相對簡單串起來的部分找機會再跟大家演示,
我們繼續來看看Python到底能有多神?

很多學生說系統設計要快就要多Reuse,
很多老闆說系統架設要快就要一次到位因應商業變化再來客製化,
依照不同的角色,說得都對!
前面幾天我們的設計就符合學生可以Reuse的需求,
今天我們就來從老闆的角度談談一次到位的Python大神級開源應用。
首先登場的是「工作流程管理系統」,
當論及開源的Python在「工作流程管理系統」方面,就非Apache Airflow莫屬不可啦!

Airflow 原先由 Airbnb 開發,現為Apache頂級專案,系統主要的程式語言是 python,具有很棒的GUI,遵循著”configuration as code”原則,就連workflow及task都是用python撰寫的。
而後開源出來的工作流程管理系統(Workflow Management System),提供了多樣的 operator 可以使用,例如 Bash Operator、Python Operator,甚至可以直接對 GCP、S3、Slack 等等進行操作,減少了自己刻輪子的麻煩。漸漸地成為資料科學家、資料工程師以及數據軟體工程師,用來建構可靠的 ETL 以及定期處理批量資料的首選。
一般而言,我們會將相關的工作設計為一個「有向無循環圖」 DAG(Directed Acyclic Graph),顧名思義就是有方向性且無回向造成循環的結構,而且整個 DAG 就是一個 Python 程式,達到大家所追求的 Infrastructure as code,減少維運上的複雜度。

Apache Airflow引以自豪人性化的GUI設計,
流程以拖拉設定的方式設計,
其包含的主要元素如下:

  • Airflow Worker: 執行task的工作單位
  • Airflow Scheduler: 安排task給Workers,即時回報排程狀況給Webserver
  • Airflow Webserver: 從Scheduler、task的logs結果來顯示UI
  • Database: 上游task裡能將執行結果存到Database,下游結果能從Database裡取得上游task的結果
    https://ithelp.ithome.com.tw/upload/images/20221011/20141198TgBgpZzazZ.png

https://ithelp.ithome.com.tw/upload/images/20221011/20141198ejHyAUecHe.png

小小充電站:
什麼是DAG(Directed Acyclic Graph)?
DAG是「有向無循環圖」的縮寫。依照連接任務的箭頭產生順序與方向,且不能循環。DAG中的每個節點都對應著一個任務,而任務為資料處理的方式。是Apache中Airflow工具的核心。

(一) Airflow在行業中的應用: -

  • 大數據
  • 金融服務。
  • IT產業。
  • 銀行業。
  • 機器學習。

有用過Linux的人都知道,若要排程作業就必須使用crontab 來管理,
但是crontab常常散置各處,
且相關的順序又很難一眼看出,
出現錯誤時常常後面的作業在前一個作業失敗後繼續執行的窘境,
若在維運階段可是會影響公司的商機。
聽了今天的Python開源方案「Apache Airflow工作流程管理系統」,
是不是被他的人性化流程介面給深深吸引了呢?

明天我們再來介紹另外由Python操刀的開源系統,明天見。

文章標籤
全站熱搜
創作者介紹
創作者 生活實踐家Adam 的頭像
生活實踐家Adam

生活實踐家Adam的部落格

生活實踐家Adam 發表在 痞客邦 留言(9) 人氣(216)