前言

可擴展性是指 Web App 有能力可以處理逐漸成長的流量,或者能夠透過自我擴展以適應流量逐漸成長環境。在本系列文章中,我們將介紹 App Service 內各種不同的效能調整方法,像是 Scale Up (相應增加) Scale Out (相應放大)AutoScale (自動調整)Scale Geographically (地域規模調整),我們將逐一介紹。本篇文章若有錯誤或任何建議,請各位先進不吝指教。



介紹

Scale up (相應增加)
在說明 Scale up 之前,我們先談談 App Service Plan:當建立一個 Web App 且選擇 App Service Plan 時,您必須先做出第一個影響效能與擴充性的決策。Front End Service、Infrastructure 與 worker 將會依據此服務計畫。這些資源可以共享與專用。
資源
免費與共享層計畫
基本、標準與進階層計畫
App Service 隔離環境
Front End Service
共享
共享
專用
Infrastructure
共享
共享
專用
Worker
共享
專用
專用

你可以藉由變更價格層級進行擴充,我們稱之相應增加。

越向上擴展,您將獲得更多的 CPU、記憶體、磁碟空間與額外應用功能。如專用的虛擬機器、自訂網域、憑證、暫存插槽、自動規模調整…等。這些功能都能在 App Service → 相應放大 (Scale up) 內進行選擇。
註:若您的應用程式依賴其他服務 (如 Azure SQL 或 Azure Storage),您必須單獨的提升這些資源。


Scale out (相應放大)
另一個提高效能的方式是 Scale out (相應放大), 相應放大功能在於可以增加虛擬機器的 instance 數量。一般來說,您最多可以增加至 20 個 instance,實際取決於你的價格層級。隔離層級最多可以提升到 100 個 instance。
如下圖所示,你可手動設定 instance 數量。


AutoScale(自動縮放)
自動縮放提供許多參數進行調整,比方說依據 CPU 使用百分比進行向上或向下縮放。 當平均 CPU 使用率超過設定的最大值時,系統將自動地進行擴展。理所當然,平均 CPU 使用率小於設定最小值,即會進行縮小系統。如下圖所示,若設定範圍為 40-80,則低於40% 時會縮小系統規模;高於80%時會提升系統規模,您可以依據您的效能指標進行 instance 調整。

您也能透過排程在固定的時間進行規模調整。您可以設定工作日期間提高效能、假日價低效能。預設規則下,若您沒有設定排程規則,你的自動縮放規則將一直運作。您可以增加另一個規則,配置特定時間進行排程。


Scale Geographically (Grow Out, 地域規模調整)
目前為止,我們討論了應用程式兩種擴展方式:
垂直擴展 (Scale up,相應增加):更改資源容量,將應用程式移動到更大的虛擬機器。
水平擴展 (Scale out,相應放大):增加會減少 instance 數量。隨著資源增加,應用程式會持續運作而不會中斷。若需求下降,也能乾淨的關閉資源並解除分配。
對於多數客戶來說,水平與垂直擴展已經能滿足需求。但有些因素會讓客戶考慮地域性擴展,也稱為Grow Out。地域規模調整有以下好處:
1. 更細部規模調整:您可以獨立縮放各個區域的規模。
2. 更貼近客戶:若您的應用程式在全世界發行,且在某個區域內受到歡迎,您可以考慮將應用程式放置接近客戶位置,提供更好的效能。
3. 高可用性與災難恢復:多區域部署可以在特定區域發生災難時提高可用性,當特定區域發生問題時仍可以持續提供服務。