IAAS与PAAS的开发者视角


在我以前的文章中,解释了云计算的基本概念,包括它的定义,特性和各种服务模式。在本文中,将从开发者的角度对基础设施即服务(IAAS:Infrastrqucture-as-a-Service)和平台即服务(PAAS:Platform-as-a-Service)进行比较,更深入体了解服务模型的细节。

以两个主流的云服务为例:亚马逊Web服务Amazon Web Service和微软公司的Windows Azure。他们分别代表了IAAS和PAAS两种服务模式。我们重点对比两种服务模式的不同。

图-1:IAAS VS PAAS

基础设施即服务(IAAS)

IAAS是按客户需求提供相应的基础设施,将自身资源租给客户,比如计算能力,存储,负载均衡等技术。

如表1左侧所示,IAAS提供商负责管理物理资源和虚拟化技术,物理资源比如网络,服务器和集群计算机,虚拟化技术帮助客户去运行虚拟机(VMs)。至于操作系统(OS)是由供应商还是客户管理经常是有争议的。一般情况下,IAAS提供商会用镜像文件预装完操作系统交给客户管理。以亚马逊Web服务(AWS)为例,亚马逊机器镜像(AMI:Amazon Machine Image)为客户提供了多种类型的操作系统,如Windows ServerLinux SUSELinux Red Hat,但不会对其进行维护或更新。

其他的软件比如中间件(如IISTomcat,Caching Services),运行环境(JRE.NET Framework)以及数据库(SQL ServerOracleMySQL)通常都不提供。因为IAAS提供商没有必要知道客户打算做什么。客户选择并安装所需要的软件后,在虚拟机上部署应用程序和数据。

步骤:在IAAS环境中设置应用程序

为了对IAAS中设置应用程序的过程有一个全面的了解,我借鉴了微软工程师Mark RussinovichBUILD会议上的一个幻灯片,用它来说明典型的IAAS服务的工作原理。

图-2:设置应用程序

把开发完成的应用部署到云端,需要将它部署到Web服务器上并配置好数据库。对于IAAS,主要步骤如下:

1. 准备数据库服务器

从库中选择并启动数据库的镜像文件。如果库中未提供数据库管理系统(DBMS)则需自行安装。

2. 准备Web /应用程序服务器

从库中选择所需软件的镜像文件,进行配置和启动。如果有未提供的软件需要自行安装。

3. 配置数据库及其对象

接下来要配置数据库,包括配置数据文件,日志文件,安全性设置等。然后建表并添加数据。

4. 部署您的应用程序

接下来,将开发完成的程序部署到Web服务器中。

5. 配置负载均衡器

应用程序需要部署在多个实例上时,还需要对每个实例的IP地址和负载平衡器等进行配置。

6. 管理您的虚拟机和DMBS

最后是管理您的虚拟机。例如,当操作系统上有更新或补丁包时,IAAS提供商不会自动更新。这些都需要客户自己执行。

平台即服务(PAAS)

现在,让我们来看另一种云服务“PAAS”的独特之处。在PAAS中所提供的是客户所需要的应用程序管理环境。不单单提供IAAS中的组件,他提供了开发和分发应用的解决方案,如操作系统,中间件,运行环境,甚至数据库,如表1右侧所示。

换句话说,我们可以把PAAS看做一整套软件,硬件和基础架构的集合。客户只需带上应用程序和数据,就可以使用了。

步骤:在PAAS环境中设置应用程序

对于PAAS,由于数据库、虚拟机和Web服务器很容易配置,所以主要步骤只有两步。如Mark Russinovich下面的幻灯片所示。

图-3:配置和部署

1. 数据库配置

无需自己安装数据库管理系统,只需要指出数据库服务器配置的位置。然后设置数据库、创建表格、添加数据。

2. 部署应用程序

和IAAS服务中的步骤类似,在PAAS云环境中部署应用程序。

如何配置负载均衡?以Windows Azure为例,它自动进行配置并做好准备接受流量,其他一切都将自动进行管理而不必特别的关心配置IP地址或负载均衡。

如何维护虚拟机?DBMS和Web服务器都将由供应商维护:

  • 如果托管应用程序的虚拟机存在硬件问题,供应商会检测故障并立即纠正,确保应用程序的正常运行。在Windows Azure中,Fabric Controller是用来处理这些问题的组件。
  • 如果操作系统上有新的更新或修补程序,供应商会确保您使用的的虚拟服务区始终处于更新状态。例如:Windows Azure使用“ 客户操作系统版本 ”来区分服务更新。另外客户可以自主选择一个固定版本或自动更新。

图-4:配置

总结

总之,我们研究了IAAS和PAAS两种方案的在服务模式和配置步骤上的差异。PAAS提供了更多的服务,而IAAS在底层比较灵活(例如:公共IP地址,负载均衡器等)。

毕竟众口难调,作为开发人员或架构师,充分了解客户需求、选择最佳方案往往会带来更好的结果。

优质内容筛选与推荐>>
1、CF704D Captain America
2、C#中static void Main(string[] args) 参数详解
3、Mac OS X 开发模式
4、VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug
5、分享一个简易的ORM框架源代码以及基于该框架开发的一个简易论坛源代码


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号