1.1 云计算概述
OpenStack 是云操作系统,用于部署云计算平台。学习 OpenStack 首先需要了解云计算的基本知识,理解相关概念。
1.1.1 云计算的概念
在传统模式下,企业建立一套 IT 系统不仅要采购硬件等基础设施,而且要购买软件的许可证,还需要专门的人员维护。当企业的规模扩大时,企业就要继续升级各种软硬件设施以满足需要。这些硬件和软件本身并非用户真正需要的,它们仅仅是完成任务的工具,软硬件资源租用服务能满足用户的真正需求。而云计算(Cloud Computing)就是这样的服务,其最终目标是将计算、服务和应用作为一种公共设施提供给公众。
云(Cloud)是计算机网络、互联网的一种比喻说法。云计算是提供虚拟化资源的一种模式,将以前的信息孤岛转化为灵活高效的资源池和具备自我管理能力的虚拟基础架构,从而以更低的成本和更好的服务形式提供给用户。云计算意味着,IT的作用正在从提供IT服务逐步过渡到根据业务需求优化服务的交付和使用。
云计算是IT系统架构不断发展的产物。早期的IT系统架构是面向物理设备的物理机架构,所有应用都部署和运行在物理机上,资源使用率低,部署和运维成本高。随着物理服务器的计算能力不断提高,为解决这些问题,出现了基于虚拟机的IT系统架构,它面向资源,将应用系统直接部署到虚拟机上。服务器虚拟化是一种可以为不同规模的企业降低IT开销、提高效率和敏捷性的有效方式。虚拟化提高了单台物理机的资源使用率,但并不提供基础设施服务。最新的云计算架构面向服务,将计算、存储和网络类IT系统资源以服务的形式提供给用户,用户只需向云平台请求所需的虚拟机来运行自己的应用系统,无须关心虚拟机在哪里运行,从何处获取存储空间,如何分配IP地址等。所有的一切都由云平台来实现。
云计算可以说是虚拟化技术的升级,通过在数据中心部署云计算系统,可以完成多数据中心之间的业务无感知迁移,并可同时为公众提供服务,此时数据中心就成为云数据中心。云计算旨在通过Internet按需交付共享资源,利用虚拟化实现云计算的所有功能。云计算系统的平台管理技术能够使大量的服务器协同工作,方便进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。服务器虚拟化不是云,而是基础架构自动化或者数据中心自动化,它并不需要提供基础设施服务。虚拟化是构建云基础架构不可或缺的关键技术之一,服务器虚拟化技术可用于云计算,其常见的应用是通过虚拟化服务器将虚拟化的数据中心搬到私有云。当然,一些主流的公共云也都使用这种虚拟化技术。
1.1.2 云计算架构
云计算架构是一个面向服务的架构,云计算包括3个层次的服务:基础设施即服务(Infrastructureas-a-Service,IaaS)、平台即服务(Platform-as-a-Service,PaaS)和软件即服务(Software-as-a-Service, SaaS)。这3种服务代表了不同的云服务模式,分别在基础设施层、平台层和应用层实现,共同构成云计算的整体架构,如图1-1所示。从图中可以看出,云计算架构还包括用户接口(针对每个层次的云计算服务提供相应的访问接口)和云计算管理(对所有层次云计算服务提供管理功能)这两个模块。
图1-1 云计算架构
1.IaaS(基础设施即服务)
IaaS服务模式将数据中心、基础设施等硬件资源通过Internet分配给用户,提供的服务是虚拟机。IaaS 负责管理虚拟机的生命周期,包括创建、修改、备份、启停、销毁等,用户从云平台获得一个已经安装好镜像(包含操作系统等软件)的虚拟机。企业或个人可以远程访问云计算资源,包括计算、存储以及应用虚拟化技术所提供的相关功能。无论是最终用户、SaaS提供商,还是PaaS提供商都可以从 IaaS 中获得应用所需的计算能力。目前具有代表性的 IaaS 服务产品有亚马逊(Amazon)的EC2云主机和S3云存储,以及Rackspace Cloud等,国内主要有阿里云和百度云服务等。
2.PaaS(平台即服务)
PaaS 将一个完整的计算机平台,包括应用设计、应用开发、应用测试和应用托管,都作为一种服务提供给用户。也就是说,PaaS 提供的服务是应用的运行环境和一系列中间件服务(如数据库、消息队列等)。PaaS负责保证这些服务的可用性和性能。在这种服务模式中,用户不需要购买硬件和软件,只需要利用PaaS平台,就能够创建、测试、部署应用和服务,与基于数据中心的平台进行软件开发和部署相比,费用要低得多,这是PaaS的最大价值所在。目前PaaS的典型实例有微软的Windows Azure平台、Facebook的开发平台、Google App Engine、IBM BlueMix,以及国内的新浪SAE等。
3.SaaS(软件即服务)
SaaS是一种通过Internet提供软件服务的云服务模式,用户无须购买或安装软件,而是直接通过网络向专门的提供商获取自己所需要的、带有相应软件功能的服务。SaaS 直接提供应用服务,主要面向软件的最终用户,用户无须关注后台服务器和运行环境,只需关注软件的使用。
SaaS 的应用范围很广,如在线邮件服务、网络会议、网络传真、在线杀毒等各种工具型服务,在线 CRM、在线 HR、在线进销存、在线项目管理等各种管理型服务,以及网络搜索、网络游戏、在线视频等娱乐性应用。微软、Salesforce等各大软件公司都推出了自己的SaaS应用,用友、金蝶等国内软件公司也推出了自己的SaaS应用。
采用的服务模式不同,云计算平台提供的资源不同,用户的参与度也不同,不同云服务模式的资源部署如图1-2所示,其中,虚线框中的资源由云计算平台提供,实线框中的资源由用户部署和管理。IaaS 的使用者通常是数据中心的系统管理员,需要关心虚拟机的类型(OS)和配置(CPU、内存、磁盘存储),并且负责部署上层的中间件和应用软件。PaaS的使用者通常是应用的开发人员,只需专注应用的开发,并将自己的应用和数据部署到PaaS云环境中。SaaS的使用者通常是应用的最终用户,只需登录并使用应用,无须关心应用使用什么技术实现,也不需要关心应用部署在哪里。有人将IaaS、PaaS和SaaS分别称为系统云、开发云和用户云。
图1-2 不同云服务模式的资源部署
OpenStack用于对数据中心的计算、存储和网络资源进行统一管理。它提供的IT基础设施服务,是IaaS层次的云操作系统。
1.1.3 云计算部署模式
对云提供者而言,云计算主要有3种部署模式,即公共云、私有云和混合云。
1.公共云
公共云(Public Cloud)面向公众提供应用和存储等资源,是为外部用户提供服务的云,它所有的服务都是供公众使用的,而不是供企业自己使用。
对用户而言,公共云的最大优点是其所应用的程序、服务及相关数据都存放在公共云端,用户自己无须做相应的投资和建设。目前最大的问题是,由于数据不是存储在用户自己的数据中心里,其安全性存在一定风险,同时公共云的可用性不受用户控制,存在一定的不确定性。
目前主流的公共云服务有微软Azure、亚马逊AWS和谷歌公共云,以及国内的阿里云。
2.私有云
私有云(Private Cloud)又称专用云,是为一个组织机构单独使用而构建的,是企业自己专用的云,它所有的服务不是供公众使用的,而是供企业内部人员或分支机构使用的。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所,私有云的核心属性是私有资源。
私有云部署在企业自身内部,因此其数据安全性、系统可用性、服务质量都可由自己控制。但其缺点是投资较大,尤其是一次性的建设投资较大。
私有云的部署比较适合于有众多分支机构的大型企业或政府部门。随着这些大型企业数据中心的集中化,私有云将会成为部署IT系统的主流模式。
私有云可以进一步细分为自有私有云(On-Premise Private Cloud)和托管私有云(Hosted Private Cloud)两种类型。前者又称内部云(Internal Cloud),完全由组织内部或数据中心自有并管理,为云计算需求提供内部解决方案;后者则由第三方提供商所有和运维,为企业用户提供一整套私有云服务。
3.混合云
混合云(Hybrid Cloud)是公共云和私有云的混合。混合云既面向公共空间又面向私有空间提供服务,可以发挥出所混合的多种云计算模型各自的优势。当用户需要使用既是公共云又是私有云的服务时,选择混合云比较合适。
混合云有助于提供所需的、外部供应的扩展。用公共云的资源扩充私有云的能力,可用来在发生工作负荷快速波动时维持服务水平。
混合云的部署方式对提供商的要求较高。
1.1.4 云计算解决方案
云计算解决方案可以分为两类,一类是商用云计算平台,另一类是开源云计算平台。
1.商用云计算平台
目前著名的商用云计算平台亚马逊AWS(Amazon Web Services)已成为公共云的事实标准,为全世界范围内的用户提供云计算解决方案,提供包括弹性计算云(Amazon Elastic Compute Cloud, Amazon EC2)、简单存储服务(Amazon Simple Storage Service,Amazon S3)、简单数据库(Amazon Simple DB)、简单队列服务(Amazon Simple Queue Service)等在内的一整套云计算服务,帮助企业降低IT投入成本和维护成本。其中EC2用于提供虚拟机服务,并建立了云计算服务基于虚拟化技术实现资源动态共享、弹性扩展的标准。S3用于提供云存储服务,已经成为全球范围内应用广泛的云存储接口。
另一知名的云计算平台是Microsoft Azure。它是一个综合性的云服务平台,开发人员和IT专业人士可使用该平台来生成、部署和管理应用程序。作为一个开放而灵活的企业级云计算平台,它提供IaaS和PaaS两种模式的云计算服务。
国内比较有影响的商用云计算平台是阿里巴巴集团旗下的云计算品牌阿里云(AliCloud)。阿里云面向全球提供云计算服务,目前在我国公共云市场上占据绝对主导地位。它为用户提供类似AWS的一整套云计算解决方案,包括弹性计算、云存储、云安全等。
2.开源云计算平台
除了可用于构建云基础设施的商用软件,还有大量的开源云计算解决方案。开源云计算平台并不单单是商用云软件的替代品,许多新的云计算概念和技术往往是在开源软件中率先实现的。开源云计算平台进一步拓展了云计算领域,推动了云计算技术的发展。
(1)OpenStack是一个IaaS开源云计算解决方案。这个全球性项目由Rackspace和NASA共同创办,采用了Apache 2.0许可证,可随意使用。OpenStack并不要求使用专有的硬件或软件,可以在虚拟系统和裸机系统中运行。它支持多种虚拟机管理程序(如 KVM、XenServer 等)和容器技术。OpenStack应用广泛,它既可与Hadoop协同运行以满足大数据要求,又可向纵向和横向扩展以满足不同的计算要求,还可提供高性能计算以处理密集的工作负载。
(2)OpenNebula是一款为云计算而打造的开源工具箱,也采用Apache 2.0许可证。从研究的角度来看,该项目力求开发先进的、自适应的虚拟化数据中心和企业云,注重云计算软件的稳定性和质量。
(3)Eucalyptus 提供完整的 IaaS 解决方案,包括云控制器、持续性数据存储、集群控制器、存储控制器、节点控制器和可选的VMware代理,每个组件都是一种独立的Web服务,旨在为每种服务提供API。这种基于Linux的系统让用户可以使用一种基于行业标准的模块化框架,在现有的基础设施里部署私有云和混合云。其社区版采用的是GPL v3授权协议,无须许可证;而企业版需要授权,在云控制器上安装许可证。
(4)CloudStack的核心是用Java编写的云计算解决方案,可以与XenServer/XCP、KVM、Hyper-V和 VMware 上的主机协同运行,被许多提供商用于为客户部署私有云、公共云和混合云等云计算解决方案。其授权与Eucalyptus类似。
1.1.5 裸金属云
在公共云服务推出之前,一些互联网服务提供商(Internet Service Provider,ISP)或互联网数据中心(Internet Data Center,IDC)均提供服务器托管服务,用户可以按需选择服务器硬件和操作系统等,这比使用Web虚拟主机要灵活得多。进入云计算时代,一部分托管服务商也变身为云服务商,如Softlayer早在2010年就推出所谓的裸金属云(Bare Metal Cloud)或裸机云服务,为用户提供不含Hypervisor(虚拟机管理程序)、支持自定义硬件基础架构的产品。Bare Metal Cloud是一种提供物理服务器服务的云产品。与通用的云主机相比,它没有Hypervisor,没有虚拟机,也不存在多租户共享。
紧接着Rackspace推出名为“OnMetal”的裸金属云服务。作为全球影响力最大的开源硬件组织的开放计算项目(Open Compute Project,OCP)和开源云计算软件组织 OpenStack 的创始公司, Rackspace于2016年上线的OnMetal v2开始采用OCP服务器和OpenStack的Ironic进行管理,使其更加名正言顺地称为云服务。目前主要的云服务商都推出了此类云产品,如IBM的云平台推出基于Intel新一代至强可扩展处理器的裸金属服务器,亚马逊推出i3裸金属服务器,阿里云发布神龙云服务器(X-dragon Cloud Server)。
与虚拟化云主机几乎都基于x86架构不同,裸金属服务器在平台架构方面要丰富得多,除了Intel处理器,还可以选择POWER处理器、ARM处理器,以及GPU、FPGA等服务器产品。
随着容器技术的兴起,物理服务器成为其顺理成章的选择,因为对于用容器运行应用的用户,虚拟机在某些情况下是没有必要的。一些企业用户仍然希望使用可靠、安全的环境,也会选择裸金属云。