《Windows Azure Platform 系列文章目錄》
注意:本文介紹的是使用國內由世紀互聯運維的Azure China服務。
以前的Traffic Manager,背后的Service Endpoint必須是Azure數據中心的Cloud Service。
現在最新的Traffic Manager,Endpoint不僅僅支持Azure數據中心的Cloud Service和Web Site。同時還支持部署在自建數據中心(第三方托管)的應用程序。
這種增強功能對客戶的收益在於,平時客戶可以訪問部署在Azure數據中心的應用。如果Azure數據中心發生問題,可以切換到用戶部署在自建數據中心的應用程序。實現高可用。
注意:如果需要添加自建數據中心(第三方托管)的應用程序,必須使用Azure PowerShell命令行工具。
模擬場景:假設某公司有2個托管網站
- 一個部署在Azure數據中心,DNS為LeiTestWinVM.chinacloudapp.cn
- 另外一個托管在自建數據中心,DNS為www.sjtu.edu.cn (咳咳,只能使用母校的域名了)
- 我們需要使用Azure PowerShell創建Traffic Manager,負載均衡器規則設置為Failover(故障轉移)。同時使用Azure PowerShell增加以上2個服務的DNS節點。
有關Azure PowerShell的內容筆者不想重復了,不熟悉的讀者可以參考筆者之前的文檔:
Azure PowerShell (1) PowerShell入門
1.我們執行以下命令:
$profile = New-AzureTrafficManagerProfile -Name "LeiTrafficManager" -DomainName "LeiTrafficManager.trafficmanager.cn" -LoadBalancingMethod "Failover" -Ttl 30 -MonitorProtocol "Http" -MonitorPort 80 -MonitorRelativePath "/" $profile = Add-AzureTrafficManagerEndpoint -TrafficManagerProfile $profile -DomainName "LeiTestWinVM.chinacloudapp.cn" -Status "Enabled" -Type "CloudService" $profile = Add-AzureTrafficManagerEndpoint -TrafficManagerProfile $profile -DomainName "www.sjtu.edu.cn" -Status "Enabled" -Type "Any" Set-AzureTrafficManagerProfile –TrafficManagerProfile $profile
上面的命令行中:
- 第一行命令,創建了新的Traffic Manager,並且命名為LeiTrafficManager,定義了負載均衡器規則設置為Failover(故障轉移),監控的協議為HTTP,同時設置了TTL和監控的端口80
- 第二行命令,對Traffic Manager增加Azure雲端的DNS 服務:LeiTestWinVM.chinacloudapp.cn (為一台Azure虛擬機)
- 第三行命令,對Traffic Manager增加本地托管的DNS服務:www.sjtu.edu.cn
- 第四行命令,創建該Traffic Manager
2.執行結果如下:
3.查看Azure Management Portal的配置頁面
上圖中,配置頁面中的內容,就是筆者在步驟一的配置。
注意上圖中紅色部分,故障轉移優先級列表:
- 如果2個雲服務都是聯機狀態。用戶優先訪問Azure雲上的服務, DNS為:LeiTrafficManager.trafficmanager.cn
- 如果Azure雲上的服務發生異常宕機了。用戶訪問列表上的第2個地址,DNS為:www.sjtu.edu.cn
4.當Azure Traffic Manager配置的DNS都是聯機狀態下:
訪問Traffic Manager,會優先訪問到第一個DNS服務器地址。截圖如下:
5.如果我們模擬第一個DNS服務器發生宕機的情況。比如筆者將Azure VM關閉。觀察到Azure VM所在的DNS狀態為已降級。如下圖:
6.這時候我們再訪問Traffic Manager,會優先訪問到第二個DNS服務器地址。截圖如下:
這樣,就實現了橫跨本地應用+雲端應用的高可用。
7.最后請讀者別忘記了,將自己的域名增加CName,指向Traffic Manager所在的DNS服務。