Azure實戰(場景模擬+規劃+創建+管理)

1、模擬場景

Contoso公司已經採購了Azure China服務,計劃把現有託管在IDC的企業官網遷移到Azure雲平臺。該企業官網面向的用戶羣主要是華東地區的用戶。

該企業官網部署需要服務器列表如下:

  • 1臺AD服務器
  • 1臺Web服務器
  • 1臺SQL Server服務器

2、規劃

2.1、如何選擇Azure數據中心

世紀互聯運維的Windows Azure在中國大陸有兩個數據中心:

  1. 中國北部,即位於北京的數據中心
  2. 中國東部,即位於上海的數據中心

當我們在選擇Azure數據中心的時候,需要從以下兩方面進行考慮:

  • 選擇的Azure數據中心離最終用戶越近越好

考慮到Contoso的企業官網主要的用戶羣是華東地區,建議Contoso公司將應用部署到Azure在中國東部的數據中心。

  • 如果需要在Azure部署多臺應用服務器,則需要將所有的應用服務器放在同一個數據中心

建議用戶將Web服務器和SQL Server服務器都部署在Azure中國東部數據中心,不要將Web服務器和SQL服務器部署在不同的數據中心,會產生內部通信的延時。

  • 利用CDN

CDN能將靜態內容緩存到離用戶最近的CDN節點服務器,提高應用程序的用戶體驗。

2.2、Azure是如何解決大併發

我們建議使用多臺Azure虛擬機,利用橫向擴展的方式來解決大量的併發。

單個節點向上擴展是有限的,這是因爲受限於現有的CPU製造技術,我們無法將大量的計算資源都堆積到1臺300 Core甚至400 Core的計算節點上。對於需要大量的計算資源的情況下,我們可以通過橫向擴展的方法來解決。

所謂橫向擴展,就是由1個計算節點,橫向擴展到多個計算節點上並行計算,比如50個、100個計算節點。比如一個互聯網業務需要大量的計算資源,那可以將這些計算需求由100臺4 Core的計算節點進行並行計算。

架構圖如下:

2.3、選擇最合適的虛擬機配置

首先請讀者注意,傳統的虛擬機化技術,CPU是共享的。Azure虛擬機,除了A0的虛擬機類型,它的CPU是和別的用戶共享的。其他類型的虛擬機,比如A1-A7,它的CPU是獨佔的,不是和別的用戶共享的。

目前Azure虛擬機分爲A系列和D系列,並且擁有不同的CPU和內存配置。

如果客戶在傳統IDC託管中已經部署了硬件服務器。則在Azure平臺選擇最接近的Azure虛擬機配置即可。

如果客戶需要部署新的應用,則需要根據併發、性能等多個因素,選擇最合適的Azure虛擬機配置。

另外說明一下A系列虛擬機和D系列虛擬機的區別:

  1. 相比A系列單臺VM最大8Core/56GB RAM的配置,D系列虛擬機單臺最大的配置爲16Core/112GB RAM
  2. D系列的CPU性能比A系列提升約60%

2.4、規劃好高可用(非常重要)

在Microsoft Azure虛擬機中,用戶也可以選擇使用一臺Azure Virtual Machine部署AD Server,一臺Azure Virtual Machine部署Web Application,使用另一臺Virtual Machine部署SQL Server。但是這樣的場景是沒有SLA保障的。

Microsoft Azure Virtual Machine承諾的99.95%的SLA是需要2臺或者2臺以上的Azure Virtual Machine同時運行,且所有的Virtual Machine都需要在同一個可用性集中。對於上面實例,用戶如果想在Azure中實現99.95%的SLA,需要同時部署:

  1. 兩臺AD Server虛擬機,放在同一個可用性集A中。
  2. 兩臺Web Server虛擬機,放在另外一個可用性集B中。
  3. 兩臺SQL Server 虛擬機,採用SQL Server 2012 Enterprise提供的Always-On功能,實現High Availability。且SQL Server所在的Virtual Machine需要在另外一個可用性集C中。
  4. 將具有相同功能的多臺VM放置在同一個可用性集下。

這邊還需要強調一下:

  1. 可用性集A中的兩臺AD Server中的內容配置必須完全一致,並且需要進行AD的同步。
  2. 可用性集B中的兩臺Web Server中的網站在部署的時候,內容必須完全一致。
  3. 可用性集C中的兩臺SQL Server必須配置SQL Server Always-On或者SQL Mirroring,保證數據庫之間的日誌同步

對於DB Server,比如SQL Server或者MySQL,需要在兩臺DB Server進行日誌同步:

  1. SQL Server需要在兩臺VM配置Always-On或者SQL Mirroring,使用日誌同步
  2. My SQL可以配置Master-Slave,使用Replication進行復制。
  3. 這樣的目的是保證在其中一臺Server宕機的情況下,另外一臺Server可以正常運行,因爲配置了日誌同步,可以保證日誌不會丟。
  4. 另外還要強調一下,客戶端如果調用SQL Server服務的時候,需要正確配置AG Listener,這樣保證在一臺SQL Server宕機的情況下,AG Listener可以將請求自動發送到另外一臺SQL Server上。

2.5、規劃好Azure訂閱(非常重要)

訂閱是進行Azure賬單分拆的最小單位。

如果企業內部需要進行內部成本覈算,例如IT部門、銷售部門、市場部門均需要使用Azure,並且根據不同的部門的Azure實際使用量進行內部成本覈算,就需要實現規劃好三個不同的Azure訂閱。在創建Azure IaaS相關資源的時候,將這些資源創建在不同的訂閱下。

2.6、選擇訂閱(非常重要)

我們就可以篩選一個或者多個訂閱。

在一般情況下,筆者建議選擇一個訂閱,這樣就可以把所有的Azure資源創建到這個訂閱下。

本文所有的demo內容,就會創建到Marketing_Subscription這個訂閱下。

2.7、查看該訂閱中可使用的Azure資源

如果您使用的是測試賬戶,只能有一個訂閱,該訂閱默認情況下可以使用的Azure資源爲

  1. 計算能力:20 Core
  2. Host Service: 即DNS地址,4個
  3. 存儲賬號:4個

如果測試賬戶在測試過程中,需要的Azure資源超出測試賬號默認提供的資源,請通過微軟銷售團隊,聯繫Azure PMM Bill Jin。在Bill批准的情況下,再聯繫世紀互聯支持團隊,請世紀互聯在後臺將測試賬戶的訂閱進行擴大。

如果您使用的是正式賬戶,可以創建無限多個訂閱。新創建的Azure訂閱默認可以使用的Azure資源爲:

  1. 計算能力:100 Core
  2. Host Service: 即DNS地址,20個
  3. 存儲賬號:20個

如果正式賬戶在使用過程中,需要的Azure資源超出訂閱默認的Azure資源,請不要聯繫PMM Bill Jin。請直接聯繫世紀互聯支持團隊,世紀互聯會先審覈相關請求,然後會將該訂閱的相關資源進行擴大。

舉個例子,比如Contoso公司需要在月底進行一次大型的Digital Campaign促銷活動,需要使用300個CPU Core,則可以提前聯繫世紀互聯支持團隊,讓世紀互聯運維團隊將默認的100 CPU Core提升到300個。

上圖中,訂閱名稱爲”Marketing_Subscription”可以使用的Azure資源爲

  1. 100個CPU Core
  2. 20個Cloud Service
  3. 20個Storage Account

3、創建Azure虛擬機

3.1、說明

我們在創建Azure服務的時候,可以通過以下兩種方式來創建

使用Azure管理界面

優勢:

  • 可以通過用戶界面的方式,創建相應的Azure虛擬機,方便簡單。

劣勢:

  • 某些Azure虛擬機的高級功能,比如固定內網IP,固定公網IP,設置虛擬機時區等,都需要藉助於Azure PowerShell。Azure管理界面不具備相應的功能。
  • 當用戶需要批量創建Azure虛擬機,批量配置虛擬機端口等,通過Azure管理界面就非常麻煩。

我們可以使用Azure PowerShell,創建Azure虛擬機。

Azure PowerShell可以批量創建虛擬機,其他高級功能也需要通過Azure PowerShell來進行配置。

3.2、規劃

在我們創建Azure虛擬機之前,首先需要對Azure虛擬機進行規劃。規劃主要分爲:

  1. 創建虛擬網絡,規劃虛擬機的內網IP地址和IP Rang
  2. 創建存儲賬號
  3. 選擇虛擬機的操作系統及配置

針對這次模擬場景,我們需要規劃以下內容:

  1. 數據中心選擇中國東部
  2. 虛擬網絡
    1. 我們創建Azure虛擬網絡,命名爲ContosoVNet,同時設置虛擬網絡的IP Rang爲10.0.0.0 - 10.0.3.255
    2. 設置3個Sub-net

AD-Subnet,IP Rang爲10.0.0.0 – 10.0.0.255

Web-Subnet,IP Rang爲10.0.1.0 – 10.0.1.255

DB-Subnet,IP Rang爲10.0.2.0 – 10.0.2.255

  1. 在中國東部創建2個存儲賬號contosostor1和contosostor2
  2. 創建6臺Azure虛擬機

角色

AD Server

Web Server

DB Server

操作系統

Server 2012 Eng

Server 2012 Eng

Server 2012 Eng with SQL Enterprise

虛擬機類型

D2

D2

D2

虛擬機數量

2臺

2臺

2臺

虛擬機名稱

ContosoAD01

ContosoAD02

ContosoWeb01

ContosoWeb02

ContosoDB01

ContosoDB02

雲服務名稱

ContosoADCS

ContosoWebCS

ContosoDBCS

存儲賬號

contosostor1

contosostor1

contosostor2

虛擬網絡子網

AD-Subnet

Web-Subnet

DB-Subnet

內網IP

10.0.0.4

10.0.0.5

10.0.1.4

10.0.1.5

10.0.2.4

10.0.2.5

可用性集

ADAvbSet

WebAvbSet

DBAvbSet

用戶名

AzureAdmin

AzureAdmin

AzureAdmin

密碼

Contoso!000

Contoso!000

Contoso!000

我們會在接下來幾章詳細介紹如何創建Azure虛擬機。

3.3、注意事項

  1. 在一個雲服務裏,放置多個相同角色的虛擬機
  2. 比如:多個Web Server虛擬機,放在同一個雲服務裏
  3. 多個SQL Server虛擬機,放在另外一個雲服務裏
  4. 多個AD Server虛擬機,放在第三個雲服務裏
  5. 不要把不同角色的虛擬機,比如Web Server和SQL Server,放在同一個雲服務裏。

3.4、使用Azure管理界面創建虛擬機

我們登陸Azure管理界面,輸入相應的Azure賬戶名稱和密碼。

3.4.1、創建虛擬網絡(非常重要)

  1. 在Azure管理界面的左下角,點擊”新建”按鈕。
  2. 在彈出的窗口中,點擊”網絡服務”,”虛擬網絡”,”自定義創建”。
  3. 在彈出的窗口中,將名稱命名爲ContosoVNet,位置我們選擇”中國東部”
  4. 下一步,設置DNS地址:

    注意,因爲我們需要使用AD Server,這裏的DNS就是AD Server的內網IP地址。

    注意: 在Azure雲環境,Azure虛擬機的Private IP,DNS Server都必須通過虛擬網絡來設置。我們不可以通過遠程桌面連接(Remote Desktop),來修改Azure虛擬機的本地TCP/IP地址。如果這樣操作的話,Azure虛擬機會運行不正常。

     

    如果用戶場景不需要設置AD服務器,則DNS服務器配置頁面可以不輸入任何信息,直接選擇下一步。

  5. 最後,我們設置虛擬網絡的IP Rang和Subnet。如下圖:

上圖中:

  • IP Range爲10.0.0.0 – 10.0.3.255
  • 子網AD-Subnet的IP Range爲10.0.0.0 – 10.0.0.255。注意每個子網的前4個IP是Azure系統保留的,對於AD-Subnet來說,可用的IP Range爲10.0.0.4 – 10.0.0.255
  • 子網Web-Subnet的IP Range爲10.0.1.0 – 10.0.1.255。同上,該子網實際可用的IP Range爲10.0.1.4 – 10.0.1.255。
  • 子網DB-Subnet的IP Rang爲10.0.2.0 – 10.0.3.255。同上,該子網的實際可用IP Rang爲10.0.2.0 – 10.0.3.255。

定義了虛擬網絡以後,我們創建的Azure虛擬機的內網IP地址,就是在虛擬網絡中定義的可用地址範圍和子網來定義的。

6.創建完畢後,我們就可以在Azure管理界面上查看到我們創建成功的虛擬網絡ContosoVNet。如下圖

3.4.2、創建存儲賬號

我們需要創建2個存儲賬號:contosostor1和contosostor2。注意存儲賬號的名稱只能是小寫英文字符。

1.在Azure管理界面的左下角,點擊”新建”按鈕。

2.創建存儲賬號contostor1,位置選擇中國東部

複製選項中,我們可以根據自身的需求,選擇本地冗餘或者地域冗餘。

注意: 從成本角度來說,地域冗餘的成本會比本地冗餘要貴。

3.創建另外一個存儲賬號contostor2,位置選擇中國東部

複製選項中,我們可以根據自身的需求,選擇本地冗餘或者地域冗餘。

4.這樣我們在存儲欄目裏,就可以看到創建成功的兩個存儲賬號,如下圖

注意:一個Azure存儲賬號的IOPS上限爲20000,考慮到每塊磁盤的最大IOPS爲500,筆者建議不要在同一個存儲賬號保存超過40塊磁盤。

3.4.3、創建虛擬機說明

在上面的章節中,我們創建瞭如下內容:

  1. 虛擬網絡,設置了虛擬內網的IP Rang和DNS地址
  2. 存儲賬號,設置了虛擬機所在的VHD文件保存的數據中心的物理位置及文件的冗餘性

接下來的內容,就是創建相應的虛擬機了。

我們會依次創建如下虛擬機:

  1. 2臺AD服務器,2臺服務器使用同一個雲服務,名稱爲ContosoADCS
  2. 2臺Web服務器,使用同一個雲服務,名稱爲ContosoWebCS
  3. 2臺SQL Server服務器,使用同一個雲服務,名稱爲ContosoDBCS

從Azure虛擬機的角度來說,雲服務只是一個DNS,概念上可以理解爲一個容器。這個容器可以同時容納一個或者多個虛擬機。如下圖:

當我們新建一個虛擬機的時候,因爲不存在容納這個虛擬機的容器,所以Windows  Azure會默認創建一個新的Cloud Service,然後將虛擬機加入到這個容器當中去。

當我們創建第2個虛擬機的時候,可以複用這個Cloud Service,然後將第2個虛擬機加入到這個Cloud Service裏。

從負載均衡和高可用兩個角度來說,筆者強烈建議,將2臺或者2臺以上具有同樣功能的虛擬機,創建在同一個Cloud Service雲服務下。

3.4.4、使用管理界面創建Azure虛擬機

注意事項

我們在開始創建Azure虛擬機之前,已經定義了虛擬機網絡。在虛擬機網絡配置頁面裏,我們創建了3個子網(Subnet)。並且定義了每個子網的IP Rang。如下圖:

接下來,我們需要創建不同的Azure虛擬機,並且將虛擬機加入上面定義的虛擬網絡。

注意:

  1. 上圖中,IP Rang爲10.0.0.0 – 10.0.0.255
  2. 子網AD-Subnet的IP Range爲10.0.0.0 – 10.0.0.255。注意每個子網的前4個IP是Azure系統保留的,對於AD-Subnet來說,可用的IP Range爲10.0.0.4 – 10.0.0.255
  3. 子網Web-Subnet的IP Range爲10.0.1.0 – 10.0.1.255。同上,該子網實際可用的IP Range爲10.0.1.4 – 10.0.1.255。
  4. 子網DB-Subnet的IP Rang爲10.0.2.0 – 10.0.3.255。同上,該子網的實際可用IP Rang爲10.0.2.0 – 10.0.3.255。
  5. 定義了虛擬網絡以後,我們創建的Azure虛擬機的內網IP地址,就是在虛擬網絡中定義的可用地址範圍和子網來定義的。

請注意,使用Azure管理界面創建的虛擬機,是無法固定內網IP地址的。必須通過Azure PowerShell,才能固定虛擬機的內網IP地址。

在Azure雲平臺是沒有DHCP這個概念的。如果我們將第一臺虛擬機VM01,通過管理界面進行創建,加入到AD-Subnet的話,這臺虛擬機VM01會自動獲得第一個可用的內網IP(Private IP),爲10.0.0.4。

如果我們在第一臺虛擬機VM01不關機的情況下。再次通過管理界面繼續創建第2臺虛擬機VM02,同樣加入到AD-Subnet。因爲10.0.0.4這個IP被第一臺虛擬機VM01佔用。所以第2臺虛擬機VM02自動獲得下一個可用的內網IP地址,爲10.0.0.5。

如果VM01, VM02都不關機的情況下,則第3臺新創建的虛擬機VM03加入到AD-Subnet的Azure虛擬機自動獲得下一個可用的內網IP地址爲10.0.0.6。

還有一個問題需要讀者注意。如果我們在上面創建的3臺虛擬機,通過管理界面關機了,則這些內網IP地址會被釋放。經過一段時間後,第一個通過管理界面開機的虛擬機(無論是VM01,VM02,VM03),會自動獲得第一個可用的IP地址。

假設筆者將虛擬機通過管理界面關機。經過一段時間後,將VM03首先通過管理界面開機,則VM03會自動獲得第一個可用的內網IP地址,爲10.0.0.4。

這個問題非常重要。如果您通過管理界面創建Azure虛擬機,通過管理界面開關虛擬機,內網IP地址會變化。

如果讀者需要固定內網IP地址,只有通過PowerShell創建的虛擬機,內網IP地址纔是固定的。

另外,使用管理界面創建的Azure虛擬機,默認時區是UTC時區。而我們平時使用的市區是UTC+8(北京時區)

創建第一臺AD Server

我們需要創建2臺Azure AD Server,配置如下:

角色

AD Server

操作系統

Server 2012 Eng

虛擬機類型

A2

虛擬機數量

2臺

虛擬機名稱

ContosoAD01

ContosoAD02

雲服務名稱

ContosoADCS

存儲賬號

contosostor1

虛擬網絡子網

AD-Subnet

內網IP

10.0.0.4

10.0.0.5

可用性集

ADAvbSet

用戶名

AzureAdmin

密碼

Contoso!000

我們首先創建第一臺AD Server。步驟如下:

1.在Azure管理界面。選擇新建,計算,虛擬機,從庫中。如下圖:

2.鏡像我們選擇Windows Server 2012 R2 Datacenter (en-us)

3.設置虛擬機配置

上圖中,我們設置虛擬機名稱爲ContosoAD01,虛擬機類型爲標準。虛擬機配置爲D2 (2Core/7GB)。用戶名密碼按照之前的規劃進行設置

4.在接下來配置文件裏,我們輸入以下信息:

在上面的圖片中,我們需要注意以下內容

  • 因爲我創建的是第一臺AD服務器,所有選擇創建新的雲服務

  • 在DNS名稱中,輸入自定義的DNS名稱ContosoADCS

  • 在虛擬網絡中,選擇我們之前創建的虛擬機網絡名稱ContosoVNet

選擇對應的虛擬網絡子網AD-Subnet

  • 存儲賬戶,我們選擇之前創建的存儲賬號contosostor1

  • 可用性集,因爲我們創建新雲服務,所以我們創建新的可用性集,命名爲ADAvbSet

在配置頁面的下方,還會指定終節點,我們使用系統默認設置。

5.最後我們點擊確認,這樣就完成創建第一個AD Server。在虛擬機創建列表中就會顯示”正在啓動(正在配置)”

注意:在客戶點擊創建的時間點,Azure就開始計費。而不是等到虛擬機創建完畢纔開始計費。

 

1.我們等待ContosoAD01這臺虛擬機創建完畢,狀態爲”正在運行”。

然後點擊虛擬機名稱,如下圖紅色區域:

2.點擊後,頁面會進行跳轉。我們可以查看到ContosoAD01這個虛擬機的配置信息。如下圖:

裏面的DNS名稱,主機名稱和虛擬機大小,就是我們在創建虛擬機的配置頁面裏進行配置的。

注意:內部IP地址是從AD-Subnet子網中獲得第一個有效IP,爲10.0.0.4

創建第二臺AD Server

我們創建完第一臺AD Server之後,從高可用的角度來說,我們需要創建第2臺AD Server。步驟如下:

1.選擇新建,計算,虛擬機,從庫中。如下圖:

2.鏡像我們選擇Windows Server 2012 R2 Datacenter (en-us)

3.設置虛擬機配置。注意虛擬機名稱命名爲ContosoAD02

4.在接下來配置文件裏,我們輸入以下信息:

注意,我們創建的第2臺AD Server中,與第一臺配置稍有不同:

  1. 複用之前我們已經創建的雲服務ContosoADCS
  2. 選擇對應的虛擬網絡和存儲賬戶
  3. 選擇我們之前已經創建的可用性集ADAvbSet。

觀察AD Server

我們等待第2臺虛擬機創建完畢,狀態變爲”正在運行”。然後我們觀察一下Azure管理界面。

上圖中,我們可以發現:

  1. 在初始狀態,虛擬機和雲服務的數量都是0
  2. 我們創建第1臺AD Server的時候,新建了一個雲服務,同時新建了一個虛擬機。此時虛擬機和雲服務的數量都是1
  3. 然後我們創建第2臺AD Server,複用之前創建的雲服務。所以虛擬機數量爲2,雲服務數量是1。

我們再複習一下:

從Azure虛擬機的角度來說,雲服務只是一個DNS,概念上可以理解爲一個容器。這個容器可以同時容納一個或者多個虛擬機。如下圖:

從高可用的角度來說明,我們在創建虛擬機的時候,創建並指定了高可用集。如下圖的紅色部分區域3的內容。

我們必須把在同一個Cloud Service下的多臺Azure虛擬機,保存在同一個可用性集下。

這樣,多臺Azure虛擬機是部署在不同的RACK上的。

我們點擊雲服務,選擇之前創建的雲服務ContosoADCS,然後選擇實例。如下圖:

上圖中,ContosoAD01和ContosoAD02 是在不同的容錯域上,分別是0和1。則這2臺虛擬機是不是在不同的RACK上,保證高可用。

創建Web Server

我們創建的Web Server信息如下:

角色

Web Server

操作系統

Server 2012 Eng

虛擬機類型

D2

虛擬機數量

2臺

虛擬機名稱

ContosoWeb01

ContosoWeb02

雲服務名稱

ContosoWebCS

存儲賬號

contosostor1

虛擬網絡子網

Web-Subnet

內網IP

10.0.1.4

10.0.1.5

可用性集

WebAvbSet

用戶名

AzureAdmin

密碼

Contoso!000

注意:

1.我們在創建第一臺Web Server的時候,需要創建新的雲服務。如下圖:

2.我們在創建第2臺Web Server的時候,需要注意:

  • 複用之前我們已經創建的雲服務ContosoWebCS

  • 選擇對應的虛擬網絡和存儲賬戶,注意子網爲Web-Subnet

  • 選擇我們之前已經創建的可用性集WebAvbSet。

如下圖:

注意創建Web Server的先後順序,第1個創建成功的Web Server ContosoWeb01,會從子網Web-Subnet中,自動獲得第一個可用的內網IP,爲10.0.1.4。第2個創建成功的ContosoWeb02,會自動獲得第2個可用的內網IP,地址爲10.0.1.5。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章