Google Cloud 初學者指南:我該將服務運行在哪呢?
如果您現在正思考「該將服務運行在哪呢?」— 選擇最適切的基礎架構,對於應用程序的成功及開發團隊的管理都有著關鍵性的影響力!透過上雲來完成任務,提供幾項考量因素:
1.您對「託管」或「自我控制服務」的需求
2.您的使用情境
3.您是否需要 Open source 可攜性
4.您的團隊組織規模
5.您偏好的計費模式
快速瞭解常見 GCP 服務項目
GCP 所提供的多種服務和產品,可簡單歸納為計算服務、存儲服務、網路服務等類別,以下簡述幾項最常見的 GCP 產品及其優勢:
1. Compute Engine:也就是我們耳熟能詳的 VM (Virtual machines,虛擬機器)。您可依需求(CPU、記憶體、磁碟、GCP、作業系統等)選擇機型並執行虛擬機器。而 Google Cloud 最大的特色還包含可以自訂機器類型,打造專屬於您最適 CPU 數量和記憶體容量的虛體機器。
2. Kubernetes Engine (GKE):協助您管理 Kubernetes(以下簡稱 K8S) 叢集。K8S 是一個開源系統,用於自動化部屬、擴展、管理容器化應用程式。您可以建立叢集並配置欲運行的容器,透過 K8S 維持運轉、自動擴展、即時更新及連接性(CI/CD)。
3. Cloud Run:您可以透過提交任何語言形式的程式碼(如 Python, Java, .NET 等)給 Cloud Run 來建構、託管、自動部屬容器化應用程式。
4. App Engine:專為網路應用程式而設計的全託管無伺服器平台。您可以透過提交程式碼(支援程式語言如 Node.js、Java、Ruby、C#、Go、Python)的方式來處理網路連接、應用程式擴展、資料庫擴展。
5. Cloud Functions:事件驅動的無伺服器函數,您可以透過寫下單獨的函數程式碼,設定在特定事件發生時立即呼叫這些函數,例如 HTTP 請求、訊息發布(Pub/Sub)、或是 Cloud Storage 變更等等情境。
您的使用情境適合透過哪些服務呢?
如果您有上雲的需求,但不確定從何下手,以下切入點供您參考:
- 如果期望對底層基礎架構擁有更多控制權(例如作業系統、磁碟映像、CPU、RAM 等),不論是將原有的應用程式遷移到雲端、或是對於特定作業系統的需求, Compute Engine 將會是您的最佳選擇之一。
- 如果您的 Web 應用程式已使用 Docker 打包成容器化的映像檔,且您需於有限的運維工程人力情況下為容器(Containers)指定作業系統、CPU、GPU、硬碟、記憶體、網路設定等, Kubernetes Engine(GKE) 提供 Autopilot 模式,大幅降低配置及操作的需求,使多個工作負載得以運行於單一作業系統實例,兼具運行速度快、占用資源少、便利性。
- 如果您只是單純想在容器中運行應用程式,而不想煩惱基礎架構的擴展,可以使用 Cloud Run 服務,透過 ‘gcloud’ 命令行工具來輕鬆快速的部署 Web 應用程式。
- 如果您只是想編寫 HTTP-based 應用程式,那使用無伺服器全託管平台 App Engine 讓您無須煩惱部屬及擴展等事宜,並簡單方便的快速部屬完成。
- 如果您所架設的網站,期望記錄所有新用戶的註冊資訊,這時您可使用 Cloud Functions 來部署事件驅動函數,設定在新用戶註冊完畢時,觸發函數並自動將用戶資訊儲存到資料庫。
- 如果您有混合雲或多雲部署的需求,Anthos 提供單一的控制面板,讓您可以查看從基礎架構到應用程式性能的所有叢集和雲資源,提高管理效率並減少運營成本。
是否需考量Open source 的可攜性呢?
舉例來說,您的團隊有程式碼可攜性及 Open-source 支援需求,則可以評估看看 GKE、Cloud Run 或 Cloud function。GKE 使用 Kubernetes 提供與叢集互動的機制;Cloud Run 基於 Knative 支援 Kubernetes 上運行無伺服器工作負載的開源專案;Cloud Functions 使用開源 FaaS (function as a service) 框架在多個環境中運行函數…… 這些產品都是基於開源的架構,幫助您不被受限於使用特定或單一雲的服務,更有助於您將基礎架構擴展到混合雲及多雲的環境中。
您的團隊組織,是如何運作的呢?
您需根據團隊的大小、屬性和工作流程來選擇最適切的雲端服務,以便更好地支援團隊的需求和工作方式!舉例來說:
如果您的開發團隊規模較小,期望成員們能夠無須負擔管理基礎架構、擴展性、運營等事宜,App Engine 這類型的無伺服器選項可以自動管理基礎架構,讓您的團隊無須分散精力,專注於程式碼的開發。
如果您的開發團隊人力充足且分工明確,Compute Engine 或 GKE 服務提供了更多自訂性,允許您根據需求深入調整和設定 CI/ CD 流程、安全性、擴展性、維運模式。
您偏好哪種計費模式呢?
Compute Engine 和 GKE 基於資源(Resource-based)進行計費,根據您開的機器數量來收取費用,如果您能夠承諾一定的使用量,也可以透過善用承諾使用折扣(CUD, committed use discounts) 以取得更深的折扣。
至於 Cloud Run、App Engine、Cloud Function 等服務,是按請求計費,意味著您依照實際發生請求次數,用多少付多少(Pay as you go)即可,更能幫助您有效的控管成本。
結論
在近年產業趨勢劇烈變動及疫情衝擊下,上雲已不僅僅是一種選擇,更是企業制勝的關鍵要素之一。為您的服務選擇任何運算資源之前,都應盡可能考量所有因素以做出最精準的判斷。若在抉擇您的運算資源並部署之後,需求又因使用情境調整而改變,也無須擔心,您隨時都可以將服務轉移到其他資源上!
誠摯地邀請您嘗試 GCP 的各式雲端工具,透過上雲,以最低成本發揮最大效益!更多關於 GCP 服務內容及成功案例可參考果核官網。