iT邦幫忙

DAY 8
5

雲端運算與 Windows Azure Platform 開發系列 第 8

Windows Azure Compute Service 運算服務-虛擬機器與服務類型

Compute Service 是 Windows Azure Platform 提供的基礎服務之一,是應用程式運行在雲端機房內的單元,不同的虛擬機器類型適用的情境不同,不同的等級則會影響計費和效能。
Windows Azure Platform的運算服務設計上分為兩個部份,第一個部份是等級(Level),第二個部份是用途,等級決定了RDFE在部署時的實體伺服器選擇,而用途決定了Guest OS以及內部的Fabric Agent要如何啟動以及開啟適當的網路通訊埠。

目前Windows Azure Platform上提供了五種不同的等級:

原則上每一台虛擬機器在Windows Azure Platform上都是獨立被劃分的(一台實體伺服器可劃分為8個Small單位),但只有Extra Small不同,它是透過運算資源共享機制執行的單位,也就是CPU要和其他的Extra Small應用程式共享,所以Extra Small並不適合執行應用程式,但如果是展示或教育訓練性質則適合,一般執行應用程式的單位都是Small起跳的,擁有獨立的CPU劃分,運算不會受到其他虛擬機器的影響。而I/O優先權則是影響到網路以及磁碟的I/O存取等級,如果在同一台實體機器內同時存有Small和Large單位時,對網路的I/O會優先排程給Large單位的應用程式,此時Small單位的應用程式的效能就會受到一些影響,所以較關鍵的應用程式最好是使用Medium以上的單位,至於Extra Small則因為共用且優先權低的關係,I/O的影響會更顯著。當然,等級也會影響到費用,目前運算資源的費用是以Small單位為主,每單位一小時的費用是0.12美元(以匯率1:30來計算,相當於新台幣3.6元),依CPU的倍數計算,Medium的是2倍,Large是4倍,Extra Large則是8倍,至於Extra Small則是每單位一小時0.04美元(相當於新台幣1.2元)。

而用途則是RDFE在部署時選用虛擬機器影像的依據,在Windows Azure Platform的運算資源目前有三種用途,分別是Web Role、Worker Role與VM Role。Web Role和Worker Role是由微軟備製的作業環境,內含Windows Server 2008(或2008 R2)作業系統以及.NET Framework執行環境,VM Role則是由使用者自製。

Web Role是專門用來執行需要IIS的應用程式,如ASP.NET Web Application、HTTP-based WCF Services或是PHP應用程式等,初期版本的Web Role僅可掛載一支應用程式,而新版本的Web Role已可支援在同一個Web Role中掛載多個網站或設置自己的應用程式虛擬目錄等。Worker Role則是一個服務載入程式,它除了.NET Framework以及必要的Windows Azure元件外,沒有其他服務,因此可以保留最大的系統資源給應用程式,所以適合執行無使用者介面的應用程式,例如WCF Service或是自製的伺服器服務等,也可以作為雲端上的大量資料處理的應用程式。VM Role則是一種變形的Cloud Infrastructure Service,它允許開發人員或管理人員自行客制自己的虛擬機器影像(VHD),並上傳到Windows Azure Storages,然後命令RDFE由Storage中取出已上傳的影像產生虛擬機器,雖然影像是自製的,但只要符合2個以上的執行個體,Windows Azure仍然會保證其SLA的服務水準。

若以一般的應用程式角度來看Windows Azure應用程式的話,可能會很自然的認為在兩個應用程式角色之間是可以相互通訊的,像是剪貼簿(Clipboard)、Inter-process Communication(IPC)或是Memory-Mapped File這些方式都能在一般的應用程式使用,但是在Windows Azure應用程式上,由於每支應用程式都是放在不同的VM中,所以不能以原本的方式來存取,如果要在Windows Azure應用程式間分享資料的話,只有兩種方法:

  1. 使用Windows Azure的現有儲存服務或是SQL Azure資料庫,然後由儲存服務來撰寫生產者/消費者模式(producer-consumer)的程式碼來分享應用程式資料。

  2. 在應用程式中開放通訊的終端點(end point),然後利用網路通訊的方式透過終端點來存取資料,例如WCF(Windows Communication Foundation)。

開發人員要視應用程式的部署與執行需求來決定要使用哪一種類型的Role以及所需要的等級,才能夠真正善用Windows Azure上提供的運算能力,也不會虛擲無謂的花費。

Reference:
http://www.microsoft.com/windowsazure/features/compute/
http://msdn.microsoft.com/en-us/library/gg615406.aspx

本文同步發布於部落格:
http://www.dotblogs.com.tw/regionbbs/archive/2011/10/12/ithome.article.contest.day8.compute.service.aspx


上一篇
Windows Azure Internals (2): Red Dog Front-End (RDFE)
下一篇
首支 Windows Azure 雲端應用程式 - Hello Windows Azure
系列文
雲端運算與 Windows Azure Platform 開發32

1 則留言

0
chiounan
iT邦研究生 1 級 ‧ 2011-10-14 09:56:56

沙發
Got it.

我要留言

立即登入留言