
POV(示意情境):有人丟來一句「我們到底要用 GCP 還是 Azure」,你打開四個定價頁比了一個下午,最後發現你比的根本不是同一種東西。
倒數第三篇。第四到第六週,同一個 agent-api 寫了三份部署設定:Cloud Run(Day 23)、GKE Autopilot(Day 24)、AKS(Day 27),也講了 Azure Container Apps 的位置;這三篇的指令都還沒實跑,front matter 標了 verified: false。今天把它們放進同一張表。這裡只比 GCP 跟 Azure 兩家,AWS 我沒有實際用過,不列。這張表刻意不放任何價格數字:價格、配額、上限隨時會改,我不想留一張三個月後就過期的表;我想留的是每個服務的「性格」,性格不太會變。
這四個不是四個對手,是兩組跨雲的對應:
| 不想管叢集,跑容器就好 | 我要真正的 K8s | |
|---|---|---|
| GCP | Cloud Run | GKE(Autopilot / Standard) |
| Azure | Azure Container Apps(ACA) | AKS |
左欄是 request-driven、可以縮到零的世界(Day 21 講的性格);右欄是 Pod、Deployment、Service 的世界(Day 05 的心智模型)。跨雲比較一律拿同一欄比:Cloud Run 對 ACA,GKE 對 AKS。拿 Cloud Run 去比 AKS,像拿計程車比租車行,不是不能比,是比完得不出結論。這兩家官方自己也各有一頁在講這件事,延伸閱讀放了。
| 面向 | Cloud Run | ACA | GKE | AKS |
|---|---|---|---|---|
| 1. 適合的 agent 性格 | request-driven、可縮到零的 API 或批次推論;官方說法是 event-driven app | 同左 | always-on bot、多 workload 共用資源、要自己控制排程;官方說法是複雜微服務、有狀態、需要客製底層 | 同左 |
| 2. 你要管什麼 | 容器加幾個旗標:port、min instances、concurrency、secret(Day 23) | 容器加 ingress 與 scale rule:minReplicas / maxReplicas |
Pod 的 requests / limits 起跳;Autopilot 不管節點,Standard 要管 node pool | Pod 起跳;Standard 要管 node pool,Automatic 模式把節點與擴縮預設幫你設好 |
| 3. 閒置時的成本結構 | 縮到零就幾乎不付;設了 min instances 就變常駐 | minReplicas: 0 同左 |
Autopilot 按 Pod 宣告的資源計費,Pod 不刪就一直付;Standard 節點開著就付 | 節點開著就付;Spot node pool 可以省,代價是會被回收 |
| 4. GPU | 有,我實際用的是 L4(Day 25) | 有 serverless GPU,要先申請 quota | Autopilot 可直接要 GPU,Standard 用 GPU node pool | GPU node pool |
| 5. 搬家成本(換雲) | 中:設定是平台專屬旗標,要重寫,但東西本身少 | 中:同左 | 低:YAML 可攜,只重做 registry / ingress / identity(Day 27) | 低:同左 |
價格一律以官方定價頁為準,四頁在這:Cloud Run、GKE、AKS、ACA。
表裡每一格都是我從官方文件整理的,不是實測結果,細節與變動一律以官方頁為準;面向 2 到 4 的出處放在這,方便你自己核對:Cloud Run 的 min instances 與 GPU、ACA 的 scale rule 與 serverless GPU、GKE 的 Autopilot 計費 與 Autopilot GPU、AKS 的 Spot node pool 與 GPU。面向 5 是 Day 27 逐行對照 YAML 的結果,不是實跑結論。
先選欄,再選雲。 先判斷你的 workload 是左欄還是右欄,判斷題還是 Day 21 那句:一段時間沒人碰,它該不該活著? 答完再看你手上有哪家的 credit、你熟哪套生態。以我來說,手上有 GCP 的 redeem credit,Whisper backend 已經在 Cloud Run 上跑,左欄選 Cloud Run 不用想;右欄我目前沒有真正需要長期維運的 workload,所以還沒選。
面向 5 是保險。 怕被單一供應商綁住的話,右欄的搬家成本確實比較低:Day 27 把 GKE 與 AKS 的 YAML 逐行對照過(未實跑),Deployment 與 Service 只差 image 路徑,Ingress 多一行 class。左欄的開發體驗好,但設定全是各家自己的語法,換雲就重寫。這不是要你為了買保險硬上 K8s,是要你在選的時候知道自己拿什麼換什麼。
面向 3 決定你晚上睡不睡得著。 能縮到零的東西忘了關也不太燒錢;GKE Standard 與 AKS 這種節點型的,節點開著就在計費;Autopilot 雖然不算節點,Pod 留著一樣按宣告的資源付。Day 04 那台被壓到 swap 見底的開發機、Day 06 梳理的三種 workload,講的都是同一件事:先搞清楚系統閒著的時候在做什麼,再挑平台。
這個組合看起來很不厲害,但每一項都對得上 workload 的性格,成本結構我也講得出來。比起「全面導入 K8s」,我覺得這才是一個 AI 工程師比較成熟的答案。
明天講部署完之後的日常:升級、備份還原、故意讓它死一次、成本告警,AI 工程師的最小 SRE 清單。
跨雲比較一律拿同一欄比:Cloud Run 對 ACA、GKE 對 AKS;先選欄(你的 workload 要不要常駐),再選雲(你手上有誰的 credit、你熟誰)。