部署策略
- 4 分鐘
DevOps 做法牽涉到頻繁的發行週期,組織及其終端使用者在許多方面可從中受益。 因為個別部署的規模較小,所以更快速且更輕鬆,但仍可能發生錯誤。 若要降低問題的可能性,將必須採用最符合組織需求的部署策略。
您已知道「大規模部署」方法,有些人將其稱為「大爆炸」策略。 您知道此方法不適用於現代化應用程式。 在現代化作業內容中已有一些其他熱門的部署策略,且每個策略都有各自的優點和缺點 (視情況而定)。
輪流部署策略
輪流部署策略採取漸進方式來引進新版本的程式碼。 新版本會在一段時間內分階段推出,以逐漸增加新程式碼的執行個體,同時減少舊的執行個體。 這表示新舊執行個會並存於組織內。 例如,您可一次升級一部伺服器、虛擬機器或容器上的軟體。
這項策略的優點是,您可在生產環境中監視新的程式碼,以確保其符合效能、安全性、可靠性及其他標準,然後進行廣泛的部署。
藍綠部署策略
藍綠部署策略使用兩個彼此相同的個別環境。 其中一個是包含新版本軟體的測試環境,另一個則是目前的生產環境。 當滿意軟體運作正常且符合標準時,您可從目前的生產環境完全切換到新環境,以便現在能夠處理所有生產環境流量。
藍色環境是目前生產環境。 綠色環境是其完全重複項。 您必須先在綠色環境中部署新版本的軟體,然後當準備好時,才會將應用程式流量從藍色環境路由傳送到綠色 (現在是生產環境)。
這項策略的優點是,您可在不停機的情況下近乎即時地進行切換。 如果在綠色環境上線之後發生問題,也很容易切換回藍色。
Canary 部署策略
Canary 部署策略結合輪流部署與藍綠部署的一些項目。 您不會一次全部切換,而是將新版本部署到生產環境的有限部分,再以漸進方式將所有流量移轉到新版本。 軟體會以累加步驟部署到有限數目的執行個體或使用者,直到您確認其正常運作,再推出到基礎結構的其餘部分。
此名稱來自於在煤礦中使用金絲雀作為預警系統的實務。 在 Canary 部署中,您可執行自動化測試,並使用監視和分析來取得一小部分執行個體或使用者內新版本的任何問題預警。 如此一來,整個生產環境就不會受到影響。
功能旗幟
功能旗標的概念是另一項策略,需要稍微更複雜的開發人員作業。 我們不會有一舊一新 (可能是其中有新功能) 兩個不同版本的相同軟體,而是提供包含舊軟體加上新變更 (功能等) 的軟體版本。 在針對新變更翻轉旗標以啟動「功能旗標」之前,該變更預設會潛伏且不可見。 該旗標可能有許多種形式,包括設定檔中的一行、命令列引數、軟體在啟動時所諮詢線上伺服器的特殊回應等。
此方法的一個優點是,我們可在發生問題時輕鬆復原,或很容易地慢慢推出變更。 我們不需要將新版本 (連同所有位元) 傳送給伺服器或客戶,只要關閉或開啟適當的旗標,即可將其降級或升級。
部署最佳做法
無論使用哪一種部署策略,都有一些最做法可協助在推出新軟體或新版本的現有軟體時,將風險降至最低:
使用適當的工具 (例如 Azure Pipelines) 來建立持續整合和部署管線。
整合自動化測試。
使用通訊通道來通知適當的當事人測試結果;例如,如果部署失敗或遇到問題等,則向小組發出警示。
部署後立即監視問題。
如果新版本部署未通過健康狀態檢查或未正常運作,請規劃復原。