2017年2月21日 星期二

建置Azure App Service for Web的建議實務 - 基礎篇

網站架設的部份,以往都是透過代管的方式或是自申請固定IP自行架設,在雲端的推出後,許多人紛紛打量雲端架構的合適性,在雲端上常見的方式就是透過IaaS的方式,在Azure Portal上啟用一個VM,然後再進行服務的提供,但其實這的情況下,你仍需處理如HA、Load Balance、Backup與OS等層面的問題,除非是真的有其考量性,其實現在有一個方案可以考慮,透過Azure App Service for Web,即可完成快速的完成網站的部署與架設。

關於Azure App Service for Web我們就先逐步來說明建立上的程式,相信在官網上也有相常的資料可以參考,所以文章上我將著重在建立上一些常見的細節,如果有任何問題,也歡迎大家提出。

1、評估初使架構大小
一開始最常遇到的就是該如何設定初使的大小,由於在雲端上屬於使用多少就付多少錢,在你的網站上,一開始我們要先評估一個合適的大小,雖然都有強調會自動延展,但前提是你要使用Standard Tier才可以設定規則自動進行,要不然的話,基本上都是手動進行調整,所以我們就介紹幾個常見且大略的評估方式進行。

1-1 在地端的機器設備為何,經效能監視器進行監控後大約使用到的比例為多少,再換算為何適的大小。
1-2 另外也可以先選擇Basic的類型,然後再透過Application Insight持續進行監控並確認目前的網站回應速度為何。

參考價格(實際的價格請參考官網連結的資訊為主)
Type Instance Cores Ram Storage Prices
Free and Shared F1 Share
(60 CPU min/day)
1GB 1GB NT$0 
D1 Share
(240 CPU min/day)
0.5GB 1GB  ~NT$0.403 per site per hour (~NT$300.10/mo)
Basic Service Plan B1 1 1.75GB 10GB NT$2.3271/hr
(~NT$1,731/mo)
B2 2 3.50GB 10GB NT$4.6541/hr
(~NT$3,463/mo)
B3 4 7GB 10GB NT$9.3083/hr
(~NT$6,925/mo)
Standard Service Plan S1 1 1.75GB 50GB NT$3.1028/hr
(~NT$2,308/mo)
S2 2 3.50GB 50GB NT$6.2055/hr
(~NT$4,617/mo)
S3 4 7GB 50GB NT$12.41/hr
(~NT$9,234/mo)
Premium Service Plan P1 1 1.75GB 250GB NT$9.3083/hr
(~NT$6,925/mo)
P2 2 3.50GB 250GB NT$18.62/hr
(~NT$13,851/mo)
P3 4 7GB 250GB NT$37.23/hr
(~NT$27,701/mo)
P4 8 14GB 250GB NT$74.47/hr
(~NT$55,403/mo)

2、資料中心選擇

基本上我們通常都是建議選擇放置在主要的客戶群在那,就將Data Center放在最接近的地方,基本上我們通常建議放在日本的Data Center(個人建議),另外你也可以透過下列的連結測試那一個Data Center離你最近。


Microsoft Azure Speed Test
http://azurespeedtest.azurewebsites.net/

3、部署方式

在部署的方式上有多種方式可以選擇,如TFS、Git、FTP、Visual Studio等方式進行,但一般來說我們較簡單的方式就是透過Visual Studio來進行部署,但強烈建議在第一次開發完成後,請先至Azure Portal先將你的網站進行建立後,再透過Visual Studio進行部署,會是一個比較好的方式。

另外我們也可以透過FTP手動的進行網站的部署動作,相關FTP的資訊,可以透過站台上的概觀資訊查到,如下圖顯示。


4、基本參數建議設定

在基本參數設定上這是個人的經驗建議,在啟用上請特別注意我講到的部份,真的有合適才建議進行啟用的動作,不一定適合每一個站台。

4-1 一律開啟(Always On)

此設定為當網站閒置時,系統會將資源嘗試釋放(回收),藉以降低使用率,但當有使用者再發出請求時,會因為進行初使化的動作,而造成頁面回應過慢,所以建議如果系統為持續有使用者進行訪問的話,請將此設定設定為 "開啟",藉以避免因系統初使化造成頁面回應過慢的問題,此值預設為 "關閉"。

4-2 Local Cache

實際就是將你的網站中的/site與/siteextensions的目錄進行快取設定,這樣將有助於你的網站在啟動與快取上,如果你的網站的總大小小於2GB的情況下,建議可以考慮啟用此選項。

WEBSITE_LOCAL_CACHE_OPTION = Always

設定方式:
站台 -> 設定 -> 應用程式設定


PS:更改應該程式設定時,會造成網站的重新載入,所以再請注意。

4-3 偵錯 - 遠端偵錯

遠端偵錯可以有效的幫助開發者透過遠端連線的方式與開發工具(Visual Studio)進行直接除錯的動作,但此選項建議非必要千萬不要在正式環境中啟用,因為可能造成網站被鎖定等待遠端開發工具進行逐步除錯,所以請千萬要注意。

請關閉此選項

4-4 ARR 同質性(ARRAffinity)

此值預設的情況下是開啟的,主要是識別每一個連線的使用者,並且將其導向相同的主機上,但如果你有啟用多個Instance時,有可能會發現許多的使用者都在同一個Instance上,
啟用這個值之後,可以有效的將使用者的訪問平均的分佈在多個Instance上,但要特別注意由於導向不同台,所以可能會有Session Loss的問題,這個問題在啟用前建議先行處理。


4-5 平台(Platform)

平台的部份可以設定成32位元或64位元,基本上在一般Visual Studio上編譯都會以AnyCPU的方式進行,也就是可以在不同的平台(x86、x64、ARM)上執行,但基本上二者間有一些不同的差異,個人看法上,簡單的來說,你可以看你目前網站是否有使用超過4GB的記憶體,要不然的話,其實你可以考慮使用x86即可,而且在同一個網站透過x86與x64的平台進行執行時,載入使用的記憶體也會稍為大一點,所以不一定要選擇x64的架構進行執行,看實際上的需求而定。


此篇我們就先介紹到此,下一篇我們會再介紹一些進階的功能設定,也希望可以有效的幫到大家快速的了解此服務。

相關介紹:
建置Azure App Service for Web的建議實務 - 進階篇
http://caryhsu.blogspot.tw/2017/02/azure-app-service-for-web_25.html


參考連結:
App Service plans
https://azure.microsoft.com/en-us/pricing/details/app-service/plans//
Monitor Azure web app performance
https://docs.microsoft.com/en-us/azure/application-insights/app-insights-azure-web-apps
Microsoft Azure Speed Test
http://azurespeedtest.azurewebsites.net/
Azure App Service Local Cache overview
https://docs.microsoft.com/en-us/azure/app-service/app-service-local-cache
Disabling ARR’s Instance Affinity in Windows Azure Web Sites
https://azure.microsoft.com/zh-tw/blog/disabling-arrs-instance-affinity-in-windows-azure-web-sites/
Configure web apps in Azure App Service
https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-configure
Does your Web App really need 64-bits?
https://blog.cdemi.io/does-your-web-app-really-need-64-bits/

關鍵字:App Service for WebWeb AppsLocal CacheARRAffinityBest Practices


沒有留言:

張貼留言