1.2 云计算的基本概念
对于什么是云计算,众说纷纭,目前尚未形成业界共同认可的定义,但我们却可以通过一些特征去窥探云计算的内涵。
1.2.1 云计算的内涵
云计算的“云”包含以下两方面的内涵。
“云”指通过互联网接入,也就是说,云计算是通过互联网来使用的,这就决定了它具有互联网的很多特征。
使用模式:可随时随地接入互联网的终端,即申请/注册即使用。
业务模式:自助服务(用户不需要专业的支持就能使用),可定制,按需使用(弹性服务,例如一天可以搜索1次,也可以搜索10000次)。
商业模式:免费或按使用付费,部分业务也可以遵循互联网“免费+广告”的盈利模式。
“云”指通过计算池提供资源,也就是说,不是构建一两台机器的问题,而是要构建一定规模的集群,并且对该集群统一管理,形成“资源池”,才能满足云计算业务的需求。计算池需要具备以下几个特征。
统一管理和调度:不论资源的规模和地理位置如何,所有资源都是通过网络由统一的管理节点进行管理、调度和监控。这种统一管理能充分实现资源的共享和调度,以及资源的最大化利用和最优化配置。
较大的规模:如果系统具备良好的可扩展性,一开始不一定要达到很大的规模。但考虑到互联网用户规模的突发性,如果是基于互联网来提供云计算业务,就需要具备一定的规模才有可能满足基本的业务可用性(当资源不足时,用户的申请就可能失败)。另外,较大规模还有两大好处,一是可以承载尽可能多的系统和应用,实现更高的共享性和资源利用率,二是可以支撑海量数据存储和处理需求,满足互联网应用的数据爆炸性增长需要。当然,规模越大,对管理的要求也就越高。
良好的可扩展性:互联网的业务特征要求云计算的计算池能实现简单和高速扩展,以便在用户快速增长的情况下可以迅速满足需要。缺乏可扩展性对云计算运营商来说可能是致命的,因为这既可能导致很高的管理成本,也可能导致很差的用户体验。
良好的可伸缩性:与计算池的可扩展性一样,单一用户业务的可伸缩性也非常重要。显然,当用户当前使用的计算能力不足时,可以很快申请获得更多的资源(对应于线下模式,可能是用户采购新的机器,然后替换或组成集群),这是用户按需使用的前提。通过实现资源虚拟化,能够提供较高的可伸缩性。
即时提供:这种“即时”是相比传统IT的获取时间而言的。而且,由于在互联网上提供云计算服务时都是以接口方式提供计算和存储能力的,因此,云计算运营商应具有非常强大的批量提供能力。例如,以前要购买、安装、配置1000台PC服务器可能需要几周甚至更长的时间,但通过云计算模式,可能只需要几小时甚至几分钟。将硬件部署变为软件部署是实现即时提供的关键。
更低的成本:这是支持互联网商业模式的关键(即使不是免费的)。更低的成本源于两个方面,一方面是硬件成本的降低及资源利用率的提高、开源软件的应用和自主开发能力的增强,另一方面是运营模式的变革、节能减排技术的引入以及销售成本的降低。
简单地说,云计算是指基于互联网将规模化资源池的计算、存储、开发平台和软件能力提供给用户,实现自动化、低成本、快速提供和灵活伸缩的IT服务。云计算是指基于互联网将规模化资源池的计算、存储、开发平台和软件能力提供给用户,实现自动化、低成本、快速提供和灵活伸缩的IT服务。
1.2.2 云计算服务
云计算的一个典型特征是IT服务化,也就是将传统的IT产品、能力通过互联网(如果是私有云就是内部网)以服务的形式交付给用户,即大家所熟知的IaaS、PaaS和SaaS,对应于传统IT中的“硬件”、“平台”和“(应用)软件”。下面简单介绍一下这3类服务。
1.IaaS(Infrastructure as a Service,基础设施即服务)
传统IT的基础设施主要包括服务器、存储、网络等,因此,IaaS主要指基于传统IT基础设施之上提供的服务,包括计算服务、存储服务和网络服务。计算服务既包括弹性虚拟机,如Amazon的EC2,也包括高性能计算能力,如Amazon基于Hadoop MapReduce的HPC(High Performance Computing,高性能计算)服务。存储服务既包括块存储和对象存储服务,如Amazon EBS、Google Storage、Amazon S3,也包括数据库存储,如Amazon SDB、Azure SQL。提供存储能力的可以是传统的共享式存储系统,也可以是分布式存储系统。网络服务则包括防火墙服务、负载均衡服务、CDN服务,如Amazon AWS的Route 53、Elastic Load Balancing、CloudFront等。
2.PaaS(Plateform as a Service,平台即服务)
传统的IT平台主要是操作系统、中间件和开发平台,它们都是为应用开发和运行提供能力和支撑环境的,一般由用户自行部署。而在云计算中,PaaS服务提供商集中部署和运营操作系统、中间件、开发平台等,再以服务实例的形式将它们提供给外部用户,即向第三方提供应用开发与运行实例环境,例如Google的App Engine、微软的Azure Platform。
3.SaaS(Software as a Service,软件即服务)
传统的软件既有面向个人的桌面软件,也有面向企业的服务器软件,由用户自行订购及部署。而在云计算环境下,这些由SaaS服务提供商集中部署和运营,并以软件服务实例的形式提供给用户,供多用户共享,例如Google的Google Apps、Salesforce的CRM服务、NetSuite的管理软件服务。
实际上,PaaS普遍包括了应用运行所需的基础设施。例如,Google App Engine就架构于Google庞大的基础设施上,包括服务器实例、存储能力(DataStore,基于BigTable)等,但使用PaaS的用户并不关心基础设施,也就是说,用户不需要额外订购IaaS。另外,用户可以选择在IaaS的基础上架构PaaS平台,并享受应用开发和运行服务,例如Heroku基于Amazon EC2提供的PaaS。第三方也可以基于PaaS或IaaS部署SaaS,并向用户提供软件服务。因此,IaaS、PaaS和SaaS可以基于统一的技术架构通过特定的软件技术为用户提供不同层次的服务形式,如图1-1所示。
图1-1 云计算服务架构
1.2.3 云计算的类型
IaaS、PaaS和SaaS是从它们各自提供服务内容的角度来区分的,而从部署位置、访问策略、服务目标用户等角度,则可以分为公有云、私有云和混合云。云计算最初是由Amazon、Google、Salesforce等互联网公司发起的,主要面向中小型企业、开发者和个人用户,所有用户通过互联网申请和使用服务,共享统一的基础设施和平台,这是典型的公有云模式。但随着云计算技术和市场的发展,目前私有云和混合云也逐渐成为云计算的主流应用领域。
1.公有云
公有云指的是面向公众提供的云服务,大部分互联网公司提供的云服务都属于公有云,例如Amazon的AWS、Google的Apps和App Engine等,其主要特征包括基于互联网获取和使用服务、关注盈利模式、具有强大的可扩展性和较好的规模共享经济性等。
2.私有云
由于公有云的一些局限性,例如由数据存储在提供商的数据中心导致的安全性问题、由系统庞大导致的稳定性问题、由网络带来的访问性能问题和对已有系统的集成能力较差问题等,私有云(也称为内部云)目前已经成为众多拥有较大IT资源和软件系统的企业用户的选择。私有云的特征包括面向内部用户、通过内部网络获得和使用服务、可扩展性受限、一般无盈利要求、规模较小导致单一用户成本较高。在现有网络条件下,私有云的使用体验较好,安全性较高。但当出现突发性需求增长时,私有云因规模有限,将难以快速地有效扩展。
3.混合云
由于公有云和私有云各有优缺点,也有企业提出将公有云和私有云进行结合,这就是混合云。例如,Amazon推出的VPC(Virtual Private Cloud,虚拟私有云)允许用户在AWS上创建网络隔离的专有云,用户可以完全控制该专有云的网络配置(例如将这部分“云”划分为多个区域,Web服务器区域可以对外,而数据库区域则不直接对外)。同时,用户还可以将VPN网络连接到自己企业的数据中心,实现AWS上的“云”与企业内部IT系统(或私有云)的连接,将AWS上的“云”作为企业内部云的可扩展部分。