iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
IT 管理

新手挑戰 30 天:IT 管理各個面向的學習筆記系列 第 12

Day 12:用程式碼管理基礎設施:Infrastructure as Code (IaC)

  • 分享至 

  • xImage
  •  

在傳統 IT 架構中,建立伺服器、設定網路、防火牆與資料庫,往往需要系統管理員手動操作,不僅耗時,還容易因為疏忽導致設定不一致。隨著雲端服務的普及,基礎設施的變更越來越頻繁,手動管理已經不敷使用。

這時,基礎設施即程式碼(Infrastructure as Code, IaC)成為解方。它讓企業能夠用「程式碼」來描述並管理伺服器、網路與雲端資源,就像寫程式一樣,基礎設施能被版本控制、重複執行、快速部署。

什麼是 IaC?

IaC 的核心思想是:以程式碼描述基礎設施的狀態與配置。這樣做的好處包括:

  • 自動化:減少人工操作,降低錯誤率。
  • 一致性:確保不同環境(開發、測試、正式)配置統一。
  • 可追蹤:透過版本控制系統(如 Git)記錄基礎設施的變更歷程。
  • 快速回復:一旦出現錯誤,可以快速回滾至前一版本的配置。
  • 例如:傳統上要手動點選 AWS 主控台來建立 EC2,但有了 IaC,只需一段程式碼即可自動生成。

常見的 IaC 工具

1.Terraform(HashiCorp)

Terraform 是 HashiCorp 推出的 宣告式 IaC 工具,以「描述理想狀態」為設計理念。

特色:

  1. 多雲支援

    內建多數雲端供應商的 Provider(如 AWS、Azure、GCP),讓團隊能跨平台管理資源。

  2. 宣告式語法(HCL)

    使用 HashiCorp Configuration Language(HCL),語法簡潔易讀,能直觀描述「想要的基礎設施狀態」。

  3. 狀態檔(State)管理

    Terraform 使用 terraform.tfstate 檔追蹤資源現況,確保變更時能精準比對「目前」與「期望」的差異,再執行更新。

2.Ansible(Red Hat)

Ansible 是 Red Hat 推出的 程序式自動化平台,主要理念是「透過自動化工作流程來簡化操作」。

特色:

  1. Agentless 架構

    不需要在伺服器安裝代理程式,透過 SSH 或 API 即可操作,部署快速簡單。

  2. 標準化語言(YAML)

    使用 YAML 撰寫 Playbook,易於閱讀與維護,讓不同角色的 IT 成員都能理解並合作。

  3. 多功能整合

    除了基礎設施自動化,還能涵蓋應用部署、配置管理、安全檢查等任務。

Terraform 與 Ansible 並不是競爭關係,而是互補關係。Terraform 擅長「搭建環境」,而 Ansible 更適合「管理與維運」。許多團隊會將兩者結合:先用 Terraform 建立雲端基礎設施,再用 Ansible 配置伺服器與部署應用。透過 IaC,企業不僅提升了效率,也讓基礎設施變得可重現、可追蹤,符合現代 DevOps 與雲原生環境的需求。


上一篇
Day 11:DevOps 精神:開發與維運的融合
系列文
新手挑戰 30 天:IT 管理各個面向的學習筆記12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言