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


1 則留言:

  1. Voodoo Magic - YouTube
    Discover videos of voodoo magic in Voodoo Magic for free. In addition youtube to mp3 downloader to the magic, you can also play other games like the popular slot machines such as

    回覆刪除