Azure Web App (二)使用部署槽切換部署環境代碼

一,引言

前天咱們將到使用Azure的 Pass 服務 「Web App」 去部署咱們的.NET Core Web項目,也同時有介紹到如何在VS中配置登錄中國區的Azure帳號,今天接着講,咱們部署完咱們的Web服務,進行完測試後,確定是要發佈到生產環境,可是咱們不可能再去建立一個相同的Web App,配置上生產環境的域名,配置上生產環境的數據庫鏈接字符串等等,而 Azure 的 Web App是能夠經過本身的一個叫 「Deployment slots(部署槽)」的功能進行切換。咱們來看一下微軟給出的使用部署槽的優勢,如下是微軟的官方文檔提到的優點html

將應用程序部署到非生產槽具備如下優勢:web

  • 能夠在分階段部署槽中驗證應用更改,並將其與生產槽交換。
  • 首先將應用部署到槽,而後將其交換到生產,這確保槽的全部實例都已準備好,而後交換到生產。 部署應用時,這樣可避免停機。 流量重定向是無縫的,且不會因交換操做而刪除任何請求。 當不須要預交換驗證時,能夠經過配置自動交換來自動化這整個工做流。
  • 交換後,具備之前分階段應用的槽如今具備之前的生產應用。 若是交換到生產槽的更改與預期不一樣,能夠當即執行同一交換來收回「上一已知的良好站點」。

下面,咱們正式開始今天的分享。數據庫

----------我是分割線----------post

Azure Web App 部署系列:測試

1,Azure Web App(一)發佈你的Net Core Web 項目

二,正文

1,升級應用服務計劃

  訂價層爲 「Free」 的Web App是沒法使用 「Deployment slots」 的功能的,咱們須要進行將訂價層升級到 「Standard」 或者 「premium」spa

下圖中,咱們能夠看到 Web App 的 「Deployment slots(部署槽)」 都是有本身的主機名的實力應用,你的應用和環境配置能夠在兩個部署槽位進行交換。設計

 點擊 「Upgarte」,選擇 「Production」=>"S1",能夠看到 "Staging slots" 過渡槽這個功能3d

 

 點擊 「Apply」,升級後,咱們繼續跳轉到 「CnBateWeb」 的 Web App,左側菜單選擇 「Deployment」=>"Deployment slots",目前只有一個默認槽位,而且狀態是 「Running」 的htm

 

 

 點擊 「Add Slot」,blog

 

 

 

 

 

 Name 輸入 「IntegrationTesting」,克隆設置選擇 「cnbateblogweb」,點擊 「Apply」

 

 

 回到的咱們的代碼中,咱們嘗試去修改 Index 頁面,在 Welcome 的後面追加 「IntegrationTesting」,咱們能夠把它理解成,咱們的 web項目如今新增了一個功能,同時咱們須要進行集成測試,測試經過後,須要發佈到生產環境中去。

 假如咱們在本地開發完成後,也進行了簡單的測試,如今須要發佈到雲端,須要QA的集成測試,咱們選擇剛剛建立好的 「IntegrationTesting」的槽位。進行發佈。

 回到 Azure Portal 中,咱們建立的 "CnBateBloaWeb" 的 Web App,點擊部署槽位剛剛建立的 「cnbateblogweb-IntegrationTesting」 的超鏈進行跳轉

 

 

 選擇左側菜單 "Overview",,點擊圖中用紅色方框圈起來的「Browse」,進行瀏覽,測試。

 

 

 bingo,咱們能夠清楚的看到,"IntegrationTesting" 是咱們剛剛爲了集成測試,添加的一個標識,做爲咱們demo項目的 「假功能」

 

 假如咱們新發布的項目通過QA的集成測試經過後,咱們須要將這一整套的代碼發佈到咱們的生存環境中去,這個時候,咱們還像上一篇將的那樣在VS中發佈選擇以前建立的名字叫 「CnBateBlogWeb」 的 Web App? No,No,No,此時,咱們已經將開發好的新功能的代碼發佈到新建立的 「cnbateblogweb-IntegrationTesting」 的部署槽裏了,咱們只須要將部署槽裏的兩個槽位進行交換便可快速完成測試環境到生產環境的代碼的切換,接下來,咱們進行交換 測試/生產 環境的部署槽。

回到 「Deployment Slot」 頁面,點擊 「Sswap」 進行交互。

 

 源 選擇咱們集成環境的 「cnbateblogweb-IntegrationTesting」,目標 選擇  「cnbateblogweb」,點擊 「Swap」.

 

 在 Azure Portal 上這個過程須要等待差很少20多秒,可是其實,它們兩個槽位以及進行了無停機的交換了,咱們進行拿着生產環境的域名進行訪問,能夠看到,咱們成功的將剛剛加的新功能發佈到生產環境上了。

 bingo,咱們進行的分析到此也就完了。

三,總結

今天咱們演示了一下,如何在Web App中建立 「Deployment Slot」進行快速無停機部署新功能代碼,也使用VS進行發佈到建立的Web App中建立的新的部署槽位中,同時也引出了另一個問題,環境變量怎麼切換,切換槽位後,生產環境的數據庫鏈接字符串怎麼辦。下一篇文章,我會繼續 部署槽,進行配置部署槽設置,同時在交換槽位的時候,測試環境/生產環境都可以準確的鏈接到對於的數據庫

代碼繼續暫時不上傳了,由於沒有設計到其餘設置,只是簡單的修改了主頁,下一篇講解 配置槽設置 的時候再上傳代碼

做者:Allen 

版權:轉載請在文章明顯位置註明做者及出處。如發現錯誤,歡迎批評指正。

做者:Allen 版權:轉載請在文章明顯位置註明做者及出處。如發現錯誤,歡迎批評指正。
相關文章
相關標籤/搜索