前天咱們將到使用Azure的 Pass 服務 「Web App」 去部署咱們的.NET Core Web項目,也同時有介紹到如何在VS中配置登錄中國區的Azure帳號,今天接着講,咱們部署完咱們的Web服務,進行完測試後,確定是要發佈到生產環境,可是咱們不可能再去建立一個相同的Web App,配置上生產環境的域名,配置上生產環境的數據庫鏈接字符串等等,而 Azure 的 Web App是能夠經過本身的一個叫 「Deployment slots(部署槽)」的功能進行切換。咱們來看一下微軟給出的使用部署槽的優勢,如下是微軟的官方文檔提到的優點html
訂價層爲 「Free」 的Web App是沒法使用 「Deployment slots」 的功能的,咱們須要進行將訂價層升級到 「Standard」 或者 「premium」spa
下圖中,咱們能夠看到 Web App 的 「Deployment slots(部署槽)」 都是有本身的主機名的實力應用,你的應用和環境配置能夠在兩個部署槽位進行交換。設計
點擊 「Apply」,升級後,咱們繼續跳轉到 「CnBateWeb」 的 Web App,左側菜單選擇 「Deployment」=>"Deployment slots",目前只有一個默認槽位,而且狀態是 「Running」 的htm
回到的咱們的代碼中,咱們嘗試去修改 Index 頁面,在 Welcome 的後面追加 「IntegrationTesting」,咱們能夠把它理解成,咱們的 web項目如今新增了一個功能,同時咱們須要進行集成測試,測試經過後,須要發佈到生產環境中去。
假如咱們在本地開發完成後,也進行了簡單的測試,如今須要發佈到雲端,須要QA的集成測試,咱們選擇剛剛建立好的 「IntegrationTesting」的槽位。進行發佈。
假如咱們新發布的項目通過QA的集成測試經過後,咱們須要將這一整套的代碼發佈到咱們的生存環境中去,這個時候,咱們還像上一篇將的那樣在VS中發佈選擇以前建立的名字叫 「CnBateBlogWeb」 的 Web App? No,No,No,此時,咱們已經將開發好的新功能的代碼發佈到新建立的 「cnbateblogweb-IntegrationTesting」 的部署槽裏了,咱們只須要將部署槽裏的兩個槽位進行交換便可快速完成測試環境到生產環境的代碼的切換,接下來,咱們進行交換 測試/生產 環境的部署槽。
源 選擇咱們集成環境的 「cnbateblogweb-IntegrationTesting」,目標 選擇 「cnbateblogweb」,點擊 「Swap」.
在 Azure Portal 上這個過程須要等待差很少20多秒,可是其實,它們兩個槽位以及進行了無停機的交換了,咱們進行拿着生產環境的域名進行訪問,能夠看到,咱們成功的將剛剛加的新功能發佈到生產環境上了。
今天咱們演示了一下,如何在Web App中建立 「Deployment Slot」進行快速無停機部署新功能代碼,也使用VS進行發佈到建立的Web App中建立的新的部署槽位中,同時也引出了另一個問題,環境變量怎麼切換,切換槽位後,生產環境的數據庫鏈接字符串怎麼辦。下一篇文章,我會繼續 部署槽,進行配置部署槽設置,同時在交換槽位的時候,測試環境/生產環境都可以準確的鏈接到對於的數據庫
代碼繼續暫時不上傳了,由於沒有設計到其餘設置,只是簡單的修改了主頁,下一篇講解 配置槽設置 的時候再上傳代碼
做者:Allen
版權:轉載請在文章明顯位置註明做者及出處。如發現錯誤,歡迎批評指正。