什麼是基礎架構即程式碼 (IaC)?
基礎架構即程式碼 (IaC) 是一種實踐方式,旨在透過軟體和自動化流程來管理及佈建基礎架構,而非使用硬體和手動流程。這樣一來,軟體開發人員就能撰寫和執行運算、儲存和網路需求的指示,然後透過比手動流程更快速的方式加以佈建。不同於用來自動化重複 IT 流程的基本指令碼,基礎架構即程式碼可治理更複雜、多元且具有自調性的流程。

IDC 公司白皮書:網路自動化:DX 策略的最後一塊拼圖

VMware Aria Automation
基礎架構即程式碼和平台即程式碼
基礎架構即程式碼和平台即程式碼 (PaC) 為套用至不同技術堆疊層的相似概念。如前所述,基礎架構即程式碼會負責在基礎架構層佈建運算、儲存和網路。相較之下,平台即程式碼則會負責在平台層 (包括作業系統和開發工具) 運作,且可讓開發人員定義和執行其應用程式所適用的平台。
除了隸屬不同的層級,基礎架構即程式碼和平台即程式碼的主要差異,莫過於各自採用的實作方式:基礎架構即程式碼會透過藉由 Kubernetes API 撰寫包裝函式的方式實作,平台即程式碼則會透過撰寫 Kubernetes API 延伸模組的方式實作。
基礎架構即程式碼有哪些優勢?
實作基礎架構即程式碼可享有多項優勢,包括:
- 實作開發營運最佳實踐方式:透過與其他任何程式碼相同的方式處理基礎架構,即可實踐多項開發營運最佳實踐方式,例如持續監控、版本控制和自動化測試,進而輕鬆進行管理。
- 為開發人員啟用自助服務:基礎架構即程式碼可讓開發人員透過安全且符合標準的方式,佈建專屬的基礎架構;這樣一來,他們就無需透過 IT 部門來佈建資源。
- 提供延展性並加速佈建:基礎架構即程式碼具有自動化特性,可透過難以手動管理的方式來擴充或縮減,特別適合使用在容器化環境中,因為當中的微服務會要求基礎架構針對各項服務個別佈建。
- 確保可重複性和一致性:只要使用相同的程式碼基底來佈建基礎架構,您就能跨越數百或數千個應用程式,一舉實現一致性。
基礎架構即程式碼的相關考量
基礎架構即程式碼 (IaC) 不僅是容器化開發營運企業環境中的必備項目,更具備諸多好處。不過,基礎架構即程式碼也存有幾項潛在挑戰:許多可供使用的基礎架構即程式碼工具可能相當複雜,且有機會衍生額外的 IT 團隊訓練需求。此外,基礎架構自動化也意味著,錯誤有可能在基礎架構即程式碼環境中快速激增;正因如此,版本控制和測試便顯得格外重要。同樣地,儘管基礎架構即程式碼通常可防範配置偏差,如果 IT 管理員變更標準基礎架構即程式碼範本之外的伺服器配置,即有可能實際造成配置偏差;因此,請務必實際運用基礎架構即程式碼標準,並仔細記錄原則。
使用基礎架構即程式碼可提供哪些安全性優勢?
針對安全性,基礎架構即程式碼適用的前提,與任何類型的自動化完全相同:需要從一開始就妥善加以設定,以避免因錯誤大規模重複而擴大傷害,或造成安全性問題。然而,只要謹慎地加以設定和考量,安全的基礎架構即程式碼可將人為錯誤帶來的風險降至最低,並確保安全性考量已內建於開發流程中。
由於基礎架構即程式碼會仰賴自動化作業,而非手動流程,因而享有自動化所具備的一切安全優勢,且可避免因配置偏差所造成的安全性問題。將伺服器和應用程式集中管理,可確保環境的一致性與安全性。變更必須透過程式碼定義,而非手動進行,因而有助於防範未經授權的變更。事實上,宣告式設定可確保任何直接 (而非透過程式碼) 進行的變更都會自動遭到覆寫,並改用程式碼所定義的狀態。拜強大的版本控制之賜,變更將可輕鬆回復 (即便透過程式碼進行)。
此外,基礎架構即程式碼環境也更易於稽核,畢竟,所有內容 (包括伺服器設定) 都會透過程式碼來定義和記錄;因此,資訊可輕鬆提供給外部稽核人員。