什麼是基礎架構即程式碼 (IaC)?

基礎架構即程式碼 (IaC) 是一種管理及佈建運算基礎架構的方法。這項技術仰賴機器可讀的定義檔進行設定,而非手動調整實體硬體或使用互動式設定工具。只要將基礎架構設定視為應用程式程式碼,團隊就能快速且可靠地自動部署網路、虛擬機器Kubernetes 叢集、資料庫和負載平衡器。這是現代 DevOps 做法的一環,可協助機構一致、快速地擴充規模。

基礎架構即程式碼的運作方式

IaC 的運作方式是透過程式碼自動執行佈建程序,因此不必在雲端控制台中手動設定。首先,開發人員會在設定檔中定義所需的基礎架構規格,這些檔案通常會儲存在版本管控系統中。接著,自動化工具 (例如 Terraform) 會處理這些檔案,並向雲端服務供應商發出必要的 API 呼叫,以建立、更新或刪除實際資源。這個工作流程通常會從程式碼 (定義) 經過版本管控、CI/CD 管道,最後到佈建。

基礎架構即程式碼工作流程資訊圖表

宣告式與命令式的比較

實作 IaC 時,團隊通常會選擇宣告式或命令式做法。主要差異在於您著重最終結果,還是達成結果的步驟。

做法

說明

範例

陳述式


您只要定義最終狀態,工具會找出達到該狀態的必要步驟。這是 Terraform 和 Kubernetes 等工具的現代標準。

「我想要 3 部虛擬機器,每部配備 8 GB RAM。」

命令式

您可列出要依序執行的特定指令或指令碼,定義基礎架構的變更方式。

「執行指令碼 A 來啟動伺服器 1。接著執行指令碼 B 來設定網路。接著執行指令碼 C...」

做法

說明

範例

陳述式


您只要定義最終狀態,工具會找出達到該狀態的必要步驟。這是 Terraform 和 Kubernetes 等工具的現代標準。

「我想要 3 部虛擬機器,每部配備 8 GB RAM。」

命令式

您可列出要依序執行的特定指令或指令碼,定義基礎架構的變更方式。

「執行指令碼 A 來啟動伺服器 1。接著執行指令碼 B 來設定網路。接著執行指令碼 C...」

IaC 安全性與掃描

隨著基礎架構定義移至程式碼存放區,資安做法必須隨之調整,才能保護這些檔案。「IaC 安全性」和「IaC 掃描」是指在部署基礎架構前,分析設定檔中的安全漏洞,這項概念稱為「左移」安全性。專門工具會掃描程式碼管道,偵測是否有錯誤設定 (例如 Storage bucket 設為公開,或資料庫未加密),防止安全風險進入正式環境。

IaC 的用途

除了支援常見的部署模式,例如檢索增強生成 (RAG) 應用程式,IaC 還能協助解決複雜作業部署的難題。

企業通常需要在不同環境中執行工作負載。團隊可使用 Terraform 等工具,透過單一設定工作流程,同時在 Google Cloud 或其他雲端環境,以及地端部署資料中心,部署及管理資源。這樣一來,就可以降低學習各平台專屬工具的複雜度。

開發人員經常需要安全的地方來測試新功能。有了 IaC,團隊可以啟動與正式環境完全相同的臨時「測試環境」,執行測試,然後立即銷毀該環境。這有助於確保測試準確度,同時避免全天候運作永久測試環境伺服器的成本。

如果發生災難而導致區域性服務中斷,手動復原可能需要數天時間。IaC 可實現「災難復原即程式碼」,讓機構能使用現有的程式碼定義,在不同區域快速重新佈建整個基礎架構。這能大幅減少停機時間,確保維持企業營運。

IaC 的優點

對於想翻新 IT 維運的機構來說,採用 IaC 可帶來顯著優勢。

速度

自動化技術可讓您在幾分鐘內部署複雜的環境,不必再耗費數天或數週。

一致性

由於每次部署相同程式碼的環境都一樣,因此 IaC 可消除「設定偏移」問題,也就是伺服器因手動臨時變更而變得不一致。

節省成本

團隊可在不需要時,輕鬆停用閒置資源,例如在週末關閉開發環境,藉此控管雲端支出。

版本管控

由於基礎架構是以程式碼定義,因此基礎架構變更的完整歷程記錄會儲存在同一處。這樣一來,就能輕鬆追蹤變更者和變更內容,並在發生問題時復原至先前版本。

在 Google Cloud 導入 IaC

Google Cloud 提供全套工具,協助您從初步設計到部署及持續管理,順利導入基礎架構即程式碼。App Design Center 是絕佳的起點,您可以在這裡探索、自訂及建構預先建構的參考架構。這能協助您在編寫任何程式碼前,根據 Google Cloud 最佳做法,設計應用程式堆疊,確保基礎架構從一開始就架構完善。

有了設計後,就能透過 Google Cloud 開放式生態系統,輕鬆將設計實作為程式碼。這個平台將 Terraform 等開放原始碼標準視為一等公民,而非事後想法。Infrastructure Manager 等服務可讓您直接使用 Terraform 部署及管理 Google Cloud 資源,而 Config Connector 則可讓您透過 Kubernetes 管理 Google Cloud 資源,有助於縮小雲端基礎架構與容器自動化調度管理之間的差距。

Cloud Resource Manager

Cloud Resource Manager 可用於以程式輔助方式管理 Google Cloud 資源階層,包括機構、資料夾和專案。許多團隊會使用 IaC 部署虛擬機器等資源,但 Cloud Resource Manager 可讓您將專案結構定義為程式碼。這有助於團隊自動設定新環境,並採用一致的 Identity and Access Management (IAM) 政策和機構限制,確保從一開始就將控管機制融入基礎架構。

自動建立臨時預覽環境

IaC 最有價值的用途之一,就是解決開發人員常見的問題:「在我的電腦上可以運作,為什麼在正式環境中會出錯?」您可以建立臨時環境來解決這個問題。

在這個工作流程中,開發人員開啟提取要求 (PR) 時,IaC 工具會自動啟動應用程式的臨時隔離副本。PR 合併後,環境會自動銷毀。

步驟 1:在 Terraform 中動態命名

為確保這項功能正常運作,Terraform 程式碼不得有硬式編碼的名稱。您必須使用變數,為每個 PR 建立專屬資源。

main.tf (程式碼片段)

  • Terraform
載入中…

步驟 2:Cloud Build 設定

在 cloudbuild.yaml 中,您可以使用 Cloud Build 提供的 _PR_NUMBER 替換變數,將 PR 數字插入 Terraform。

cloudbuild.yaml (程式碼片段)

  • YAML
載入中…

這個工作流程將 IaC 從靜態維護工作轉變為動態效率提升工具,加快審查週期。

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。

其他資源

後續行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。

Google Cloud