什麼是基礎設施即程式碼?

基礎設施即程式碼 (IaC) 是使用程式碼 (而非手動程序和設定),來佈建和支援您的運算基礎設施的能力。任何應用程式環境都需要許多基礎架構元件,如作業系統、資料庫連線和儲存。開發人員必須定期設定、更新和維護基礎設施,以開發、測試和部署應用程式。 

手動基礎設施管理既耗時又容易出錯,當您大規模管理應用程式時尤其如此。基礎設施即程式碼可讓您可義基礎設施所需的狀態,而無需包括進入該狀態的所有步驟。它可自動化基礎設施管理,讓開發人員能夠專注於建置和改善應用程式,而不是管理環境。組織利用基礎設施即程式碼來控制成本、降低風險,並迅速回應新的商機。

基礎設施即程式碼有哪些優點?

自動化是任何運算環境的關鍵目標。基礎設施即程式碼 (IaC) 是用於基礎設施自動化以建立環境。IaC 最常見的用途是在軟體開發中建置,測試和部署應用程式。

傳統上,系統管理員使用指令碼和手動程序的組合來設定基礎設施環境。這個程序既複雜又耗時。現在,您可以使用 IaC 在幾分鐘內自動設定您的環境,並且更有效率地進行管理。接下來我們提供一些優點。

輕鬆複製環境

只要基礎設施資源可供使用,就可以使用相同的 IaC 將相同環境部署在另一個位置的不同系統上。

例如,假設企業的區域分公司有 IaC 來描述整個分公司的企業環境,包括伺服器、網路和自訂組態。如果企業開設了另一個區域分公司,他們可以使用 IaC 複製完全相同的環境,並迅速讓分公司上線和營運。IaC 移除了過去需要的重複手動步驟和檢查清單。

減少組態錯誤

由於人為參與,所以手動組態容易出錯。人們會犯下錯誤。或者,由於在另一個設定 (例如測試環境) 中遺漏某個設定 (例如開發人員環境) 中的變更,可能會出現組態偏差。

相較之下,IaC 可減少錯誤並簡化錯誤檢查。如果由於 IaC 程式碼更新而出現錯誤,您可以透過將程式碼庫復原到最後一個已知穩定的組態檔案,快速修復這種情況。也可以針對其他原因使用舊版 IaC 組態檔案來復原環境,例如部署較舊的應用程式版本。

反覆運作最佳實務環境

原始程式碼控制可讓軟體開發人員輕鬆地在環境中建置和分支。例如,假設應用程式成長為包含選擇性機器學習模組。開發人員可以分支應用程式的 IaC,以啟動、使用和停止高效能 Amazon Elastic Compute Cloud (Amazon EC2) Trn1 執行個體。他們可以根據應用程式部署的區域來設定部署區域。

基礎設施即程式碼如何運作?

就像軟體程式碼描述應用程式及其運作方式,基礎設施即程式碼 (IaC) 描述系統架構及其運作方式。基礎設施架構包含伺服器、網路、作業系統和儲存等資源。IaC 藉由處理組態檔案 (例如原始程式碼檔案) 來控制虛擬化資源。您可以使用它以規範化且可重複的方式管理基礎設施。 

IaC 組態管理工具使用不同的語言規格。您可以類似 Python 或 Java 中的應用程式程式碼的方式,開發 IaC。您也可以在具有內建錯誤檢查的整合式開發環境 (IDE) 中撰寫 IaC。你可以在原始程式碼控制下維護它,並在每次程式碼變更時遞交。IaC 檔案包含作為更廣泛程式碼庫的一部分。

IaC 的方法

基礎設施即程式碼有兩種不同的方法。

宣告式

宣告式 IAC 可讓開發人員描述構成所需系統結束狀態的資源和設定。IaC 解決方案接著會根據基礎設施程式碼建立此系統。這使得宣告式 IaC 易於使用,只要開發人員知道他們執行應用程式所需的元件和設定即可。

指令式

指令式 IaC 可讓開發人員描述設定資源的所有步驟,並獲得所需的系統和執行狀態。雖然撰寫指令式 IaC 並不像宣告式 IaC 那麼簡單,但是指令式方法在複雜的基礎設施部署中變得必要。當事件的順序很重要時,尤其如此。

IaC 在 DevOps 中扮演什麼角色?

DevOps 是改善軟體開發與 IT 營運團隊之間協作的程序。它旨在縮短應用程式開發生命週期,並提供高品質軟體的持續交付。DevOps 團隊會將營運活動與開發人員工具和程式碼提交整合,因此應用程式可以擁有極快的發行週期。

DevOps 的主要目標是在整個開發程序中自動化基礎設施任務。您可以將基礎設施即程式碼 (IaC) 整合到持續整合和持續部署 (CI/CD) 管線中。如此一來,當軟體歷經其建置和發行程序時,可以同時進行必要的基礎設施變更。

DevOps 團隊會將基礎設施即程式碼用於多種用途:

  • 快速設定完整的環境,從開發到生產
  • 協助確保環境之間的一致可重現組態
  • 與雲端供應商無縫整合,並根據需求有效地擴展或縮減基礎設施資源

IaC 為開發人員和營運提供一個通用語言。您可以透明的方式檢閱變更,在開發環境中促進更好的協作。

進一步了解 DevOps »

AWS 如何支援您的 IaC 需求?

Amazon Web Services (AWS) 產品是以基礎設施即程式碼 (IaC) 為考量來設計的。因此,您可以在程式碼中定義並執行,藉以安全地管理複雜雲端架構。

以下是可協助您解決 IaC 需求的 AWS 服務:

  • 使用 AWS Cloud Development Kit (AWS CDK),開發人員可以使用熟悉的程式設計語言和互動式組態工具 (全部都在 IDE 中),定義雲端應用程式資源。這樣就不需要為了操作雲端資源而學習新語言和工具。
  • 使用 AWS CloudFormation,開發人員可以在 AWS 基礎設施之外進行建置和擴展。開發人員可以使用 IaC 來定義和管理 CloudFormation 登錄、開發人員社群和內部程式庫中發佈的雲端資源。
  • 對於 IaC 和所有應用程式程式碼的全受管原始程式碼控制,AWS CodeCommit 是一個安全、可擴展的服務,可託管您的私有 Git 儲存庫。

立即建立帳戶,開始使用 AWS 上的基礎設施即程式碼。

AWS 上的後續步驟

查看額外的產品相關資源
查閱開發人員工具服務 
註冊免費帳戶

立即存取 AWS 免費方案。

註冊 
開始在主控台進行建置

開始在 AWS 管理主控台進行建置。

登入