何謂基礎架構程式碼 (IaC)?

基礎架構程式碼 (IaC) 可讓企業將基礎架構的配置方式自動化以便有效率地擴充雲端,節省時間與成本。

IaC

基礎架構程式 (IaC) 可讓企業更有效率地控制雲端環境的變更與組態設定。IaC 採用 DevOps 的作法,讓開發人員與營運人員更密切地合作開發虛擬機器,並建構相關的虛擬網路以及虛擬機器內的應用程式。

命令式或宣告式

使用 IaC 時必須決定的一件事就是要採用命令式或宣告式的自動化方法來進行環境的變更。IaC 本質上比較接近宣告式。命令式與宣告式的差異,一種簡單的理解方式是:前者是指定程式該如何運作,後者是指定程式該完成的目標。

要使用命令式自動化對基礎架構做變更,您要透過指令列介面 (CLI) 來修改雲端設定,首先要從容器內部開始變更,接下來是虛擬機器 (VM),然後是虛擬私有雲,按照這樣的順序,將所有的變更指令全部寫在一個腳本當中。這份清單會非常詳盡,但如果在變更發布之後又要對很多台機器做組態設定調整,那就必須整個腳本再重新執行一次。

至於採用宣告式自動化方法則是要先設定目標,例如,您無須使用 CLI 來列出執行 VM 組態設定變更的每一道步驟,您只需宣告您要一台配置在網域下的 VM 即可,剩下的就交由自動化工具幫您搞定。宣告式方法可讓您更容易指定您希望自動化工具幫您完成的需求。

可變更或不可變更

組態設定異動是基礎架構任何或所有環節在組態設定上面臨的一大考驗。這樣的情況很容易發生在可變更的基礎架構上。可變更就意味著有可能變動,當基礎架構的某個環節變動時,它很可能會因此與其他的環節不同調。對資安來說很重要的一個原則是,整個基礎架構所套用的組態設定應該一致。

不可變更的基礎架構在部署之後就無法更動,要更動還是可以,但必須回去修改最原始的宣告敘述。等到所有變更都準備好時,所有相關裝置或組態設定再統一變更。從資安的角度而言,一致性有其必要,因為只要有任何一扇門未關閉,駭客就有機會入侵。將每一扇門都確實關閉,那駭客就無法輕易得逞。

DevOps

開發、測試,然後將應用程式部署到營運環境上,通常需要有部分開發人員在營運環境待命,反之亦然。當網路與虛擬機器的組態設定是由一套系統來控制,部署起來就會更順且更快,同理,開發人員可經由一套自動化申請方式來取得容器或虛擬機器,就能讓程式碼維持一致的穩定度,進而達到更好的版本控管,也更容易追蹤。

相關文章

相關研究