本节从需求驱动和技术驱动两方面来介绍云计算的起源。
云计算的典型特点之一就是它是由产业界首先提出后迅速推广起来的。下面从云服务提供商和云用户(以下简称用户) 的角度来分析云计算产生的动因。
(1)云服务提供商。
较早提出云计算的厂商是亚马逊。作为全球最大的电商平台之一,亚马逊为了应对特殊节日的购物高峰,不得不对自己的服务器等硬件设施多次进行扩容。但是从全年来看,购物高峰只是少数情况,在大部分时间内,扩容的硬件设施都处于空闲状态,这造成资源的严重浪费。亚马逊迫切需要在平时将空闲的资源出租出去,同时还不能影响购物高峰时的使用。在这种需求的驱动下,云计算技术出现了,通过云计算技术,亚马逊可以快速、灵活地进行资源配置和部署,平时将空闲资源出租以提高资源的利用率,同时还可以迅速响应高峰时期的资源需求。
亚马逊近年来云计算服务收入占亚马逊总营业收入的比重如图1-1所示,由此可见,通过云计算将空闲资源出租给需要的用户,确实可以解决资源浪费的问题,提高资源利用率的同时也创造了营业收入。而且,云计算服务收入占亚马逊总营业收入的比重还在逐年上升。与亚马逊类似,国内网商平台巨头阿里巴巴也提供了阿里云平台,目前在国内也是排名前列的云服务提供商。
图1-1 云计算服务收入占亚马逊总营业收入的比重
综上所述,从云服务提供商的角度来看,云计算提出的动因是,一些大型的企业为应对业务的峰值建设了大型的数据中心,然而根据“9-9-1原则”,90%的服务器在90%的时间里的资源利用率不足10%。为了解决资源浪费的问题,云计算概念被提出,企业希望通过云计算技术提高资源的利用率,为企业创造营业收入。
(2)用户。
假设共享单车刚刚萌芽时,计算机专业毕业的小王和几个要好的同学一起开发了一个“小王”共享单车App,并已经找到合作厂商愿意提供共享的单车,于是他们准备一起经营共享单车业务。在业务上线前,需要购置一批服务器,并将它们托管在数据中心,同时还需要申请带宽、备案IP等。然而,购置、托管服务器,申请带宽等需要一笔不菲的费用,作为刚毕业的学生,小王等几人并没有足够的资金。于是,为了尽量减少开支,他们进行了详细的市场调研、论证、招标等工作,终于完成了采购等任务并进行了部署。但是,当系统上线时,时间已经过去了大半年。此时,一些大型商家已经基本垄断了市场,新商家想要进入已非常困难,即开展共享单车业务的风头已过,业务很难继续下去。
由此可见,企业在初期建设信息系统时面临如下问题:
① IT资源初期成本投入高;
② IT资源采购周期长。
此外,信息系统在经历了漫长的周期上线后,所开展的业务面临着很多不确定性,很有可能使业务无法开展,导致创业失败,最终不得不将高价购买的IT资源在二手物交易平台上卖出,这造成的损失很大。
假设“小王”共享单车App及时上线,由于小王等几人对青年学生的心理需求比较了解,开发的App也有效满足了青年学生的需求。因此,“小王”共享单车App上线后业务得到迅速发展,此时IT资源承载着巨大的负载压力,出现了服务响应卡顿的现象。此时,“小王”共享单车平台需要及时进行扩容,但是究竟应该扩容多少呢?由于早期的利润还较少,如果扩容过多,则会增加额外的成本,带来过大的资金压力;如果扩容过少,则会影响业务的稳定,可能失去部分用户。对此,又需要进行新一轮的调研、论证、招标、采购、部署等工作,这是一个漫长的周期 。
此外,扩容成功后,面对庞大的IT基础设施,小王发现他们在学校里学习的知识已无法应对复杂的运维和管理工作,于是需要高薪聘用经验丰富、高水平的运维管理人员。
由于可见,对于快速成长的企业,在IT基础设施建设上可能面临如下问题:
① 难以按需快速扩容,IT基础设施缺乏弹性;
② 运维的人力成本高,经济压力增大。
案例1.1和案例1.2描述了新兴企业或快速发展企业在IT基础设施建设方面存在的主要问题。针对这些问题,云计算技术能够为其提供有效的解决方法。云计算的优势就是快速、弹性,企业可以按需、实时、动态地配置IT资源。例如,企业在阿里云上租用若干台云服务器,只需要数分钟的手续办理时间。与此同时,所有租用的云资源可以按照小时收费,企业可以根据自己的业务周期灵活配置、部署IT资源,如在业务旺季则进行IT资源扩容,在业务淡季则释放部分资源以节省开支,用最经济的IT成本支撑业务的发展。
综上所述,从用户的角度来看,云计算兴起的动因是,一些中小型企业在进行IT基础设施建设时,面临着成本高、建设周期长、弹性不足等问题,而云计算技术将购买IT资源、建设IT基础设施变成了按需租用IT服务,大大减少了企业初期的投入成本、缩短了IT基础设施的建设周期、增强了IT资源规模的弹性,有效解决了中小型企业在IT基础设施建设方面面临的难题。
云计算技术不仅很好地解决了企业的业务难题,同时也顺应了计算机技术发展的趋势。计算模式的发展历程如图1-2所示,可以分为2个主要阶段:单机计算模式和分布式计算模式。
图1-2 计算模式的发展历程
(1)单机计算模式。
在计算机领域,最早是以巨型机(Mainframe)为核心的多终端计算模式,此时巨型机的价格非常昂贵,人们主要通过共享巨型机的CPU、内存、硬盘等资源实现多任务的计算。然后,个人计算机(Personal Computer,PC)出现,因为价格低廉,所以PC很快实现了普及。
(2)分布式计算模式。
网络技术的出现使分布式计算模式得到了发展,具体可以分为4个阶段:C/S模式、集群模式、网格计算模式和云计算模式。
● C/S模式。
基于单台服务器通过简单的C/S(客户端/服务器)协议为少数的用户提供计算和服务,主要是基于局域网实现的。C/S模式只能满足少量用户的需求,随着用户数量的增加,单台服务器无法响应大量的请求,服务器集群时代到来了。
● 集群模式。
计算机集群是将一组计算机软件或硬件集中起来,通过相互协作来完成计算任务的。随着计算机和网络技术的普及,越来越多的企业、单位希望拥有自己的信息化系统,这需要构建服务器集群,需要花费大量的人力、物力、财力去建设和维护IT基础设施。
随着服务器集群的发展,一些中小型企业可能只需要较小规模的服务器集群,为了减少他们在场地、购置服务器、配置网络等方面的压力,数据中心应运而生。数据中心就是在固定的场所提供大量的物理服务器和相应的网络服务,企业可以根据自身的业务需求在数据中心租用一定数量的物理服务器和网络服务,来构建自己的服务器集群。数据中心只提供场地、物理服务器、电和网络等基础服务,服务器集群的运维由企业自身全权负责。
● 网格计算模式。
学术界针对复杂科学计算需要大量计算资源的问题,以及数据中心资源利用率低下的问题,提出了网格计算(Grid)。网格计算是利用互联网把分散在不同地理位置的计算机组织成一个“虚拟的超级计算机”,其中每一台计算机就是一个“节点”,而网络计算是由成千上万个“节点”组成的“一张网格”。网格计算主要有两个优势:一是数据处理能力超强;二是能充分利用网上的闲置处理能力。因此,网格计算的核心思想是利用并行计算解决大型问题,同时提高计算资源的利用率 。
● 云计算模式。
数据中心的出现,虽然在一定程度上减轻了企业在服务器集群建设方面的压力,但在服务器集群的运维方面,企业依然面临着很大的压力。同时,在数据中心租用的是物理服务器,缺乏灵活性、不太适合中小企业用户。针对该问题,结合网格计算的思想,云计算出现了。与网格计算不同,云计算不是把分散在不同地理位置的计算机组织起来,而是把所有的计算资源在物理上进行集中,形成一个云数据中心,然后以服务的形式租给用户使用。用户可以根据自己的需求来配置计算资源并支付租金,而不用关心计算资源的管理和维护。
早在1961年,人工智能之父麦卡锡就提出了将计算能力作为像水和电一样的公有服务提供给用户使用,该理念可以认为是云计算思想的起源。不过,由于当时还处于PC时代,该思想没有得以真正实现。
20世纪80年代,网格计算被提出,其核心思想是利用并行计算解决大型问题,同时提高计算资源的利用率。
20世纪90年代末,出现了效用计算(Utility Computing),它是一种提供服务的模型,即在该模型里,服务提供商提供用户需要的计算资源和基础设施,并根据应用所占用的资源情况进行计费,而不是仅按照速率进行收费的。因此,效用计算的核心思想是将计算资源作为可计量的服务。
2001年,软件工程领域提出了一种新的软件开发范型——面向服务的软件开发(Service-Oriented Architecture,SOA)。面向服务的软件开发是为了实现开放网络环境中软件资源的共享和集成,将软件模块封装成服务,然后通过对服务的发现和组合实现对服务的重用,同时提高互联网环境下软件系统的开发效率。因此,面向服务的软件开发的核心思想是将软件模块作为服务,通过网络提供给开发人员使用。
2007年10月,Google、IBM联合了美国6所知名大学,帮助学生在大型分布式计算系统上进行开发,当时的IBM发言人表示,所谓的“大型分布式计算系统”就是云计算,从而明确地提出了云计算的概念。云计算是以网络技术、虚拟化技术、分布式计算技术为基础的,以按需分配资源的业务模式,具备动态扩展、资源共享、宽带接入等特点的新一代网络化商业计算模式。云计算的核心思想是将基础设施、平台、软件都作为可计量的服务提供给用户,用户可以按需租用服务并支付租金。云计算思想的演进过程如图1-3所示。
图1-3 云计算思想的演进过程
目前,国内外不同的公司、组织和研究机构都根据自己在云计算方面从事的研究和对云计算的理解给出了云计算的定义。
(1)亚马逊的云计算定义:通过互联网以按使用量定价方式付费的IT资源和应用程序的按需交付。
(2)IBM(国际商业机器公司)分别从用户和管理者的角度定义云计算:从用户的角度来看,云计算是一种新的用户体验和业务模式,即云计算作为一种新的计算模式,它是一个计算资源池,并将应用、数据及其他资源以服务的形式通过网络提供给用户;从管理者的角度来看,它可以是多个小的资源组装成大的资源池,也可以是大型资源虚拟化成多个小型资源,而最终目的都是提供服务。
(3)微软的云计算定义:云计算是通过标准和协议,以实用工具形式提供的计算功能。
(4)美国加州大学伯克利分校的云计算定义:云计算包括互联网上各种服务形式的应用,以及这些服务所依托数据中心的软硬件设施,这些服务长期以来一直被称为软件即服务(SaaS),而数据中心的软硬件设施就是所谓的“云” 。
(5)美国国家标准和技术研究院(National Institute of Standards and Technology,NIST)的云计算定义:云计算是一种资源利用模式,它能以方便、友好的方式通过网络按需访问可配置的计算资源池(如网络、服务器、存储、应用和服务等),这些计算资源能够被快速地获取或释放,而只需要投入很少的管理工作,或与云服务提供商进行很少的交互。
其中,NIST的云计算定义得到了比较广泛的认可和支持。
2015年,中国在发布的国家标准GB/T 32400—2015/ISO/IEC 17788:2014《信息技术 云计算 概览与词汇》中给出了云计算的定义:云计算是一种通过网络将可伸缩、弹性的共享物理和虚拟资源池以按需自服务的方式供应和管理的模式。其中,资源包括服务器、操作系统、网络、软件、应用和存储设备等。
同时,该文件中对云计算相关的术语也给出了定义。
◆ 云服务:通过云计算已定义的接口提供的一种或多种能力。
◆ 云服务客户:为使用云服务而处于一定业务关系中的参与方。
◆ 云服务用户:云服务客户中使用云服务的自然人或实体代表。
◆ 云服务提供者:提供云服务的参与方。
◆ 云服务合作者:支撑或协助云服务提供者活动,云服务客户活动,或者两者共同活动的参与方。
◆ 云服务代理:负责在云服务客户和云服务提供者之间协调的一类云服务合作者。
◆ 云服务客户数据:基于法律或其他方面的原因,由云服务客户所控制的一类数据对象。这些数据对象包括输入到云服务的数据,或云服务客户通过已发布的云服务接口执行云服务所产生的数据。
◆ 云服务衍生数据:由云服务客户和云服务交互所产生的由云服务提供者控制的一类数据对象。
◆ 云服务提供者数据:由云服务提供者控制,与云服务运营相关的一类数据对象。例如,资源的配置和使用信息、云服务特定的虚拟机信息、存储和网络配置信息、数据中心的整体配置和使用信息、物理和虚拟资源的故障率和运营成本等。
◆ 可复原性:经过指定的时间,云服务客户检索其云服务客户数据和应用构件,以及云服务提供者删除所有云服务客户数据及合同指定的云服务衍生数据的过程。
云计算的主要特点包括服务可度量、多租户、按需自服务、快速的弹性和可扩展性,以及资源池化。
(1)服务可度量。通过对云服务的可计量的交付实现对使用量的监控、控制、生成报告和计费。通过该特点,可优化并验证已交付的云服务,这个特点强调用户只需对使用的资源付费。从用户的角度看,云计算为用户带来了价值,将用户从低效率和低资产利用率的业务模式转变成高效率模式。
(2)多租户。通过对物理或虚拟资源的分配实现为众多租户服务,而且租户们的计算和数据彼此隔离和不可访问。该特点使云服务提供商的资源使用率得到了很大的提升。
(3)按需自服务。用户能够根据自身的需求及时地通过云服务提供商提供的用户接口,自动地或通过与云服务提供商的最少交互来灵活配置计算能力的特性。
(4)快速的弹性和可扩展性。物理或虚拟资源能够快速、弹性、自动化地供应,以达到快速增减资源的目的。对于用户来说,可供应的物理或虚拟资源无限多,可在任何时间购买任何数量的资源,购买量仅仅受服务协议的限制。这个特点意味着用户无须再为资源量和容量规划担心。对用户来说,如果需要增添新资源,新资源就能立刻自动地获得。资源本身是无限的,资源的供应只受服务协议的限制。与按需自服务特点的不同是,快速的弹性和可扩展性强调的是云服务提供商负责提供无限的资源,而按需自服务强调的是用户可以根据自身的需求灵活配置资源。
(5)资源池化。将云服务提供商的物理或虚拟资源集成起来,放入一个虚拟的资源池内统一管理(即池化),从而服务于一个或多个用户。
云计算的特性与运行模式,在实践部署过程中主要呈现出如下优势。
(1)减少开销。对于用户来说,采用云计算服务只需要对使用的资源付费,而无须购买硬件、软件和维护基础设施,从而避免了自建数据中心的大量资金投入,只需按需支付服务的租金,大大减少了开销。
(2)高灵活性。一方面,用户采用云计算服务不需要建设专门的信息系统,这可以有效缩短业务系统建设和部署周期;另一方面,用户可更专注于业务的功能和创新,实现业务响应速度和服务质量的提升。
(3)高可用性。云计算的资源池化和快速伸缩性特征,使得部署在云计算平台上的客户业务系统可动态扩展,满足业务需求资源的迅速扩充,能避免因需求突增而导致客户业务系统的异常或中断。此外,云计算的备份和多副本机制可提高业务系统的健壮性和可靠性,避免数据丢失和业务中断。
(4)易于维护。云服务提供商具有专业技术团队,能够及时更新或采用先进技术和设备,可以提供更优的技术、管理和人员,使用户能获得更加专业和先进的技术服务。
(5)降低能耗。对于云服务提供商来说,使用虚拟化、动态迁移和工作负载整合等技术提升运行资源的利用效率,通过关闭空闲资源组件等降低能耗;多租户共享机制、资源的集中共享可以满足多个用户不同时间段对资源的峰值要求,避免按峰值需求设计容量和性能造成的资源浪费。因此,资源利用率的提高,可以有效降低云计算服务的运营成本,减少能耗,实现绿色IT。
以上给出了云计算的总体优势,而在具体的应用部署中,由于服务模型和部署模式的不同,云计算还会呈现出不同的优势和不足,下面章节将对云计算的服务模型和部署模式进行详细介绍。