《Windows Azure Platform 系列文章目录》
我们之前介绍的都是Windows Azure 的Platform-as-a-service (PaaS) 特性。Azure PaaS预先安装了Windows Server 2008 R2的OS,中间件安装了.NET Framework 3.5。Azure PaaS还有重要的概念是Web Role和Worker Role。PaaS比较适合新的应用或者是架构比较好的应用,因为这样能利用Web Role、Worker Role可伸缩,易扩展的特性。
但是对于那些已经存在时间很长的商业应用(legacy systems),可能会遇到这样的问题:
- 因为架构设计的原因,这个legacy systems如果要迁移到Azure PaaS需要做非常多的调整和修改。
- 这个legacy systems有部分组件依赖于其他的商业软件(比如Java,Office,MATLA,ESRI ArcGIS等等)。这些软件在PaaS的平台上是没有被预先安装的。PaaS只安装了Windows操作系统和.NET Framework
- 这些legacy systems需要其他复杂的配置过程。比如启动项、配置服务启动顺序等等。
而Infrastructure-as-a-service(IaaS)恰恰能够解决这样的问题。
请注意:Windows Azure VM Role还是属于PaaS的范畴,并不属于IaaS的范围。微软为了实现IaaS,采用了Virtual Machine,而不是VM Role。
读者如果对微软的IaaS感兴趣,请参考[New Portal]Windows Azure Virtual Machine (1) 概念
微软也意识到了这个问题。在2010 PDC大会上,微软介绍了Windows Azure中一个新增的Computation Role - VM Role。这个特性增加了Windows Azure对IaaS的支持。也就是说,你可以利用VM Role实现Windows Azure的Iaas。
IaaS的好处是:
- 用户可以利用Hyper-V构建虚拟机(Windows Server 2008 R2),部署和安装其他商业软件,然后部署自己的Web应用程序。最后将构建完成的VHD(Virtual Hard Disk)上传到Windows Azure进行托管和运行。操作系统、中间件等的安装和维护都是由用户来完成的。
- IaaS比较适合那些比较"老"的商业应用软件,因为"老"的商业应用软件使用了非常多的COM、DLL、ATS、其他第三方的组件,如果要完全适应PaaS需要做比较大的修改。有了IaaS就能方便用户从on-premise直接部署到Windows Azure Cloud Computing。
IaaS的缺点是:
- 操作系统、中间件的维护都是由用户来完成的,而不是由云计算提供商;比如操作系统一旦需要打补丁进行升级(比如Windows Update),用户要自己执行升级程序,更新操作系统等;而且由于需要升级和安装补丁的过程,在此期间,Windows Azure托管服务运行是不正常的。所以,整个过程不是敏捷和快速的。
- 无法利用到Web Role和Worker Role来进行计算和处理,架构不是弹性和可扩展的。
- 计算和存储资源,无法进行横向和纵向的扩展。