Home avatar

Lou Stack Base

Lou's knowledge base for software engineering, DevOps, and topics I'm exploring.

Terraform Module 化、Remote State 與 Ansible 基礎

這篇涵蓋兩個主題: Terraform 的 module 化設計與 GCS remote state, 以及 Ansible 的核心結構與冪等性驗證。兩者在角色上互補 — Terraform 負責建立基礎設施, Ansible 負責設定伺服器內部。

Terraform Module 化

為什麼要 Module

Terraform 沒有 module 時, 同樣的 VPC 邏輯在 dev 和 prod 各寫一份。改一個地方, 另一個忘了改, 就出問題。Module 的作用和函式一樣: 定義一次, 傳入不同參數使用。

Networking 基礎: DNS、HTTP/HTTPS、Load Balancer 與 Proxy

網路是系統設計的地基。這篇從實際指令出發, 理解 DNS 解析、HTTP/HTTPS、TLS、Load Balancer、Proxy 的概念和 trade-off。

DNS

dig 指令

1
2
3
dig google.com
dig +short example.com
dig +short example.com CNAME

dig 是 DNS 查詢工具。+short 只顯示結果, 省略雜訊。

Cloud Run Runtime Contract: 環境變數注入、Secret-Gated Auth Bypass 和 Auto-Deploy Pipeline

這篇記錄在 Cloud Run 上跑 FastAPI 服務時, 我怎麼定義 runtime contract、設計 dev 環境的 auth bypass、以及自動部署 pipeline 的做法

跟之前寫的 WIF branch boundariesdev/prod isolation 不同, 這篇聚焦在 app 層跟 infra 層之間的「合約」— 哪些東西由 Terraform 注入, 哪些由 app code 消費, 中間的邊界怎麼畫

Cloud Run 第一次切 Custom Domain 到 Prod: Domain Mapping、Search Console 與憑證等待期踩坑記錄

這篇記錄第一次把 Cloud Run 的 custom domain 從既有環境切到正式 prod service 時, 我實際踩到的幾個坑。

表面上看起來只是把 api.example.com 指到新的 Cloud Run service, 但真正會卡住的通常不是 Terraform syntax, 而是:

  • domain ownership
  • IAM 身分
  • certificate provisioning
  • first deploy sequencing

如果這幾件事沒有事先想清楚, 第一次 prod 啟用很容易卡在最後一步。