假設您在一家通過網絡平台提供服務的醫療保健公司工作。該平台的用戶界面設置為在Azure應用服務中托管的PHP Web應用程序。經常會將應用程序源代碼的更新推出到生產環境,以增強功能或解決問題。然而,這些更新有時會引入問題:
- 未檢測到的錯誤: 盡管經過嚴格測試,測試人員偶爾會錯過關鍵錯誤,導致生產環境中出現問題。
- 停機時間: 當發現錯誤時,回滾更改會導致服務中斷,這會讓最終用戶感到沮喪。
- 部署速度慢: 部署和編譯過程影響應用程序的響應速度,尤其在高峰使用時段,導致用戶不滿。
有沒有更好的解決方案來確保無縫更新而不中斷服務?是的!Microsoft Azure提供了一個強大的功能,稱為部署槽。
Azure部署槽
Microsoft Azure 的部署 槽提供了一种高效可靠的方式来管理应用程序更新。有了部署槽,您可以同时维护新旧版本的应用程序。在这两个版本之间进行切换就像点击几下鼠标那样简单,消除了耗时的代码回滚的需要。
什么是部署槽,它们是如何工作的?
Azure 部署槽是 Azure 应用服务 中的一个功能,允许您在向所有最终用户提供之前创建用于部署和测试您的 Web 应用程序的独立环境。每个部署槽都作为您的应用程序的独立实例运行,可以根据特定目的进行定制,例如:
- 暂存: 用于在进入生产环境之前测试和验证更改。
- 生产: 为最终用户提供稳定版本的应用程序。
- 额外槽位: 根据您的定价计划,您可以为 QA、测试或其他环境创建槽位。
部署槽的关键特性
预热实例
部署到暫存槽時,該槽會預熱。這意味著應用已完全初始化,並準備好處理用戶請求,延遲最小化。
將暫存槽切換到生產中確保沒有停機時間或冷啟動延遲。
無縫流量重定向
在切換過程中,槽之間的流量重定向是無縫的,確保沒有用戶請求丟失。
回滾功能
如果在將新版本切換到生產後出現意外問題,可以立即切換回“上次已知良好”的配置。
部署槽如何解決問題
生產之前的錯誤檢測
通過將新代碼部署到暫存槽,測試人員可以在模擬生產環境的環境中驗證應用程序,從而減少未檢測到的錯誤的風險。
無服務中斷
由於應用在暫存槽中預熱,切換到生產中發生時無需停機,為最終用戶提供不間斷的服務。
更快的部署
與傳統部署方法相比,槽的切換是瞬時的,大大減少了部署所需的時間,提高了響應速度。
設置和配置 Azure Web 應用程式
1. 創建網頁應用程式
使用您的帳戶登入 Azure 入口網站。搜尋 應用服務 並點擊它。
點擊 網頁應用程式。
根據您的應用程式需求選擇 1 到 7 個值,然後點擊 檢閱 + 創建,接著點擊 創建。本示範的網頁應用程式名稱為 webappdemotosrs。
webappdemotosrs (網頁應用程式) 可透過預設域名 URL 訪問。
2. 部署插槽創建
點擊 部署插槽 面板。
點擊 新增插槽。
為插槽命名 名稱。
選擇是否從另一個插槽克隆設置。如果選擇克隆,則會從您指定的插槽將設置複製到新的插槽。
點擊 新增。
使用提供的名稱創建插槽。
配置 Web 應用部署設置
在此任務中,您將配置 Web 應用部署設置。部署設置允許連續部署。這確保應用服務具有應用程序的最新版本。在暫存插槽中,選擇部署中心,然後選擇設置。在來源下拉列表中,選擇外部 Git。注意其他選擇。
- 在存儲庫字段中輸入:https://github.com/Azure-Samples/php-docs-hello-world。
- 在分支字段中輸入 master。選擇保存。
- 從暫存插槽中選擇概述。
- 選擇默認域連結,並在新標籤中打開該URL。
- 驗證暫存槽顯示Hello World。
3. 部署插槽交換
點擊 交換。
點擊 開始交換。
一旦交換完成,將彈出通知顯示其狀態。
4. 在 部署插槽交換
生產默認域URL輸出:
暫存 默認域URL輸出將如下所示
這證明了在部署插槽交換後,生產插槽開始運行新代碼,而暫存插槽則恢復為舊代碼。
摘要
在本文中,我們學習了如何在Azure應用服務中創建和使用部署插槽。我們使用插槽來測試和部署我們應用的新版本,並且交換這些部署插槽。我們可以交換插槽來將經過測試的應用部署到生產環境,並在出現意外問題時回滾已部署的應用。在使用部署插槽時,請記住Azure在交換之前會預熱應用,並且流量重定向是瞬時的。結果是您的應用在部署時不會有服務中斷或性能下降。
Source:
https://dzone.com/articles/azure-web-apps-deployment-slots