Windows Azure Platform Introduction (6) Windows Azure应用程序运行环境

Windows Azure Platform 系列文章目录

 

Windows Azure应用程序运行环境

Windows Azure云计算平台是提供PaaS(平台即服务)IaaS(基础架构及服务)的,在Windows Azure PaaS平台上提供两种不同的应用程序角色

Windows Azure Platform Introduction (6) Windows Azure应用程序运行环境

1.Web Role

Web Role是已经安装好IIS 7.0运行环境的Windows Server 2008 x64操作系统,开发人员可以利用Web Role来部署HTTP的应用程序,包括ASP.NET,PHP(FastCGI),JSP或者是基于HTTP的WCF应用程序等的Web应用程序。新版本的Web Role中可支持Full IIS模式,即开发人员可通过服务组态档在同一个Web Role中设置多个网站或单一网站(Site)内多个虚拟目录(Virtual Directory),更扩大了Web Role的应用弹性。

2.Worker Role

Worker Role可以简单理解成Windows 上的Windows Service服务,它是一个无用户界面的应用程序角色,默默地在后台运行(我个人感觉更类似于Timr_Tick函数),开发人员可以利用Worker Role来处理不需要用户界面的大量计算。

Web Role可以通过Queue的方式向Woker Role发送一串消息,让Work Role执行用户自己需要的逻辑。

为什么微软要有Worker Role?它的好处在哪里?在这里我举个例子您就能明白,比如我们有一个信息管理系统,需要上传Excel文档来进行解析和处理,从软件设计的角度来说有2种方法来解决。

a)在ASP.NET应用程序里新建个upload control,在upload control里面写函数:一旦Excel文件上传完毕,则在.cs文件执行对于Excel的处理工作。但这样会有一个缺点,如果Excel文件里包含的内容非常大的话,需要时间来处理这些内容,所以前台的ASP.NET的页面会停滞或者无响应。虽然我们也可以通过增加progressbar或者loading图片来增强用户的体验,但是从软件设计上来说不是最好的。

b)前端还是用原来的处理方式,使用upload control。服务器端增加一个Windows Service,时序的查询某一个文件夹,一旦发现前端页面上传了一个Excel文件,则Windows Service执行处理Excel的工作。这样前端的页面会及时的响应并且得到更好的用户体验。但是这还是有一个缺陷,前端的页面和windows service是一对一的关系,如果附件上传的数量很大的话会出现Windows Service来不及处理的情况。

有了Worker Role,我们可以让一个ASP.NET页面后端有多个Worker Role来进行分散式的计算,是一对多的关系,能够有效的利用云上的计算资源,Worker Role可以处理高负载的数据访问。

 

3.Windows Azure Virtual Machine

Windows Azure Virtual Machine是IaaS的服务。

 

3.VM Role

VM Role微软为了解决IaaS层次(基础设施即服务)而新增的程序角色。Web Role和Worker Role是属于PaaS的范畴,预装了Windows Server 2008 R2的操作系统。而VM Role允许用户使用Hyper-V自己安装操作系统和应用程序再上传到Windows Azure云环境。这对企业在转移应用程序到云端提供了非常大的弹性的支持,用户可以使用Hyper-V在VHD安装自己需要的第三方应用程序并且上传到Windows Azure进行托管。

不论是Web Role,Worker Role还是VM Role,都可以设置一个以上的运行个体(instance),每个运行个体都是独立的虚拟机,Windows Azure Fabric Controller中的Load Balancer(平衡负载器)会自动分配负载到不同的instance中。也因为如此,不论是运行在Web Role上的Web应用程序,或是运行在Worker的服务应用程序,都要考虑可能的跨实体(cross instance)以及不同实体通信(inter-role or inter-instance communication)的设计。

 


本文转自Lei Zhang的博客博客园博客,原文链接:http://www.cnblogs.com/threestone/archive/2012/01/17/2324972.html,如需转载请自行联系原作者