2.1 概述
2.1.1 云架构的基本层次
根据云计算服务的部署方式和服务对象范围,可以将云结构的基本层次分为3类:公有云、私有云和混合云(图2-1)。
图2-1 云计算架构的基本层次
2.1.1.1 公有云(或称公共云)
如1.2.2节中所述,云设施向公共开发使用,即云当云按服务方式提供给大众时,称为“公有云”。公有云由云提供商运行,为最终用户提供各种各样的IT资源。云提供商可以提供从应用程序、软件运行环境到物理基础设施等方方面面的IT资源的安装、管理、部署和维护。最终用户通过共享的IT资源实现自己的目的,并且为其使用的资源付费(pay-as-you-go),通过这种比较经济的方式获取自己所需的IT资源服务。
在公有云中,最终用户不知道与其共享使用资源的还有其他哪些用户,以及具体的资源底层如何实现,甚至几乎无法控制物理基础设施。所以云服务提供商必须保证所提供资源的安全性和可靠性等非功能性需求,云服务提供商的服务级别也因这些非功能性服务的提供的不同进行分级。特别是需要严格按照安全性和法规遵从性的云服务要求来提供服务,也需要更高层次、更成熟的服务质量保证。公有云的示例包括:Google App Engine、Amazon EC2和IBM Developer Cloud。中国的无锡云计算中心建立的“太湖云”也是一种对外提供服务的公有云。
2.1.1.2 私有云(或称专属云)
商业企业和其他社团组织不对公众开放,为本企业或社团组织提供云服务(IT资源)的数据中心称为私有云。与传统的数据中心相比较,云数据中心可以支持动态灵活的基础设施,降低IT架构的复杂度,使各种IT资源得以整合、标准化;并且可以通过自动化部署提供策略驱动的服务水平管理,使IT资源能够更加容易地满足业务需求的变化。相对于公有云,私有云的用户完全拥有整个云中心设施(比如中间件、服务器、网络和磁盘),可以控制哪些应用程序在哪里运行,并且可以决定允许哪些用户使用云服务。由于私有云的服务提供对象是针对企业或社团内部,私有云上的服务可以更少地受到在公有云中必须考虑的诸多限制,比如带宽、安全和法规遵从性等。而且,通过用户范围控制和网络限制等手段,私有云可以提供更多的安全和私密等专属性的保证。
私有云提供的服务类型也可以是多样化的。私有云不仅可以提供IT基础设施服务,而且也支持应用程序和中间件运行环境等云服务,比如企业内部的管理信息系统(MIS)云服务。中国中化集团的“中化云计算”就是典型的支持SAP服务的私有云。
2.1.1.3 混合云
混合云是把“公有云”和“私有云”结合到一起的方式。用户可以通过一种可控的方式部分拥有,部分与他人共享。企业可以利用公有云的成本优势,将非关键的应用部分运行在公有云上,同时将安全性要求更高、关键性更强的主要应用通过内部的私有云提供服务。这些云可以由企业创建,而管理职责由企业和云服务提供商共同承担。也可以是由云服务提供商提供对当企业内部IT资源不足时支持快速配置扩展规模的一种承诺服务。当企业需要使用既是公有云又是私有云的服务时,选择私有云比较合适。然而由于私有和公共服务组件间的交互和部署会带来更多的网络和安全方面的要求,这会相应带来较高的设计和实施难度。混合云的示例包括运行在荷兰的iTricity的云计算中心。
2.1.2 云架构的服务层次
云计算的服务类型可以将云分为3层:基础设施即服务、平台即服务和软件即服务(图2-2)。不同的云层,提供不同的云服务。下面对这3层的云服务进行逐一详细说明。
图2-2 云计算按层次分类
2.1.2.1 基础设施即服务(Infrastructure as a Service)
位于云计算3层服务的最底端,即把IT基础设施像水、电一样以服务的形式提供给用户,以服务形式提供基于服务器和存储等硬件资源的可高度扩展和按需变化的IT能力。通常按照所消耗资源的成本进行收费。
该层提供的是基本的计算和存储能力,以计算能力的提供为例,其提供的基本单元就是服务器,包含CPU、内存、存储、操作系统及一些软件。为了让用户能够定制自己的服务器,需要借助服务器模板技术,即将一定的服务器配置与操作系统和软件进行绑定,并提供定制的功能。服务的供应是一个关键点,它的好坏直接影响用户的使用效率及IaaS系统运行和维护的成本。自动化是一个核心技术,它使得用户对资源使用的请求可以以自行服务的方式完成,无须服务提供者的介入。一个稳定而强大的自动化管理方案可以将服务的边际成本降低为0,从而保证云计算的规模化效应得以体现。在自动化的基础上,资源的动态调度得以成为现实。资源动态调度的目的是满足服务水平的要求。比如根据服务器的CPU利用率,IaaS平台自动决定为用户增加新的服务器或存储空间,从而满足事先跟用户订立的服务水平条款。在这里,资源动态调度技术的智能性和可靠性十分关键。此外,虚拟化技术是另外一个关键的技术,它通过物理资源共享来极大提高资源利用率,降低IaaS平台成本与用户使用成本;而且,虚拟化技术的动态迁移功能能够带来服务可用性的大幅度提高,这一点对许多用户极具吸引力。具体的例子包括:IBM为无锡软件园建立的云计算中心以及亚马逊的EC2。
2.1.2.2 平台即服务(Platform as a Service)
位于云计算3层服务的最中间,也称为“云计算操作系统”。它提供给终端用户基于互联网的应用开发环境,包括应用编程接口和运行平台等,并且支持应用从创建到运行整个生命周期所需的各种软硬件资源和工具。一般情况下按照用户或登录情况计费。在PaaS层面,服务提供商提供的是经过封装的IT能力,或者说是一些逻辑的资源,比如数据库、文件系统和应用运行环境等。
通常又可将PaaS细分为开发组件即服务和软件平台即服务。前者指的是提供一个开发平台和API组件,给开发人员更大的弹性,依不同需求定制化。一般面向的是应用软件开发商(ISV)或独立开发者,这些应用软件开发商或独立开发者在PaaS厂商提供的在线开发平台上进行开发,从而推出自己的SaaS产品或应用。后者指的是提供一个基于云计算模式的软件平台运行环境,让应用软件开发商(ISV)或独立开发者能够根据负载情况动态提供运行资源,并提供一些支撑应用程序运行的中间件支持。目前有能力提供PaaS平台的厂商并不多,典型案例包括IBM的Rational开发者云、Salesforce公司的Force.com和Google的Google App Engine等。
这个层面涉及两个核心技术。一是基于云的软件开发、测试及运行技术。PaaS服务主要面向软件开发者提供了在线开发工具,开发者可通过浏览器、远程控制台(控制台中运行开发工具)等技术直接在远程开发应用,无须在本地安装开发工具;或者是提供了本地开发工具和云计算的集成技术,开发者可以通过本地开发工具将开发好的应用直接部署到云计算环境中去,同时能够进行远程调试。二是大规模分布式应用运行环境。它指的是利用大量服务器构建的可扩展的应用中间件、数据库及文件系统。该环境可以使应用得以充分利用云计算中心的海量计算和存储资源,进行充分扩展,突破单一物理硬件的资源瓶颈,满足互联网上百万级用户量的访问要求,Google的App Engine就采用了这样的技术。
2.1.2.3 软件即服务(Software as a Service)
软件即服务是最常见的云计算服务,位于云计算3层服务的顶端。用户通过标准的Web浏览器来使用Internet上的软件。服务供应商负责维护和管理软硬件设施,并以免费(提供商可以从网络广告之类的项目中生成收入)或按需租用方式向最终用户提供服务。这类服务既有面向普通用户的,诸如Google Calendar和Gmail;也有直接面向企业团体的,用以帮助处理工资单流程、人力资源管理、协作、客户关系管理和业务合作伙伴关系管理等。这些产品的常见案例包括:IBM Lotuslive、Salesforce.com和Sugar CRM等。这些SaaS提供的应用程序减少了客户安装和维护软件的时间和技能等代价,并且可以通过按使用付费的方式来减少软件许可证费用的支出。
在SaaS层面,服务提供商提供的是消费者应用或行业应用,直接面向最终消费者和各种企业用户。这一层面主要涉及如下技术:Web2.0、多租户和虚拟化。Web2.0中的AJAX等技术的发展使得Web应用的易用性越来越高,它把一些桌面应用中的用户体验带给了Web用户,从而让人们容易接受从桌面应用到Web应用的转变。多租户是指一种软件架构,在这种架构下,软件的单个实例可以服务于多个客户组织(租户),客户之间共享一套硬件和软件架构,它可以大大降低每个客户的资源消耗,降低客户成本。虚拟化也是SaaS层的一项重要技术,与多租户技术不同,它可以支持多个客户共享硬件基础架构,但不共享软件架构,这与IaaS中的虚拟化是相同的。
以上的3层,每层都有相应的技术支持提供该层的服务,具有云计算的特征,比如弹性伸缩和自动部署等。每层云服务可以独立成云,也可以基于下面层次的云提供的服务。每种云可以直接提供给最终用户使用,也可以只用来支撑上层的服务。