Web site migrate to Azure

在雲端時代,使用 Paas可以實現 Serverless的大同境界,享受後台資源的自動縮放,讓我們可以盡全力在前台的新功能開發,或是使用者用戶體驗的優化或提升。但是 Web可能是由不同的作業系統或是程式語言所組成的,都有辦法移到 Azure嗎?答案是可以的。不管你是Linux apache, Windows IIS, dot net, php, java...等,而且微軟還有移轉精靈可以用喔!

話講在前頭,當然在兼容並包的 Azure還是有支援不到的地方(例如其他的程式語言或是Unix作業系統…等),但是在科技昌明的今日,我們還有一招 Container(相關的技術可以參考這一篇)可以用。因為畢竟網站還是會放在作業系統,所以放在 OS-depended的 Container就能解決。除非你已經是Paas架構了!

以下是微軟的裝置購物商城的架構圖案例,它是一個可擴充之電子商務 Web 應用程式 Paas架構。這個系統架構的價值是在,Web Apps可以隨著前端的瀏覽與交易人數,自動縮放後台的運算資源。不用事先買足尖峰時段的硬體設備,實現用多少付多少。尤其是像江蕙演唱會、過年過節的火車票…這種旺季與淡季落差很大的情境,特別適合。
在競爭激烈的台灣,一般來說很難有長期的
Niche market ,大多情況會是少輸為贏商務競爭。所以,與其你拱一個超高規格,賣進去今天可以休息一整年大單;到不如建議客戶租這種像如意金箍棒,生意愈好付愈多的雙贏規劃。其次,從市場策略來看,金字塔上層的客戶數量少,且結單時間長;到不如攻中間層,可以快速複製與結單時間短的生意。最後是資安問題,在網際網路上做生意,客戶與駭客同時來自四面八方,中小企業在資安防護或是個資的保護層級是否足夠?公有雲上面已經通過世界各國的資安稽核認證,包含電子支付的 PCI-DSS認證,以及GDPR的防護。想做全世界的生意嗎?不要再學人瑞把錢藏在枕頭下了…裡面包含簡易的訂單處理工作流程的9個分解動作。開發人員能使用 Azure functionsWeb 應用程式,專注在打造個人化的體驗,而讓  Azure 去負責煩人的 Infrastructure 的維運與管理。
羅馬不是一天造成的,接下來我們要一步一腳印,先討論怎麼把網站移轉至雲端?然後是資料庫怎麼移轉雲端?甚至是改寫成微服務去處理巨量且重要的商業模式。

假設A公司有一個 ASP.net with SQL server 2017(以Northwind db為例)的網站,我們先在本機的瀏覽器鍵入127.0.0.1去瀏覽它
也從SSMS 檢視一下Northwind資料庫
接下來我們要使用微軟寫的網站移轉精靈,先鍵入https://appmigration.microsoft.com
這個精靈可以提供你直接對Internet網際網路上的網站做評估,或是下載至地端對你內網中的網站做評估
在本範例中,將示範如何將地端內網中的網站做評估,並且移轉至雲端Azure
,所以我們要點選download
選擇GA的版本(而非最新但還在Preview)
啟動後,在第一個畫面會來到Choose a Site,工具能夠抓到本機中的 Default Web Site,並且按下Next
畫面來到 Assessment Report,可以看到11個item success,1個 warning
Check一下警告的item
工具會協助我們分析相關的問題,例如Port binding。接著回到工具,按下Next
工具會進入Login to Azure頁面,並提供Device code,讓我們可以在另外開啟的瀏覽器中,接續移轉的動作
在新開的瀏覽器中貼上剛才複製的代碼
輸入欲登入的Azure portal的帳號
畫面提醒我們已經完成,並且可以關閉這個視窗
Azure Options頁面中,工具已經帶出Azure訂閱,接下來你要決定Resource group(虛擬容器)、網站名稱、資料中心位置
在本頁的最下面,選擇Set up hybrid connection to enable database connection,然後給予本機的機器名稱與資料庫的埠號,並按下Next
工具就會開始進行移轉
接著畫面會跳出下載hybrid connection manager,點擊並安裝它
安裝畫面
安裝後會在背景中執行,若你要把它叫起來,它是長成這個樣子
再回到精靈,已經完成。可以按下Go to your website去確認一下
果然,已經網站已經在Internet網際網路上面了

最後我們以 Azure Web Apps 的四種架構來做為結尾,首先是基本型:前端可以選擇透過 AzureAD整合消費者的OpenID,或是自己維護會員系統。在加上Blob storage分散式儲存系統,來應付使用者對於網站的內容的瀏覽快速回應需求,以及後端的Paas資料庫的整合。延展加強型:為了改善網站的延展性與效能,在網際網路的存取增加 Azure Front door服務,來提供網路協定第七層的智慧路由;在儲存端增加了CDN服務,來提供內容遞送的加速;在與資料庫的存取間增加了 Redis cache 的快取服務。多重區域部署型:透過多個資料中心的部署,能夠提供客戶更高可靠度,與近端的快速回應,來符合企業的全球佈局。最後一種是 Web應用程式監控,事實上,它可以套用在上述的所有架構中。在本案例中,它是用在監控應用程式與資料層的健康與效能狀況。1.使用者會與應用程式互動。
2.瀏覽器和應用程式服務會發出遙測。
3.Application Insights 會收集及分析應用程式健康情況、效能和使用量資料。
4.開發人員與系統管理員可以檢閱健康情況、效能及使用量資訊。
5.Azure SQL Database 會發出遙測。
6.Azure 監視器會收集並分析基礎結構計量與配額。
7.Log Analytics 會收集及分析記錄與計量。
8.開發人員與系統管理員可以檢閱健康情況、效能及使用量資訊。

 

李秉錡 Christian Lee
Once worked at Microsoft Taiwan