基礎設施即程式碼(Infrastructure as Code)

★★★★★Reviewed

FromThe DevOps Handbook30 Days of GitLab

📚 From the Books

基礎設施即程式碼(Infrastructure as Code)Infrastructure

用點手、改 console 養出來的伺服器,是沒人敢碰的「雪花機器」。IaC 把基礎設施寫成版本控管的程式碼——環境可重現、可審查、可回滾,重建一台跟跑一次 pipeline 一樣。

🧠 Intuition

TIP

把伺服器當「牲口,不是寵物」。寵物會取名、生病要救;牲口壞了就換一隻一模一樣的。IaC 讓「換一隻一樣的」變成 apply 一個檔案。

⚖️ Tradeoffs

手動 / 半自動腳本 — 起步快、債留後面
  • console 點一點、SSH 改一改:上手最快,小規模能動。
  • 問題:環境間漂移、沒人說得清現狀、重建要靠記憶與運氣;災難復原時最痛。
宣告式 IaC + 版本控制 + CI 套用 — 標準做法
  • 基礎設施進 Git,走 code review 與 pipeline 套用(GitOps);環境可重現、可審查、可回滾。
  • 用狀態檔/收斂偵測漂移;rollback 等於 revert commit 再 apply。
  • 代價:前期學習與建置成本高;狀態檔(如 Terraform state)本身要妥善保管與鎖定,否則並行 apply 會打架。

🔑 Takeaways

✍️ My Notes

No notes yet — jot your takeaways or Q&A here.

📖 Further Reading