探索環境部署
假設您在深夜因為伺服器損毀而收到緊急支援電話。
在此情況下,您知道搜尋多個試算表 (甚至是記憶體) 以存取設定新電腦的手動步驟有多痛苦。
然後讓開發和實際執行環境保持一致也有困難。
初始化電腦時,移除人為錯誤的可能性,較容易的方式是使用基礎結構即程式碼。
手動部署與基礎結構即程式碼
了解手動部署與基礎結構即程式碼之間差異的常見類比是擁有寵物和擁有家畜之間的差異。
當您有寵物時,您會為每隻寵物命名,並將其視為個體;如果其中一隻寵物出事,您會很在意。
如果您有一群家畜,您仍然可能會為它們命名,但是您將其視為認為一群。
用基礎結構的術語來說,如果單一電腦當機,而且您需要取代該電腦 (寵物) 時,則手動部署方法可能會有嚴重的影響。
如果您採用基礎結構即程式碼方法,您可以更輕鬆地佈建另一部電腦,而不會在單一電腦關閉時對整個基礎結構 (家畜) 造成負面影響。
實作基礎結構即程式碼
使用基礎結構即程式碼,您可以在文字檔 (指令碼或定義) 中擷取環境。
您的檔案可能包含任何網路、伺服器和其他計算資源。
您可以將指令碼或定義檔簽入版本控制,然後將其用來作為更新現有環境或建立新環境的來源。
例如,您可以編輯文字檔並執行發行管線來新增伺服器,而不是將其遠端處理至環境,並手動佈建新的伺服器。
下表列出手動部署和基礎結構即程式碼之間的顯著差異。
手動部署 | 基礎結構即程式碼 |
---|---|
Snowflake 伺服器。 | 環境之間的一致伺服器。 |
部署步驟會因環境而異。 | 環境可以輕鬆建立或調整。 |
更多驗證步驟和更詳細的手動程序。 | 環境更新的完全自動化建立。 |
已增加文件以記錄差異。 | 轉換為不可變的基礎結構。 |
在週末部署,以允許時間從錯誤中復原。 | 使用藍/綠部署。 |
減緩發行步調,將痛苦和連續假期影響降到最低。 | 將伺服器視為家畜,而非寵物。 |
基礎結構即程式碼的優點
下列清單是基礎結構即程式碼的優點:
- 藉由更輕鬆地追蹤已部署的內容、時機和方式,來提升稽核。 (換句話說,可改善可追蹤性)。
- 提供從發行到發行的一致環境。
- 開發、測試和實際執行環境之間更佳的一致性。
- 自動化擴大和擴增程序。
- 允許組態受到版本控制。
- 提供程式碼檢閱和單元測試功能,以協助管理基礎結構變更。
- 使用不可變服務程序,這表示如果需要環境變更,就會部署新的服務,而且會關閉舊服務;不是更新。
- 允許藍/綠部署。 此發行方法可將停機時間降到最低,其中有兩個相同的環境存在,一個是即時的環境,另一個則不是。 更新會套用至非即時的伺服器。 當測試經過驗證並完成時,會與不同的即時伺服器交換。 會成為新的即時環境,而先前的即時環境不再是即時環境。
- 將基礎結構視為可佈建、取消佈建及視需要重新佈建的彈性資源。