Infrastructure as Code

DevOps 的一個基本原則是以開發人員對待程式碼的管道對待基礎設施。應用程式原始碼具有定義的格式和語法。如果程式碼不是按照程式設計語言的規則編寫,則無法建立應用程式。程式碼儲存在版本管理或來源控制系統中,其中會記錄程式碼開發歷史記錄、變更和錯誤修復。程式碼被編譯或內建到應用程式中時,我們期望建置一致的應用程式,而且建置可重複而且可靠。

採取 Infrastructure as Code 表示將同樣嚴格的應用程式原始碼開發套用於基礎設施佈建。所有組態都應以宣告方式定義,並儲存在來源控制系統中,例如AWS CodeCommit,與應用程式原始碼相同。基礎設施佈建、協同運作和部署也應支援 Infrastructure as Code 的使用。

傳統上,基礎設施是使用指令碼和手動流程的組合進行佈建。有時,這些指令碼儲存在版本控制系統中,或者逐步記錄在文字檔案或執行手冊中。編寫執行手冊的人通常不是執行這些指令碼或按照執行手冊進行的人。如果這些指令碼或執行手冊不經常更新,則可能不利於部署。這會導致新環境的建立並不總是可重複、可靠或一致。

與上述情況不同,AWS 提供一種以 DevOps 為中心來建立和維護基礎設施的方式。與軟體開發人員編寫應用程式碼的方式類似,AWS 以程式設計、描述性的和聲明性的方式提供支援基礎設施的建立、部署和維護的服務。這些服務提供的嚴謹性、清晰度和可靠性。本白皮書中討論的 AWS 服務是 DevOps 方法的核心,構成了許多更高等級的 AWS DevOps 原則和實務所依據的基礎。

AWS 提供以下服務將基礎設施定義為程式碼。