1.4 云计算的主要服务模式
根据现在最常用、也是比较权威的NIST及维基百科的定义,云计算从用户体验的角度主要分为三种服务模式:基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)、软件即服务(Software as a Service,SaaS)。SaaS侧重于软件服务,通过网络提供软件程序服务;PaaS侧重于平台服务,以服务平台或者开发环境提供服务;IaaS侧重于硬件资源服务,注重于计算资源的共享,消费者通过互联网可以从完善的计算机基础设施获得服务。
1.4.1 基础设施即服务IaaS
IaaS为IT行业创造虚拟的计算和数据中心,使得其能够把计算单元、存储器、I/O设备、带宽等计算机基础设施,集中起来成为一个虚拟的资源池来为整个网络提供服务。IaaS提供接近于裸机(物理机或虚拟机)的计算资源和基础设施服务。
IaaS的典型代表是Amazon的云计算服务(Amazon Web Service,AWS),AWS平台如图1-9所示,它提供了两个典型的云计算平台:弹性计算云EC2(Elastic Computing Cloud)和简单存储服务S3(Simple Storage Service),EC2完成计算功能,在该平台上用户可以部署自己的系统软件,完成应用软件的开发和发布。S3完成存储计算功能,S3的基础窗口是桶,桶是存放文件的容器。S3给每个桶和桶中每个文件分配一个URI地址,因此用户可以通过HTTP或者HTTPS协议访问文件。收费的服务项目包括存储服务器、带宽、CPU资源以及月租费。月租费与电话月租费类似,存储服务器、带宽按容量收费,CPU根据时长(小时)运算量收费。
图1-9 Amazon的云服务AWS
早在2007年,美国纽约时报就曾租用Amazon云计算平台,用于将1851—1922年纽约时报的1100万篇报刊文章转换为PDF文件,供读者上网免费访问。美国纽约时报共租用了100个EC2结点,运行了24小时,处理了4TB的报刊原始扫描图像,生成了1.5TB的PDF文件。每结点每小时费用为10美分,整个计算任务仅花费了240美元(100结点×24小时×$0.10)。如果用纽约时报自己的服务器,将需要数月时间和昂贵的费用!所以,当用户想运行成批的程序组,但是没有合适的软硬件环境时,云计算是一个很好的选择。
IaaS的关键技术及解决方案是虚拟化技术。使用虚拟化技术,将多台服务器的应用整合到一台服务器上的多个虚拟机上运行。其思路如图1-10所示,图左上侧有5台独立的服务器,每个服务器有其相应的操作系统和应用程序,但从图左下侧可看到每台服务器的利用率都很低,为了充分利用服务器,将5台服务器上的应用整合到一台服务器上的多个虚拟机上运行,如图右上侧所示,其利用率大大提高,如图右下侧所示。计算虚拟化提高了服务器资源的利用率,安全可靠地降低了数据中心总所有成本TCO(Total Cost of Ownership)。
图1-10 一台服务器虚拟化整合5个应用,提升了CPU利用率
虚拟化技术的一些主要功能可以用来应对数据中心面临的挑战,这些主要功能之一就是分区。分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),从而实现在一台服务器上运行多个应用程序;每个操作系统只能“看”到虚拟化层为其提供的“虚拟硬件(虚拟网卡、SCSI卡等)”,使它认为运行在自己的专用服务器上。
虚拟化技术的另一个主要功能是隔离。如某个虚拟机崩溃或故障(如操作系统故障、应用程序崩溃、驱动程序故障等),不会影响同一服务器上的其他虚拟机。在某个虚拟机中的病毒、蠕虫等与其他虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样。虚拟化技术还可以进行资源控制以提供性能隔离,即可以为每个虚拟机指定最小和最大资源使用量,以确保某个虚拟机不会占用所有的资源而使得同一系统中的其他虚拟机无资源可用。
虚拟化技术的第三个重要功能是封装。封装意味着将整个虚拟机(硬件配置、BIOS配置、内存状态、磁盘状态、I/O设备状态、CPU状态)存储在独立于物理硬件的一小组文件中,复制和移动虚拟机就像复制和移动文件一样简单。
1.4.2 平台即服务PaaS
PaaS是把应用服务的运行和开发环境作为一种服务提供的商业模式。即PaaS为开发人员提供了构建应用程序的环境,开发人员无须过多考虑底层硬件,可以方便地使用很多在构建应用时的必要服务。如当软件开发人员想把一个大容量的文件上传到网络上,并允许35000个用户使用两个月的时间,可使用Amazon的Cloud Front平台来完成。
Google App Engine(应用引擎)提供了一种PaaS类型的云计算服务平台,专为软件开发者制定。Google App Engine是由Python应用服务器群、BigTable数据库访问及GFS数据存储服务组成的平台,它能为开发者提供一体化的、提供主机服务器及可自动升级的在线应用服务。用户编写应用程序,Google提供应用运行及维护所需要的一切平台资源。Google App Engine云计算服务平台的工作原理如图1-11所示。在Google App Engine平台上,开发者完全不必担心应用运行所需要的资源,因为Google App Engine会提供所有的东西。开发者更容易创建及升级在线应用,而不用花费精力在系统的管理及维护上。
图1-11 Google App Engine云计算服务平台工作原理
Google App Engine这种服务让开发人员可以编译基于Python的应用程序,并可免费使用Google的基础设施来进行托管(最高存储空间达500MB)。超过此上限的存储空间,Google以CPU内核使用时长及存储空间使用容量按一定标准向用户收取费用。
Google App Engine和Amazon的S3、EC2及SimpleDB不同,因为后者直接提供的是一系列硬件资源供用户选择使用。
PaaS的关键技术有两个,一个是分布式的并行计算,另一个是大文件分布式存储。分布式并行计算技术是为了充分利用广泛部署的普通计算资源实现大规模运算和应用的目的,实现真正将传统运算转化为并行计算,为客户提供并行服务。大文件分布式存储是为了解决海量数据存储在廉价的不可信结点集群架构上数据安全性及运行性的保证。
1.4.3 软件即服务SaaS
SaaS是一种基于互联网提供软件服务的应用模式,即提供各种应用软件服务。用户只需按使用时间和使用规模付费,不需安装相应的应用软件,打开浏览器即可运行,并且不需要额外的服务器硬件,实现软件(应用服务)按需定制。在用户看来,SaaS会省去在服务器和软件授权上的开支;从供应商角度来看,只需要维持一个应用程序就够了,这样能够减少成本。SaaS主要面对的是普通用户。
SaaS是一种随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的软件应用模式。SaaS服务模式与传统的销售软件永久许可证的方式有很大的不同,它采用软件租赁的形式,这种模式也是未来管理软件的发展趋势。
对于广大中小型企业来说,SaaS是采用先进技术实施信息化的最好途径。企业无须购买软硬件、建设机房、招聘IT人员,即可通过互联网使用信息系统。就像打开自来水龙头就能用水一样,企业根据实际需要,向SaaS提供商租赁软件服务。
SaaS的典型产品有:Salesforce.com、阿里软件、铭万、金算盘、中企动力、神码在线、商务领航、友商网、八百客、bibisoft.cn等。其中,Salesforce.com是全球按需CRM(Customer Relationship Management,客户关系管理)解决方案的领导者。阿里软件居世界第二,是中国最大的电子商务网站阿里巴巴集团继成立“阿里巴巴”“淘宝”“支付宝”“雅虎”后,于2007年1月8日成立的第5家子公司。
SaaS的关键技术是多租户技术。云计算要求硬件资源和软件资源能够更好地共享,要具有良好的伸缩性,任何一个用户都能够按照自己的需求进行客户化配置而不影响其他用户的使用,多租户技术就是云计算环境中能够满足上述需求的关键技术,其思路如图1-12所示。
图1-12 SAAS的关键技术:多租户技术思路
1.4.4 三种服务模式之间的关系
以上介绍了云计算从用户体验的角度划分的三种服务模式:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。它们之间的关系主要可以从以下两个角度进行分析。
1.从用户体验角度分析
从用户体验角度而言,它们之间关系是独立的,因为它们面对的是不同类型的用户。SaaS主要面对的是普通用户,对普通用户而言,在任何时候或者任何地点,只要连接上互联网,通过浏览器就能直接使用在云端上运行的应用,而不需要顾虑软件安装等琐事,并且可以免去初期高昂的软硬件投入。PaaS主要的用户是开发人员,为了支撑着整个PaaS平台的运行,供应商需要提供四大功能:友好的开发环境、丰富的服务、自动的资源调度、精细的管理和监控。IaaS主要的用户是具有专业知识的系统管理员。IaaS供应商需要在7个方面对基础设施进行管理以给用户提供资源,它们是资源抽象、资源监控、负载管理、数据管理、资源部署、安全管理和计费管理。
2.从技术角度分析
云计算的服务层次是根据服务类型来划分的,与大家熟悉的计算机网络体系结构中层次的划分不同。从技术角度而言,它们有一定的继承关系,即SaaS基于PaaS,PaaS基于IaaS,但并不是简单的继承关系。因为SaaS可以是基于PaaS或者直接部署于IaaS之上,PaaS可以构建于IaaS之上,也可以直接构建在物理资源之上,也就是说某一层次可以单独完成一项用户的请求而不需要其他层次为其提供必要的服务和支持。云计算系统按资源封装的层次分为对底层硬件资源不同级别的封装,从而实现将资源转变为服务的目的,如图1-13所示。
图1-13 云计算的层次服务模式及商业代表