云架构的基本层次概述云和虚拟化

2013-02-27    来源:机房360    编辑:轶名
作为一种新兴的计算模式,云计算能够将各种各样的IT资源和功能以服务的方式通过网络交付给用户。这些服务包括种类繁多的互联网应用、运行应用的平台以及虚拟的IT资源。当云计算
  作为一种新兴的计算模式,云计算能够将各种各样的IT资源和功能以服务的方式通过网络交付给用户。这些服务包括种类繁多的互联网应用、运行应用的平台以及虚拟的IT资源。当云计算环境将硬件、软件和各种相关技术有效地组织存一起并提供各式各样云计算服务时,还应当保证所提供服务的可伸缩性、可用性与安全性。云计算系统的组织方式即为云计算架构(云架构)。本章将介绍典型云架构的基本层次以及各个层次的功能,并且通过云架构层次的实现示例来帮助读者更好地理解云架构。

  1 云架构的基本层次

  我们知道,从其服务类型来看,云计算中的云分为基础设施云、平台云和应用云。这样的分类方式其实已经包含了云架构的基本层次。云架构通过虚拟化、标准化和自动化的方式有机地整合了云中的硬件和软件资源,并通过网络将云中的服务交付给用户。如图4.1所示,由美国国家标准研究院(NIST)提出,后被广泛引用的云架构包含三个基本层次:基础设施层(Infrastructure Layer)、平台层(Platform Layer)和应用层 (ApplicationLayer)。该架构层次中每层的功能都以服务的形式提供出来,这就是云服务类型分类方式的来源,即从云架构不同层次所提供的服务来进行划分的。从图4.1中我们可以发现,这三种层次向外提供服务的方式有公有云、私有云和混合云三种类型,这三种方式是基本的云计算部署模型。
  基础设施层以IT资源为中心,包括经过虚拟化后的硬件资源和相关管理功能的集合。云的硬件资源包括了计算、存储和网络等资源。基础设施层通过虚拟化技术对这些物理资源进行抽象,并且实现了内部管理、操作流程自动化和资源管理优化,从而向用户提供动态、灵活的基础设施层服务。

  平台层以平台软件和中间件为中心,介于基础设施层和应用层之间。平台层包括具有通用性和可复用性的软件资源的集合,是优化的"云中间件",提供了应用开发、部署、运行相关的中间件和基础服务,能够更好地满足云应用在可伸缩性、可用性和安全性等方面的要求。

  应用层是云上应用软件的集合,这些应用构建在基础设施层提供的资源和平台层提供的环境之上,通过网络交付给用户。云应用种类繁多,既可以是受众群体庞大的标准应用,也可以是定制的客户应用,还可以是用户开发的多元应用。第一类主要满足个人用户的日常生活办公需求,比如文档编辑、日历管理、登录认证等:第二类主要面向企业和机构用户的可定制解决方案,比如财务管理、供应链管理和客户关系管理等;第三类是由独立软件开发商或开发团队为了满足某一类特定需求而提供的创新型应用,一般部署在公有云平台上。云架构层次示意图如图4.1所示。

  需要注意的是,某个云计算提供商所提供的云计算服务可能专注在云架构的某一层,而无须同时提供三个层次上的服务。如第l章中介绍的Amazon EC2、Coogle AppEngine和Salesforce CRM,它们就只分别向用户交付基础设施层、平台层和应用层上的服务。

  图4.1所示为逐层依赖的云架构。对于云提供商来说,交付的层次越高,其内部需要实现的功能就越多。例如,AmazonEC2为用户提供的是虚拟化的硬件资源,并提供对这些资源的管理;Google App Engine除了需要对硬件资源进行抽象和管理外,还要为用户提供统一的应用开发和运行环境; SalesforceCRM不仅要提供对底层硬件和中层软件平台的支持,还要为用户开发立即可用的软件或软件功能模块。可见,位于云架构上层的云提供商在为用户提供核层的服务时,同时要实现该架构下层所必须具备的功能。虽然实现的方法和细节不尽相同,如Salesforce.com与Amazon可以采用不同的硬件抽象方法,但是这些必备功能是使其服务可以被称之为"云"的必要元素。事实上,上层服务的提供者可以利用那些位于下层的云计算服务来实现自己的云计算服务,而无须自已实现所有下层的架构和功能。可以预见,随着云计算服务的发展,位于不同架构层次的云计算提供商之间的联合和服务集成,将是开展云计算业务的重要方式。

  云架构的服务层次

  云架构中的每一层都可以为用户提供服务,进而出现了基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务 (Platform as a Servive, PaaS)和软件即服务(Sofrware as a Service,,SaaS)的概念。此处将介绍这些服务,使读者从功能角度进一步了解云架构。

   (1)基础设施即服务

  基础设施即服务交付给用户的是基本的基础设施资源。用户无须购买、维护硬件设备和相关系统软件,就可以直接在基础设施即服务层上构建自己的平台和应用。基础设施向用户提供了虚拟化的计算资源、存储资源、网络资源和安全保护方法,如人侵检测、防火墙等。这些资源能够根据用户的需求进行动态分配。相对于软件即服务和平台即服务,基础设施即服务所提供的服务都比较偏底层,由用户根据需要进行使用,能够灵活适应用户需求。Amazon EC2是基础设施即服务的典型实例。它底层采用Xen虚拟化技术,以Xen虚拟机的形式向用户动态提供计算资源。除AmazonEC2的计算资源外,Amazon公司还提供简单存储服务(Simple Storage Service,S3)等多种IT基础设施服务。AmazonEC2向虚拟机提供动态lP地址,并且具有相应的安全机制来监控虚拟机节点间的网络,限制不相关节点间的通信,从而保障了用户通信的私密性。从计费模式来看,EC2按照用户使用资源的数量和时间计费,真正实现了云计算所倡导的"按使用量付费"模式,从而节省了用户的开支。

  (2)平台即服务

  平台即服务交付给用户的是丰富的"云中间件"资源,这些资源包括应用运行时环境、共享服务以及自动化管理服务等。平台即服务的应用运行时环境提供了最基本的运行应用的能力:共享服务,比如共享的数据库服务以及消息中间件服务,能够为应用提供比传统软件更高的灵活性、可用性和安全性;自动化管理则为应用提供了快速部署和配置,以及服务等级协定(SLA)等管理方面的功能。通常,平台即服务的用户可以大致分为三种:一种是平台本身的管理员,通过自动化管理服务了解平台的状态,从而保证平台的健康和资源的合理利用,以及进行相关的系统优化工作等:另一种是应用管理员,以应用为中心进行应用的监控和配置;还有一种则是应用开发人员,负责基于平台层的规范和共享服务进行应用开发。利用平台即服务开发应用和传统的开发模式相比有很大的优势:

  ►由于平台即服务提供的高级编程接口简单易用,软件开发人员可以在较短时间内完成开发工作,缩短应用开发周期;

  ►由于应用的开发和运行都是基于同样的平台,兼容性问题较少;

  ►开发者无须考虑应用的可伸缩性、服务容量等问题,因为平台即服务都已提供相应的保障;

  ►平向层提供的运营管理功能还能够帮助开发人员对应用进行监控和计费。

  Google公司的Google App Engine是典型的平台即服务实例。它向用户提供了Web应用开发平台,支持开发人员使用Java和Python编写Web应用,并为应用所有者提供了应用的管理控制台。Google App Engine对Web应用无状态的计算和有状态的存储进行有效分离,并对Web应用所使用的资源进行动态分配,从而使该平台上托管的应用具有很好的自动可伸缩性和高可用性。

  (3 )软件即服务

  软件即服务交付给用户的是定制化的软件应用,即软件提供方根据用户的需求,将软件或应用通过租用的形式提供给用户,用户通过网络访问使用。软件即服务主要有以下三个特征:

  ►用户不需要在本地安装该软件的副本,也不需要维护相应的硬件资源,该软件部署并运行在提供方自有的或第三方的环境中;

  ►软件以服务的方式通过网络交付给用户,用户端只需要打开测览器或者某种客户端工具就可以使用服务;

  ►采用了多租户技术,虽然软件即服务面向多个用户,但是每个用户都感觉是独自占有该服务。

  这种软件交付模式无论是在商业上还是在技术上都是一个巨大变革。对于用户来说,他们不再需要关心软件的安装和升级,也不需要一次性购买软件许可证,而是根据租用服务的实际使用情况进行付费,也就是"按需付费"。对于软件开发者而言,由于与软件相关的所有资源都放在云中,开发者可以方便地进行软件的部署和升级,因此软件产品的生命周期不再明显。

  开发者甚至可以每天对软件进行多次升级,而用户对于这些操作都是透明的,他们感觉到的只是质量越来越完善的软件服务。另外,软件即服务更有利于知识产权的保护,因为软件的副本本身不会提供给客户,从而减少了反编译等恶意行为发生的可能。Salesforce.com公司是软件即服务概念的倡导者,它面向企业用户推出了在线客户关系管理软件Salesforce CRM,已经获得了非常积极的市场反响。Google公司推出的Gmail和Google Docs等,也是软件即服务的典型代表。
1
3