技术开发 频道

让IT不再重复 解读Windows Azure平台企业应用

  记者:Windows Azure看上去像是一个托管的平台,和传统的Hosting相比有什么本质的不同吗?

  吴延安:的确,当人们将开发的应用部署到Windows Azure时,很容易联想到与传统的Hosting有什么区别。从应用托管的角度的确可以看作是一个Hosting平台,但已经远远超越了传统的主机托管模式,两个有着本质的区别。
 
  要理解这种区别,需要先弄明白Azure Fabric Controller及Windows Azure中Role的概念。

  Windows Azure是运行在微软的数据中心,通过Windows Server 2008以及Hyper-V虚拟化技术构成,这无数纵横交错的服务器集群及各种网络设备的集合统称为Azure Fabric,而承担Azure Fabric智能化管理的核心服务模块便是Azure Fabric Controller, 其职责是维护Fabric中的各节点(Node),对这些节点中相应的资源进行统一监控、管理、虚拟环境准备、虚拟化资源的动态配置等,从而达到高可用、高扩展、高稳定、高安全性等一系列非功能性需求的目标。对最终用户而言,可以认为Windows Azure提供了无穷计算和存储等能力,对资源的使用是完全透明的,不用考虑信息放在了哪里、是哪台主机在给您提供服务,需要扩展时通过配置的改变即可在瞬间自动完成。

  这是Azure云计算平台的基本特征所在,只要您开发的应用部署到了Azure环境中,便具备了天然的高可用、及时动态扩展、高安全等一系列的特性。在传统的Hosting环境中并不具备这样的特征,一切都要开发者及IT运营管理者在架构上进行充分的设计才可达到。

  让我们回顾一下传统的hosting的应用部署过程,首先您需要和Hosting提供商签订好托管协议,准备服务器(自己购买或租用)、到托管机房进行服务器的安装、网络配置,再安装相应的软件等,所以一个应用上线的话,前期有大量的准备工作要做。所以从某种意义上,Hosting给您提供的是一个IT的运营环境、网络环境、带宽资源等,而如何保证系统的可用性、稳定性问题,当访问量发生变化时如何对系统进行扩展,以及日常运营中的安全补丁、运营监控等等一系列的问题,一样都不能少。

  但在Azure云计算平台中,上述面临着的问题均可在Azure开发者门户上通过几个步骤及分钟就可完成。 举个例子,当你将应用部署在Windows Azure上面之后,如果设计的系统容量是一个Instance能支持一万个并发请求,当你的客户量突然一夜之间增加到十万个并发请求时,你只需要更改服务配置文件,将Instance数量增加到10个,Azure fabric control便会自动地为您准备好所需的环境,并且动态的将应用快速部署到这10个虚拟系统上。除此之外,操作系统级补丁、安全维护等也是在系统在不宕机的情况下自动帮您完成。这些都是传统的Hosting无法实现的。
 
  可能您会注意到,还有些Hosting提供商提供虚拟主机的服务,可以帮您将ASP.NET, PHP等应用直接部署上去,此时您在获得部署便利(自己不用准备硬软件环境)的同时,牺牲了对系统的可控性,即可用的服务非常有限。但本质上该方式与上面提到的传统的托管方式是没有区别的,系统地可扩展性、可用性问题得不到解决。

  以上从设计理念上看到了两者的区别。另外,还有Azure中两种不同Role(Web Role以及Worker Role)的架构思想,也使得Azure的服务托管方式与传统的Hosting有着本质的区别,这里就不再详细说明。

0
相关文章