教學目標

學習 Google Cloud Platform 的心得分享,初步了解有關工作流程、工作排程、批次排程和串流處理相關雲端服務的重點概念。

重點概念

首先企業中有許多工作流程皆是由多個工作排程所組成,在 Windows 作業系統中最常使用內建的工作排程器設定工作排程,在 Linux/Unix 作業系統中,最常使用 Cron 工作排程器設定工作排程,而 Google Cloud 則有提供 Cloud Scheduler 用於全代管的企業級 Cron 工作排程器,無論是批次工作、大數據工作或雲端基礎架構相關作業皆能夠輕鬆進行排程,更能夠自動化所有流程,包括當工作在執行失敗之後進行重試,以利減少手動作業和人為操作。更進一步 Cloud Scheduler 支援多種工作目標,將能夠讓我們自動執行大部份的工作,像是觸發 AppEngine 應用程式,透過 Cloud Pub/Sub 傳送訊息,呼叫在 Compute Engine、Kubernetes Engine 和內部部署環境執行的任何 API 服務,至於記錄功能則是與 Stackdriver Logging 互相整合應用,以利我們更能夠掌握工作的執行與成效。至於 Cloud Scheduler 的計費方式主要是根據用量進行付費,每個月只需為處理的工作件數付費,每月每件工作的費用為 $0.10 美元,當每個也有免費的工作件數為 3 件,請注意系統計算工作件數時,主要是以帳戶而非專案層級為主。

接著企業中通常已經在內部部署環境中導入 Hadoop 大數據生態系統平台,像是 Apache Hadoop 和 Apache Spark,此時如果要將內部部署環境的大數據生態系統轉移至雲端環境,則建議使用 Cloud Dataproc,所謂 CloudDataproc 主要是一項運作快速又簡單易用的全代管雲端服務,將能夠以更輕鬆且更具成本效益的方式執行 Apache Spark 和 Apache Hadoop 叢集。如果需要落實 DevOps 團隊管理、高可用性和最小成本,則建議使用 Cloud Dataproc 進行資料處理,以及將資料儲存在 Google Storage,若是使用 Cloud Dataproc 中的 HDFS 是揮發性的,所以當叢集被刪除之後就會被刪除,所以 Dataproc 需要一直執行將會帶來龐大的成本和後續升級問題,但是若是需要針對資料高度密集的運算,則建議使用 Cloud Dataproc 中的 HDFS。如果情境應用為關鍵線上環境,則建議使用 High-availability 模式,若是為非關鍵實驗環境,則建議使用 Standard 模式,並且使用高記憶體的工作機器類型。至於 Cloud Dataproc 的計費方式主要根據叢集中使用的每個執行個體的虛擬 CPU 進行計費。

再來如果如果企業還未導入大數據生態系統,則建議使用 Cloud Dataflow 來簡化資料串流和批次處理作業,所謂 Cloud Dataflow 主要是一套全代管服務,將能夠轉換即時串流和過往批次模式的資料,讓資料變得更加豐富,主要能夠應用於金融服務業的詐欺偵測機制、遊戲業的個人化使用者體驗和製造業的物聯網資料分析。其主要透過 Apache Beam SDK 中的 SQL、Java 和 Python 支援快速和簡易的管線開發,此外 Cloud Dataflow 沒有提供專屬的跨管線溝通的機制,但是我們能夠使用 Cloud Storage 儲存空間或 App Engine 等記憶體快取,在管線執行個體之間共用資料。然而 Cloud Dataproc 和 Cloud Dataflow 皆能夠用於批次和串流的資料處理,如果有特定的相依套件工具用於 Apache Spark 和 Apache Hadoop 環境中,則建議使用 Cloud Dataproc,或者是否需要進行 DevOps 的開發維運,則建議使用 Cloud Dataproc,但是如果需要無伺服器服務,則建議使用 Cloud Dataflow。更進一步如果我們有 Dataflow 管線執行和處理從客戶端轉換和載入資料至資料倉儲中的資料檔案,而這個管線需要在每天早上執行監控所有利害關係人在傳送資料之前,針對每日的資料傳送皆已經準備就續的最新狀態,則此時就能夠使用 Cloud Scheduler 服務。至於 Cloud Dataflow 的計費方式主要根據批次或串流工作站類型的虛擬 CPU、記憶體、儲存空間和已處理的資料用量,其中是以秒為單位進行工作計費。

最後當企業內部工作流程非常複雜,以及其中相關的工作排程有許多相依關係,則 Cloud Scheduler 將會需要許多客製開發,此時則建議使用 Cloud Composer,所謂 Cloud Composer 主要是一個全代管的工作流程自動化調度管理服務,主要能夠讓我們建立、排程和監控分散至不同雲端和內部部署資料中心的管線。Cloud Composer 主要基於 Airflow 開源專案,並且能夠處理複雜的工作流程,但是相對費用較高。更進一步能夠組織資料流程管線和建立客製感測器偵測檔案條件,如果有任何變更發生時,將會重新執行資料流程管線。此外通常使用 Cloud Composer 會比使用 Cloud Scheduler 的成本費用更高,但是Cloud Composer 與 Google Cloud Platform 服務將能夠進行深度整合,其與許多產品緊密整合,包含 BigQuery、Cloud Dataflow、Cloud Dataproc、Cloud Datastore、Cloud Storage、Cloud Pub/Sub 和 AI Platform,更重要的是能夠利用現有的 Python 在 Cloud Composer 中以靈活的方式進中建立、排程及監控工作流程,以更可靠的方式自動化調度管理管線。至於 Cloud Composer 的計費方式主要根據專路核心時數、資料庫核心時間、網路和資料庫儲存空間和網路輸出,用多少付多少。

總結我們能夠透過 Cloud Scheduler、Cloud Dataproc、Cloud Dataflow 和 Cloud Composer 等雲端服務來滿足企業中大部份的工作流程、工作排程、批次排程和串流處理之需求整合應用。

相關資源