最近有朋友问我:Windows Azure 是不是一个微软官方提供的 ASP.NET 应用程序虚拟主机?
他的具体理解是这样的:Windows Azure 提供了对 ASP.NET 应用程序的托管,并且,“云计算”离我们那么近,只要把 ASP.NET 应用程序部署到 Window Azure 上,以前的 ASP.NET 应用程序就变成“云应用”了!
怎么说好呢?这种理解完全是受当今社会混乱的 .NET 虚拟主机市场逼出来的。Windows Azure 作为 Azure Services Platform 的一号服务,如果你仅仅只用他来存放你已经过时的 ASP.NET 应用程序,那简直是杀鸡用牛刀、暴殄天物。
那么,Windows Azure 应该怎么用?它到底比一般的虚拟主机牛在哪儿?那还的从 Windows Azure 的服务架构说起。
先说说角色问题吧,非常重要。不理解 Windows Azure 关于 Role 的概念,是没办法懂得微软煞费苦心的“云”的。
部署到 Windows Azure 上的程序扮演着以下两种角色:Web Role 和 Worker Role。
Web Role:顾名思义,就是提供 Web 服务的角色。简单地说,Web Role 就是 ASP.NET Applicantion,是你本地 ASP.NET Application 的云端版本!支持 HTTP/HTTPS 协议,还能提供 WCF 服务。
Worker Role:在后台运行的应用程序。它可以在后台访问任何网络资源、数据源并进行操作。它从来不在大庭广众前露面(不开放外部访问接口),它接到命令后会毫无怨言地依次执行(Queue service里的消息队列能引导它的工作),它就像一个默默无闻的无私奉献者。可以拿 Windows 系统服务跟它类比,一旦启动,一直在后台运行。很爽吧? 这个功能值得重视,大伙们看清楚了,这可是一般的虚拟主机无法提供的哦~ 就连 Google 引以为豪的云平台 Google App Engine,至今已经更新了许多许多次,也从来没有考虑过让一段程序在后台长期运行!
这个 Workder Role 颇具有“云”的概念:一直在云端悄悄运行,地面上的人看不到它,但却不能没有它。
所以,“云计算”并不是说只要你把“计算”放在“云”上就可以,而且彻底地让“计算”在“云”上运行。它包括以下几层含义:在云上——不需要本地服务器;云很大——计算量可以很大;无论在哪里,一抬头就是云——云平台上的应用无论在哪里、使用何种设备都能使用;躲在云里——它的计算过程无论有多复杂,地面上的使用者不需要看到它。
Web Role 和 Worker Role 这两个小朋友也是带了家属一起加入到 Windows Azure 这个大家庭的,它们暂时包括:
呵呵,这些也是普通的虚拟主机无法有的吧?“云主机”的功能是非常强大的,配套是非常完善的!
程序生活在 Windows Azure 这个新环境里往往会感到纳闷,会怀疑人生:我到底是 Web Role 还是 Worker Role 呢?
这就需要我们来帮助它们了。
Windows Azure 使用了一类后缀 .csdef 的文件来定义服务。包括:这个服务到底似乎 Web Role 还是 Worker Role?使用 HTTP 还是 HTTPS ? 哪里去找 Local Storage 这个亲家来帮忙?诸如此类的信息。
Web Role 和 Worder Role 这两个小朋友在得到关于职业规划的答复后,又产生了对职业生涯方面的疑问:具体应该怎么做呢?
这就需要用到服务配置了。顾名思义,就是对具体服务的具体配置了。我们采用 .cscfg 为后缀的文件来保存它们。它担当着与 ASP.NET 中的 Web.Config 文件类似的任务,且任务更重。
好了,说了这么多,相信读者已经对 Window Azure 的服务架构有了一个清晰的了解了。千万不要再把 Windows Azure 当作一般的.NET虚拟主机来使了哦~微软知道后会很受伤的!