在我之前的文章中,讨论了云计算背后的基本概念,包括其定义,特性和各种服务模型。在本文中,我将更加详细地讨论服务模型,特别是从开发者的角度来比较IAAS和PAAS。
注:本文仅讨论的重点是云服务模式,而不是具体的云服务供应平台。
IAAS指的是为客户提供按需的基础设施服务的云服务模式。基础设施可以指可租用资源,如计算能力,存储设施,负载均衡器等。
如图一左侧所示,IAAS提供商将负责管理物理资源,例如网络,服务器和集群计算机。此外,他们通常还将管理虚拟化技术,使得客户能够运行虚拟机(virtual machine,VM)。而当涉及到操作系统(OS)时,到底是由供应商还是客户来管理它,这个问题经常引起争议。在大多数情况下,IAAS提供商会负责客户的预装操作系统的虚拟机镜像,可是客户随后就需要对操作系统进行管理。服务商会为客户提供多种类型的操作系统,如Windows Server,Linux SUSE和Linux Red Hat。尽管预装了操作系统,但服务商不会再对操作系统进行维护或更新。
其他一些软件包括中间件(如IIS,Tomcat,Caching Services),运行时环境(JRE和.NET Framework)以及数据库(SQL Server,Oracle,MySQL)在虚拟机镜像中通常不会提供。这是因为IAAS提供商不知道,也不关心客户会用虚拟机做什么。由客户负责处理这些虚拟机。当上面提到的所有软件都已经安装好后,最后客户会在虚拟机上部署应用程序和导入数据。
为了表述全面,我会说明在IAAS环境中搭建应用程序时所涉及的步骤。为此,我会借用Mark Russinovich在BUILD会议上展示的一张幻灯片。此图阐释了典型的IAAS供应模式的工作原理。
考虑到多层应用程序的开发已经完成这个常见的情况,作为开发人员,你还将需要将其部署到云中。应用程序需要托管在Web服务器和RDBMS数据库上。对于IAAS,以下是典型的步骤:
1. 准备数据库服务器
从VM镜像库中选择VM映像。然后,VM Image将被分配并启动。如果没有提供DBMS软件,则自行安装。
2. 准备Web /应用程序服务器
从VM镜像库中选择虚拟机镜像以进行分配和启动。如果未安装Web或者应用程序服务器或运行时环境,则自行安装。
3. 配置数据库及其对象
下一步是配置数据库,包括配置数据文件,日志文件,安全等。然后创建数据表并向其添加数据。
4. 部署你的应用程序
接下来,将你开发的应用程序部署到Web服务器上。
5. 配置负载均衡器
当需要在多个实例上托管你的应用程序时,你可能还要再进行配置,比如每个实例的IP地址和负载平衡器等。
6. 管理你的虚拟机和DBMS
最后一步是管理虚拟机。例如,当操作系统有更新或服务包时,IAAS提供商不会自动替你进行更新。相反,你可能需要自己做。
现在,让我们转到另一种云服务,“PAAS”,看看它有什么不同。在PAAS中,供应模型涉及一种按需的应用程序托管环境。PAAS供应商不仅像IAAS供应商那样管理组件,还会帮助客户管理额外的职责,如操作系统,中间件,运行时,甚至数据库,正如表1右侧所示。
换句话说,你可以认为PAAS就是租用一堆软件,硬件和基础设施。客户只需带上应用程序和数据,然后就可以开始了。
对于PAAS,考虑到数据库服务器,虚拟机和Web服务器虚拟机很容易配置,你只需要执行两个步骤,正如Mark Russinovich的另一张幻灯片所示。
1. 配置数据库
你可能需要指出你的虚拟数据库服务器在哪里(哪个区域)进行了配置,但是不必自己亲自安装一堆DBMS软件。你只要配置数据库,创建表格和添加数据。
2. 部署您的应用程序
这是适用于IAAS的类似步骤,你仍然需要在PAAS云环境中部署自己的应用程序。
那负载均衡器呢?以某些服务商为例,它将全部进行自动配置并准备好接受流量,其他一切都将进行自动管理。你不必再为IP地址或负载平衡器操劳。
那虚拟机的维护呢?DBMS和Web服务器虚拟机将由供应商维护。比如:
总的来说,我们探讨了IAAS和PAAS解决方案的不同服务模式和配置步骤。与IAAS供应商相比,PAAS供应商实际上承担了更多的责任。但另一方面,IAAS可以在更低层次上提供更多的灵活性(例如:公共IP地址,负载均衡器等)。
人无完人,事无完事。作为开发人员或架构师,你应该深入了解客户的需求,来确定合适的云服务模式以获得最佳的效果。