不同于Amazon云计算(用户自己提供机器的虡拟映像(Image)到虚拟机),Windows Azure能够自动虚拟出虚拟机,用户不用考虑如何维护windows操作系统的备份问题,只要专注于如何创建应用程序即可。目前,Windows Azure服务器租用平台的CTP版提供了一整套的开发工具和组件允许创建 .NET4.0应用程序。与传统的.NET应用程序不同的是,Windows Azure应用程序包括Web Role实例、Worker Role实例和VM Role实例,使用这三种实例的Windows Azure应用程序运行机制。
(1)Web Role。基于Web Role可以使基于Web的应用的创建过程变得简单。每个Web Role实例都提前在内部安装了IIS7,通过ASP.NET、WCF (Windows Communication Foundation)或其他Web技术使创建应用程序变得简单。如果不使用.NET Framework,而通过本机代码创建应用,开发者可以安装或运行非微软的技术,如PHP和Java。
(2)Worker Role。Worker Role设计用来运行各种各样的基于Windows的代码。Web Role和Worker Role的最大不同在于:Worker Roles内部没有安装IIS,所以IIS并没有托管Worker Roles运行的代码。比如,Worker Role可以运行一个模拟、进行视频处理等。应用通过Web Role与用户相互作用,然后利用Worker Role进行任务处理。
(3)VM Role。VM Role运行系统提供的Windows Server 2008 R2镜像。此外,将本地的Windows Server应用移动到Windows Azure中时,VM Role将会起作用。
可以使用Windows Azure门户将应用提交到Windows Azure中,提交应用的同时,需要同时提交配置信息,告知平台每个Role需要运行实例的数量。Windows Azure Fabric控制器再为每个实例创建一个虚拟机,在虚拟机中运行相应的Role。
Windows Azure支持HTTP、HTTPS和TCP协议,用户可以通过这些协议向Windows Azure发起请求。这些请求在分发给各个实例之前均会被负载均衡,同时负载均衡器不允许用户与各个Role实例之间保持联系,因此来自同一个用户的多种请求可能会被负载均衡器分发给不同的Role实例。
创建Windows Azure应用时,可以任意结合使用Web Role、Worker kole和VM Role实例。当应用的负载增加时,可以使用Windows Azure门户为库用中的Role请求更多的实例。如果负载减少,可以减少运行实例的数量。Windows Azure也提供一个API接口,通过程序改变运行实例的数量,不需要人工干预,但是平台本身不能根据应用的负载自动地调整应用规模。