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唷

留言

這個網誌中的熱門文章

使用 Airtable 在小型需求上取代傳統資料庫

在POC或迷你專案中使用 LiteDB

專業的價值...

精彩(且驚人)的Semantic Kernel入門範例

Azure Web App 的基本驗證被停止了!