Azure Web App的Scale Up、Scale Oute功能

最近幾年高併發流量的網站需求快要變成開發/維運人員的日常。在過去我們小時候的那個年代,大抵不會有網站需要面對瞬間高流量的存取要求,而是大部分的流量是可以預估的。

但近年來,由於服務全球化的趨勢,網站常常要面對從國內外全球而來的用戶,加上幾乎每一個用戶都有手機、平板、PC…等各種不同的連線設備,只消隨便舉辦一個網路活動,或是出現一個網路新聞事件,又或者類似搶票之類的需求,流量的瞬間高峰就很容易出現。

這時,該如何讓網站能夠瞬間達成負載平衡? 或是讓網站能夠不停機(zero-downtime)即刻升級,以因應瞬間出現的流量? 快速的Scale up與Scale out就是我們需要的解決方案。

什麼是 Scale up 與 Scale out

Scale up指的是讓網站的伺服器本體的檔次升級,例如4G的RAM升級成8G的RAM,2核的CPU升級成4核的CPU…

Scale out指的則是伺服器的水平擴展,在流量出現的時候,把原本的一台伺服器,擴展成兩台、四台、八台…等,如此一來,就可以分散流量,也可以實現fail-over(當某台伺服器發生問題時,由其他伺服器接手流量) :

進行 Scale up

在azure web app中,要實現 Scale Up/Down功能,只需要在管理後台設定即可,瞬間完成:

進行 Scale out

S1以上等級的WebApp 就可以進行 Scale out,同樣是簡單的設定即可:

你可能會發現,才幾秒鐘的時間,五台伺服器就瞬間出現,Web App內建的負載平衡器,會幫我們自動導流的動作。

除了手動設定之外,其實還有Auto Scale功能,這讓我們可以透過建立設定檔,在高峰出現(例如CPU使用率、IO、流量增加…)的時候,自動化的進行Scale Out動作,在流量降低時,再自動還原,以降低成本。

請注意,Scale動作是以整個 App Service Plan為單位的。如果在相同的App Service Plan中有多個Web Site,將會被一起Scale唷

留言

這個網誌中的熱門文章

原來使用 .net 寫個 MCP Server 如此簡單

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

開啟 teams 中的『會議轉錄(謄寫)』與Copilot會議記錄、摘要功能

原來使用 .net 寫個 MCP Client 也如此簡單

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