DevOps 新手入門 — 把 Go 後端一路自動化到雲端
這是一份為 DevOps 完全新手寫的教學。我們不從零教,而是直接承接前一份教學的成果:一個已經用 docker-compose 容器化好的 no-logic-trade Go + PostgreSQL 後端(在 ../code/)。我們會把它當作地基,一步步長出一條完整的自動化交付線:改 code → 自動測試 → 自動 build image → 推到 registry → 部署上雲 → 監控。
讀者設定:DevOps 全新手、平常寫前端、碰過一點 Node.js、剛學會寫 Go 後端。 每個工具第一次出現時,都會先用 2–3 句白話講「它是什麼、解決什麼問題、為什麼需要它」。
這份教學會用到的工具(先有個印象就好)
| 工具 | 一句話它是什麼 | 解決什麼問題 |
|---|---|---|
| GitHub Actions | GitHub 內建的自動化機器人(CI/CD 平台) | 每次 push 自動幫你跑測試、build、部署,不用手動 |
| GHCR | GitHub 的容器 image 倉庫(Container Registry) | 存放 build 好的 Docker image,供部署時拉取 |
| Terraform | 用程式碼描述雲端資源的工具(IaC) | 不用在網頁 console 點來點去,雲端設定可重現、可版控 |
| Kubernetes | 容器編排系統(先本機 kind,再上雲 GKE) | 自動管理一堆容器:自我修復、擴縮、滾動更新 |
| Prometheus + Grafana | 指標收集 + 視覺化儀表板 | 看見服務的健康狀況、流量、延遲,出事能即時發現 |
| GCP (Google Cloud) | 我們選用的雲平台(free tier 優先) | 真正把服務跑在網際網路上 |
看不懂這些名詞很正常——每個都會在對應章節第一次出現時詳細解釋。現在只要知道「有這些角色」即可。
章節地圖
| 章 | 檔案 | 主題 | 第一次登場的工具 |
|---|---|---|---|
| 1 | 01-intro.md |
導論:DevOps 在解決什麼問題 + 全貌(架構圖 + 目錄) | — |
| 2 | 02-optimize-image.md |
從既有容器化 app 出發,優化 Docker image | Docker(精煉) |
| 3 | 03-ci-github-actions.md |
CI 第一步:push 自動跑測試與 build | GitHub Actions、YAML |
| 4 | 04-cd-ghcr.md |
CD:自動 build image 並推送到 GHCR | GHCR |
| 5 | 05-terraform-iac.md |
IaC 入門:用 Terraform 佈建雲端基礎 | Terraform、gcloud |
| 6 | 06-deploy-cloudrun.md |
部署上雲:Cloud Run(free tier) | Cloud Run、Cloud SQL |
| 7 | 07-kubernetes-local.md |
Kubernetes 入門:本機 kind 跑起來 | Kubernetes、kubectl、kind |
| 8 | 08-gke.md |
把 K8s 接到雲端:GKE(managed K8s) | GKE |
| 9 | 09-monitoring.md |
監控與日誌:Prometheus + Grafana | Prometheus、Grafana、Helm |
| 10 | 10-full-pipeline.md |
收尾:完整 pipeline 全貌 + 安全拆除 | GitOps 概念 |
這份教學的幾個原則
- 承接、不重教:假設你已經有
../code/那個容器化好的 Go 後端。不會再教 Docker 基礎。 - 工具先講「為什麼」:每個工具登場先解釋它解決什麼痛,再動手。
- 每章可驗證:章末都有「如何驗證這一步成功」(具體指令 + 預期輸出)與「常見錯誤 / 踩雷點」。
- 💸 省錢至上:所有會花錢的雲端資源都明確標注,並在章末給「用完即刪」步驟;第 10 章有完整拆除清單。
技術選擇(本教學採用)
- 雲平台:Google Cloud(GCP)— 對新手友善、free tier 大方、
gcloud直覺。 - 本機 Kubernetes:kind — 直接用現有 Docker 跑叢集,輕量快速。
- 雲端資料庫:Cloud SQL,用完即刪(每章末附
terraform destroy)。
你需要先準備
- 前一份教學的成果:
../code/(容器化好的 Go 後端)。第 1 章會帶你確認它能跑。 - 一個 GitHub 帳號。
- 一個 Google Cloud 帳號(新帳號有 $300、90 天試用額度)。第 1 章會帶你開通帳單並設定預算警示(很重要,避免帳單暴衝)。
- 其餘 CLI 工具(gcloud、terraform、kubectl、kind、helm)會在各自章節第一次用到時才安裝。
準備好就從 第 1 章 開始。