不同于Amazon云計(jì)算(用戶自己提供機(jī)器的虡擬映像(Image)到虛擬機(jī)),Windows Azure能夠自動(dòng)虛擬出虛擬機(jī),用戶不用考慮如何維護(hù)windows操作系統(tǒng)的備份問(wèn)題,只要專注于如何創(chuàng)建應(yīng)用程序即可。目前,Windows Azure服務(wù)器租用平臺(tái)的CTP版提供了一整套的開(kāi)發(fā)工具和組件允許創(chuàng)建 .NET4.0應(yīng)用程序。與傳統(tǒng)的.NET應(yīng)用程序不同的是,Windows Azure應(yīng)用程序包括Web Role實(shí)例、Worker Role實(shí)例和VM Role實(shí)例,使用這三種實(shí)例的Windows Azure應(yīng)用程序運(yùn)行機(jī)制。
(1)Web Role。基于Web Role可以使基于Web的應(yīng)用的創(chuàng)建過(guò)程變得簡(jiǎn)單。每個(gè)Web Role實(shí)例都提前在內(nèi)部安裝了IIS7,通過(guò)ASP.NET、WCF (Windows Communication Foundation)或其他Web技術(shù)使創(chuàng)建應(yīng)用程序變得簡(jiǎn)單。如果不使用.NET Framework,而通過(guò)本機(jī)代碼創(chuàng)建應(yīng)用,開(kāi)發(fā)者可以安裝或運(yùn)行非微軟的技術(shù),如PHP和Java。
(2)Worker Role。Worker Role設(shè)計(jì)用來(lái)運(yùn)行各種各樣的基于Windows的代碼。Web Role和Worker Role的最大不同在于:Worker Roles內(nèi)部沒(méi)有安裝IIS,所以IIS并沒(méi)有托管Worker Roles運(yùn)行的代碼。比如,Worker Role可以運(yùn)行一個(gè)模擬、進(jìn)行視頻處理等。應(yīng)用通過(guò)Web Role與用戶相互作用,然后利用Worker Role進(jìn)行任務(wù)處理。
(3)VM Role。VM Role運(yùn)行系統(tǒng)提供的Windows Server 2008 R2鏡像。此外,將本地的Windows Server應(yīng)用移動(dòng)到Windows Azure中時(shí),VM Role將會(huì)起作用。
可以使用Windows Azure門戶將應(yīng)用提交到Windows Azure中,提交應(yīng)用的同時(shí),需要同時(shí)提交配置信息,告知平臺(tái)每個(gè)Role需要運(yùn)行實(shí)例的數(shù)量。Windows Azure Fabric控制器再為每個(gè)實(shí)例創(chuàng)建一個(gè)虛擬機(jī),在虛擬機(jī)中運(yùn)行相應(yīng)的Role。
Windows Azure支持HTTP、HTTPS和TCP協(xié)議,用戶可以通過(guò)這些協(xié)議向Windows Azure發(fā)起請(qǐng)求。這些請(qǐng)求在分發(fā)給各個(gè)實(shí)例之前均會(huì)被負(fù)載均衡,同時(shí)負(fù)載均衡器不允許用戶與各個(gè)Role實(shí)例之間保持聯(lián)系,因此來(lái)自同一個(gè)用戶的多種請(qǐng)求可能會(huì)被負(fù)載均衡器分發(fā)給不同的Role實(shí)例。
創(chuàng)建Windows Azure應(yīng)用時(shí),可以任意結(jié)合使用Web Role、Worker kole和VM Role實(shí)例。當(dāng)應(yīng)用的負(fù)載增加時(shí),可以使用Windows Azure門戶為庫(kù)用中的Role請(qǐng)求更多的實(shí)例。如果負(fù)載減少,可以減少運(yùn)行實(shí)例的數(shù)量。Windows Azure也提供一個(gè)API接口,通過(guò)程序改變運(yùn)行實(shí)例的數(shù)量,不需要人工干預(yù),但是平臺(tái)本身不能根據(jù)應(yīng)用的負(fù)載自動(dòng)地調(diào)整應(yīng)用規(guī)模。