終於到了鐵人賽的第21天了,基本上算是進入了這個系列的最後直路了。所以我們的CICD Pipeline也差不多進入最後一個階段 – 持續部署了。
說到持續部署的話,我們必須提到其中一個非常重要的東西。没錯,就是Infrastructure as Code,基礎架構即程式碼。
到底甚麼是基礎架構即程式碼呢?
在舊世界的部署流程中,伺服器管理員可能會按照一份部署說明書進行部署,而大部份的程序都需要依賴人手,在伺服器上運行不同的指令。這個過程中如果有人手操作上的失誤時,可能會導致整個部署不成功。
加上在一個完整的開發流程中,相關的部署可能要在不同的環境中重覆執行數次。隨著專案開發時間增加,不同環境中的配置可能會不盡相同,亦會大大增加部署失誤的機率。
因此,基礎架構即程式碼就應運而生。
基礎架構即程式碼改變了以往由人手操作的部署方式,而改為使用程序碼去定義或宣告部署的流程。使用程式碼的好處是快捷以及可靠,除了自動化操作外,亦可以減少人手操作上的失誤。
而且由於使用程式碼去進行基礎建設的部署,我們就可以利用版本系統去管理這些基礎架構的程式碼。任何的改動都可以經過審視及批准等流程。即使部署期間發生任何問題,亦可以很快速Roll-back到上一次成功的部署。
使用程式碼去管理亦可以保證不同環境之間設定的一致性。而且當有需要新增一個環境或是進行遷移等操作時,亦可以很輕易地重覆使用部署的程式碼。
使用基礎架構即代碼能夠讓我們整個自動化部署更簡單。因此,接下來我們會介紹其中一個相當有名的工具 – Terraform。明天我們將會嘗試安裝並使用Terraform。
最後十天,多謝大家支持!