甚麼是基礎架構即代碼(Infrastructure as Code)?

基礎架構即代碼(IaC)讓機構自動化其服務供應方式以有效調整雲服務規模,節省時間與開支。

IaC

基礎架構即代碼讓機構更有效率管控在雲端環境的改動及配置。IaC 的 DevOps 實務守則讓開發及運作人員緊密合作部署虛擬機器、環繞它建構的虛擬網絡及其內的應用程式。

命令式對宣告式

要採用 IaC,其中一個需要作出的決定就是選擇將環境轉變至命令式或宣告式自動化運作。大部份 IaC 的本質都是宣告式。簡單而言:命令式與宣告式的分別在於項目應如何運作及項目需要違致甚麼成效。

要對基礎建設的自動作出至關重要的改動,您可能需要用到命令列介面(CLI)。它會利用程式編程,首先直接將容器改動至雲端,然後依次為虛擬機器及虛擬私有雲。這是一個詳細的列表,但假如在將改動推出至多部機器之後才發覺需要更改配置,各個步驟及程式編程都要重做。

採用宣告式自動化方式需要先確立目標。例如,除了可以採用 CLI 及按部就班列出一個虛擬機器的確切配置外,您亦可簡單表明您需要一個虛擬機器,例如域名附加,然後由自動化取代。宣告式方法讓您可以更容易的表明自動化工具需要達致的目標。

反覆易變對永恆不變

配置漂移(Configuration drift)是配置基礎架構時的大問題。這會在反覆易變的基礎架構上出現。反覆易變就是很容易出現改動的意思。作為基礎架構改動的一部份,它會與其他部份脫節。在保安方面,最重要因素是在整個基礎架構進行穩定的配置。

永恆不變的基礎建設在部署之後就不可再改動。雖然改動依然會發生,但它們須在原始的聲明書中作出。一旦改動準備好,所有相關裝置及配置都會作出一致的改動。從保安角度來看,一致性是必須的,因為黑客只須打開一度門就可以進行入侵。在同一時間關上所有門戶令黑客難於得逞。

DevOps

開發、測試及部署應用程式至生產環境通常都要開發人員等待投產,相反亦然。當網絡及虛擬機器的部署都經由受管控系統作出,部署過程將會更暢順及快捷。開發人員可以透過自動化指令,對容器及虛擬機器作出與編碼同等程度穩定性的要求,令日後的改動版本追蹤更容易。

雲端保安

相關資料

相關研究