Azure Web App Deployment Slot 功能

Deployment Slot是Azure Web App超級好用的重要機制,你可以透過這個方式,輕易的實踐不停機更版的藍綠佈署,或是A/B測試,金絲雀佈署等進階佈署功能。

請先確定你的網站是S1以上的等級,如果不是,可透過Scale Up功能放大網站:
圖片

接著,我們就可以來建立Slot,你可以為slot取不同的名字。基本上,你可以把一個slot視為一個獨立的站台,但這個站台是依附於主站台之下,當需要時,我們可以把該站台和主站台對調(swap)。

建立與使用slot

例如,我們可以建立一個staging站台:
圖片

你會發現,建立好之後,你就有兩個獨立的網站,各自有獨立的網址:

在上面的例子中,主網站網址是:

https://webappname2023.azurewebsites.net

建立出來的 slot 網站網址則是:

https://webappname2023-staging.azurewebsites.net

這兩個網站的網址,都各自可以連入。

而你在佈署程式碼的時候,也是可以獨立佈署,基本上就可以視為是兩個獨立的網站。

而重點在於,你可以隨時交換(swap)這兩個網站的內容。

例如,我們可以把想要上線的新版,先佈署到 -sraging 這個站台,然後由測試人員測試無誤後,再透過 swap 功能交換網站,這樣 -staging 網站會瞬間跟原本的主網站交換。

而用戶所看到的則是,網站畫面(或功能)瞬間更新了,因為用戶是一直從主網站的網址連入,處理的好,完全不會有停機的需要。

後面我們會展示這個 zero-downtime的swap功能。而所謂的"處理的好",有許多因素,包含網站設計的架構,應該盡量 遵循 stateless,並且不把資料存放在記憶體中。

流量百分比

除了實踐藍綠佈署的網站瞬間更版,另外slot還有導流的功能,wab app有內建的 traffic manager,你可以從後台設定你希望實現了流量導引比例:

圖片

設定完成之後,從網站主網址(沒有-staging的那個),進入的流量,就會有80%流量被留在主網站,有20%的流量被導引到 -staging 網站,這個功能,可以幫助我們輕鬆實現 A/B testing 的網站佈署實作。

留言

這個網誌中的熱門文章

使用LM Studio輕鬆在本地端以API呼叫大語言模型(LLM)

VS Code的字體大小

使用 Dify 建立企業請假機器人

使用 Dify API 快速建立一個包含前後文記憶的對談機器人

使用C#開發LineBot(3) - 使用LineBotSDK發送Line訊息