购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 初识云计算

“云计算”是近年来信息技术领域受关注最多的主题之一。实际上,云计算的理论和尝试已经有多年历史,从J2EE和.net架构,到“按需计算”(On-demand computing)、“效能计算”(Utility computing)、“软件即服务”(Software as a service)等新理念、新模式,其实都可看作是对云计算的不同解读或云计算发展的不同阶段。

“云计算”一词最早被大范围的传播应该是在2006年,距今已有十多年的历史了。2006年8月,在圣何塞举办的SES(捜索引擎战略)大会上,时任谷歌(Google)公司首席执行官(CEO)的施密特(Eric Schmidt)在回答一个有关互联网的问题时提出了“云计算”这个概念。在施密特态度鲜明地提出“云计算”一词的几周后,亚马逊(Amazon)公司推出了EC2计算云服务。云计算自此出现,从此之后各种有关“云计算”的概念层出不穷,“云计算”开始流行。

实际上,云计算本身无论是商业模式还是技术都已经发展了很长时间,并在实践的过程中逐步演进。云计算最初源于互联网公司对公司成本的控制。早期不少互联网公司都起源于学生宿舍,费用的捉襟见肘使这些公司尽可能合理利用每一个硬件,最大程度地发挥机器的性能。所以早期的互联网公司都会自己选主板、硬盘等配件,然后进行组装,完成服务器硬件的设计。这种传统沿袭下来,就是现在硬件定制化日趋流行的原因。如今谷歌、脸书(Facebook)等公司都会自己动手设计和生产服务器,以最少的配件最大可能地支持特定功能需求,并降低服务器的能耗。

为了支撑业务运转,满足用户需求,服务器的整体性能在不断上升,相应地,服务器的数量也在不断增加。这自然会引出一个问题,数十台机器可以手动组装维护,上千台机器如何处理?如果是上万台机器呢?人能管理的机器数量始终有限,即使劳作不休,所能承受的负荷也有一定的极限。每一个大型互联网公司,都曾遇到过如何管理和维护成千上万台服务器的问题。

谷歌公司在1998年时的访问量约为每天1万次,但到2007年时,日访问量已达到5亿多次,服务器数量也已经超过50万台。对于大多数互联网企业而言,虽然服务器规模不至于如此庞大,但随着用户规模的增加,少则数百台、多则上千台的服务器仍然对企业的运维管理能力提出了挑战。对于企业来说,随着系统越来越大,维护人员却不能对应成比例增长,因为企业要考虑人力成本,还要顾及运维效率的问题。即便如此,公司在某一阶段有大量的成本耗在旧有设备和系统的维护上,而无法把大部分资金投入到新业务的开拓中。公司能创造新价值的部分越来越少,创新也越来越少,只能求变。

除了大规模系统的维护之外,海量数据的存储问题同样是互联网公司遇到的棘手问题,随着网络技术和服务的快速发展,用户平均在线时间的延长和用户网络行为的多样化,导致各类数据不断涌现,移动终端的出现更是扩充了网络服务的内容与范围,这些都大大增加了互联网公司需要承载的数据量。大量的用户数据对每一个公司而言都是宝贵的信息财富,如何有效地利用这些信息财富开始成为互联网公司的首要任务。因此,在流量和服务器数量都高速增长的情况下,“一个能够与网页增长速度保持同步的系统”必不可少,这也是谷歌三篇有关分布式的论文(分别为 Google File System分布式存储系统、MapReducefen分布式处理技术和BigTable分布式数据库)之所以具有重要指导意义的原因:一切均出自实践。

业界有一种很流行的说法,将云计算模式比喻为发电厂集中供电的模式。也就是说,通过云计算,用户可以不必去购买新的服务器,更不用去部署软件,就可以得到应用环境或者应用本身。对于用户来说,软硬件产品也就不再需要部署在用户身边,这些产品也不再是专属于用户自己的产品,而是变成了一种可利用的、虚拟的资源,图1.1所示为几种模式。

图1.1 超市模式、电厂模式和云计算模式

1.1.1 云计算的定义

由于云计算是一个概念,而不是指某项具体的技术或标准,于是不同的人从不同的角度出发就会有不同的理解。业界关于云计算定义的争论也从未停止过,并不存在一个权威的定义。大家都像盲人摸象一样,给出各自对云计算的理解。

1.分析师和分析机构对云计算的理解

早期的美林证券(Merrill Lynch)认为,云计算是通过互联网从集中的服务器交付个人应用(E-mail、文档处理和演示文稿)和商业应用(销售管理、客户服务和财务管理)。这些服务器共享资源(如存储和处理能力),通过共享,资源能得到更有效的利用,而成本也可以降低80%~90%。

而《信息周刊》( Information Week )的定义则更加宽泛:云计算是一个环境,其中任何的IT资源都可以以服务的形式提供。

媒体对云计算也很感兴趣。美国最畅销的日报《华尔街日报》( The Wall street Journal )也在密切跟踪云计算的进展。它认为云计算使企业可以通过互联网从超大数据中心获得计算能力、存储空间、软件应用和数据。客户只需在必要时为其使用的资源付费,从而避免建立自己的数据中心并采购服务器和存储设备。

2.不同IT厂商对云计算的理解

IBM 公司认为,云计算是一种计算风格,其基础是用公共或私有网络实现服务、软件及处理能力的交付。云计算的重点是用户体验,核心是将计算服务的交付与底层技术相分离。云计算也是一种实现基础设施共享的方式,利用资源池将公共或私有网络连接在一起为用户提供IT服务。

Google公司的前CEO施密特认为,云计算把计算和数据分布在大量的分布式计算机上,这使计算力和存储获得了很强的可扩展能力,并使用户可通过多种接入方式(例如计算机、手机等)方便地接入网络获得应用和服务。其重要特征是开放式的,不会有一个企业能控制和垄断它。Google公司前全球副总裁李开复认为,整个互联网就是一片美丽的云彩,网民们需要在“云”中方便地连接任何设备、访问任何信息、自由地创建内容、与朋友分享。云计算就是要以公开的标准和服务为基础,以互联网为中心,提供安全、快速和便捷的数据存储和网络计算服务,让互联网这片“云”成为每一个网民的数据中心和计算中心。云计算其实就是Google公司的商业模式,Google公司也一直在不遗余力地推广这个概念。

相比于Google公司,微软公司对于云计算的态度就要矛盾许多。如果未来计算能力和软件全集中在云上,那么客户端就不需要很强的处理能力,Windows 也就失去了大部分的作用。因此,微软的提法一直是“云 + 端”。微软认为,未来的计算模式是云端计算,而不是单纯的云计算。这里的“端”是指客户端,也就是说云计算一定要有客户端来配合。微软公司前全球资深副总裁张亚勤博士认为:“从经济学角度来说,带宽、存储和计算不会是免费的,消费者需要找到符合他们需要的模式,因而端的计算一定是存在的。从通信的供求关系来说,虽然带宽增长了,但内容也在同步增长,例如视频、图像等,带宽的限制总是存在的。从技术角度来说,端的计算能力强,才能带给用户更多精彩的应用。”微软对于云计算本身的定义并没有什么不同,只不过是强调了“端”在云计算中的重要性。时至今日,随着Azure云的崛起,微软已经全面拥抱云计算了。

云计算在整个商业市场中的全局视角如图1.2所示。

图1.2 云计算的全局视角

3.学术界对云计算的理解

在学术界,“网格计算之父”伊安·福斯特(Ian Foster)认为,云计算是一种大规模分布式计算的模式,其推动力来自规模化所带来的经济性。在这种模式下,一些抽象的、虚拟化的、可动态扩展和被管理的计算能力、存储、平台和服务汇聚成资源池,通过互联网按需交付给外部用户。他认为云计算的几个关键点是:大规模可扩展性;可以被封装成一个抽象的实体,并提供不同的服务水平给外部用户使用;由规模化带来的经济性;服务可以被动态配置(通过虚拟化或者其他途径),按需交付。

来自加州大学伯克利分校的一篇技术报告指出,云计算既是指透过互联网交付的应用,也是指在数据中心中提供这些服务的硬件和系统软件。前半部分是SaaS(Software as a Service),而后半部分则被称为Cloud。简单地说,他们认为云计算就是“SaaS + 效用计算(Utility computing)”。如果这个基础架构可以按照按使用付费的方式提供给外部用户,那么这就是公共云,否则便是私有云。公共云即是效用计算。SaaS的提供者同时也是公共云的用户。

根据以上这些不同的定义,不难发现,大家对于云计算基本看法是一致的,只是在某些范围的划定上有所区别。来自维基百科(Wikipedia)的定义基本涵盖了各个方面的看法:“云计算是一种计算模式,在这种模式下,动态可扩展而且通常是虚拟化的资源通过互联网以服务的形式提供出来。终端用户不需要了解‘云’中基础设施的细节,不必具有相应的专业知识,也无须直接进行控制,而只需关注自己真正需要什么样的资源,以及如何通过网络来得到相应的服务。”

曾在IBM任职的朱近之在《智慧的云计算:物联网的平台》一书中给出一个相对宽泛的定义,以便能够更加全面地涵盖云计算。该定义如下:“云计算是一种计算模式:把 IT 资源、数据和应用作为服务通过网络提供给用户。”其实用“云”来定义是一种比喻手法。在计算机流程图中,互联网常以一个云状图案来表示,用来表示对复杂基础设施的一种抽象。云计算正是对复杂的计算基础设施的一个抽象,因此选择了用“云”来比喻,如图1.3所示。

图1.3 云计算是对复杂基础设施的抽象

云计算是以“软件即服务”为起步,进而将所有的 IT 资源都转化为服务来提供给用户。这种思路正是美国国家标准技术学院(NIST)给云计算提供的定义:“云计算是一种模型,这个模型可以方便地通过网络访问一个可配置的计算资源(例如网络、服务器、存储设备、应用程序以及服务等)的公共集。这些资源可以被快速提供并发布,同时最小化管理成本以及服务供应商的干预。”

上述定义应该算是比较清晰和恰当的,也是本书所采用的定义。不过,也许会有读者对该定义不能完全理解,这是因为正式的定义通常都比较抽象,为的是自身的陈述没有矛盾或问题,不会因人不同而产生争议。

接下来对上面的定义进行进一步的阐述,我们可以从计算发生的地方和资源供应的形式两个角度来看待云计算。

从计算发生的地方来看,最简单地回答是:云计算将软件的运行从平常情况下的个人计算机 (或桌面计算机)搬到了云端,也就是位于某个“神秘”地理位置上的服务器或服务器集群上。这些服务器或集群可以在本地,也可以在异地,甚至距离遥远。这似乎是客户机/服务器模式,不过,云计算并不是传统的客户机/服务器模式,而是在该模式上进行了巨大的提升。

从资源供应的形式来看,云计算是一种服务计算,即所有的IT资源,包括硬件、软件、架构都被当作一种服务来销售并收取费用。对于云计算来说,其提供的主要服务是三种:基础设施即服务(IaaS),提供硬件资源,类似于传统模式下的 CPU、存储器和 I/O;平台即服务(PaaS),提供软件运行的环境,类似于传统编程模式下的操作系统和编程框架;软件即服务(SaaS),提供应用软件功能,类似于传统模式下的应用软件。在云计算模式下,用户不再购买或者买断某种硬件、系统软件或应用软件而成为这些资源的拥有者,而是购买资源的使用时间,按照使用时长付费的计费模式进行消费。

由此可以看出,云计算将一切资源作为服务,按照所用即所付的方式进行消费正是主机时代的特征。在主机时代,所有用户通过显示终端和网线与主机连接,按照消费的CPU时间和存储容量进行计费。所不同的是,在主机模式下,计算发生在一台主机上;在云计算下,计算发生在服务器集群或者数据中心。

所以,云计算既是一种新的计算范式,又是一种新的商业模式。说它是新的计算范式,因为所有的计算都作为服务来组织;说它是新的商业模式,因为用户付费的方式与以往非常不同,按照“所用即所付”的方式缴纳费用,从而大幅降低资源使用者的运行成本。不难看出,云计算的这两个方面互为依托,缺一不可。因为将资源作为服务,才能支持随用随付的付费模式;因为要按照用多少付多少来计费,资源只能作为服务来提供(而无法作为打包的软件或硬件来兜售)。事实上,可以说云计算“是一种计算范式,但这里的计算边界不是由技术限制来决定,而是由经济因素所决定”。

概括来说,云计算是各种虚拟化、效用计算、服务计算、网格计算、自动计算等概念的混合演进并集大成之结果。它从主机计算开始、历经小型机计算、客户机/服务器计算、分布式计算、网格计算、效用计算进化而来,它既是技术上的突破(技术上的集大成),也是商业模式上的飞跃(用多少付多少,没有浪费)。对于用户来说,云计算屏蔽了 IT 的所有细节,用户无须对云端所提供服务的技术基础设施有任何了解或任何控制,甚至根本不用知道提供服务的系统配置和地理位置,只需要“打开开关”(接上网络),坐享其成即可。

由此可见,云计算描述的是一种新的补给、消费、交付IT服务的模式,该模式基于互联网协议,且不可避免地涉及动态可伸缩且常常是虚拟化了的资源的配置。从某种程度上说,云计算是人们追求对远程计算资源的易访问性的一个副产品。

云计算在技术和商业模式两个方面的巨大优势,确定了其将成为未来的IT产业主导技术与运营模式。

1.1.2 计算模式的演进过程

云计算并不是突然出现的,而是以往技术和计算模式发展和演变的一种结果,它也未必是计算模式的终极结果,而是适合目前商业需求和技术可行性的一种模式。下面通过分析计算机的发展历程,介绍云计算的出现过程。图1.4从计算模式的角度展现了云计算的发展。

图1.4 从计算模式的角度看云计算的发展历史

云计算是多种计算技术和范式的集大成,因此,其与现有的很多计算范式都存在类似之处。例如,应用程序运行在云端,客户通过移动终端或客户机访问云端服务的方式类似客户机/服务器模式;云资源的自动伸缩又与自动计算有些相似;云计算将资源集聚起来给客户使用,与曾经红极一时的网格计算有些相似;云计算中的大量计算节点同时开动,似乎又和并行计算有几分相像;构成云的节点遍布多个位置又有分布式计算的感觉;而按照用量进行计费的云计费模式又与效用计算有些相似。

虽然云计算与我们所熟知的各种计算范式确实存在某种类似,但并不完全一样。事实上,云计算与某些计算范式之间存在着非常巨大的不同。

1.主机系统与集中计算

其实早在几十年前,在计算机刚刚发明不久,那时的计算模式就有了云计算的影子。1964 年,世界上第一台大型主机System/360诞生,引发了计算机和商业领域里的一场革命。

主机面向的市场主要是企业用户,这些用户一般都会有多种业务系统需要使用主机资源,于是IBM 公司发明了虚拟化技术,将一台物理服务器分成许多不同的分区,每个分区上运行一个操作系统或者一套业务系统。这样每个企业只需要部署一套主机系统就可以满足所有业务系统的需要。由于该系统已经经历了几十年的发展,因此其稳定性也是业界最高的,具有“永不停机”的美誉。IBM大型主机在金融、通信、能源和交通等支柱产业承担着最为广泛和最为重要的信息和数据处理任务。云计算出现之前,全球 70%以上的企业数据运行在大型主机平台上,世界财富排行榜位居前列的企业绝大部分都在使用大型主机。

大型主机的一个特点就是资源集中,计算、存储集中,这是集中计算模式的典型代表。使用大型主机的企业不需要像如今的互联网企业一样单独维护成百上千台服务器,而是把企业的各种业务集中部署,统一管理。主机的用户大都采用终端的模式与主机连接,本地不进行数据的处理和存储,也不需要进行诸如补丁管理、防火墙保护和病毒防范等措施。其实主机系统就是最早的“云”,只不过这些云是面向专门业务、专用网络和特定领域的。

云计算与主机计算实际上存在许多的共同点,例如都是集中式管理和按用量计费。不过云计算与主机计算的区别也很大,其中一个重要的区别是其面向的用户群体不同。主机计算的用户通常是大型机构,并为关键应用所准备,如人口普查、消费统计、ERP、财务交易等;而云计算则面向普罗大众,可以运行各种各样的大、中、小型应用程序。

2.效用计算

效用计算是随着主机的发展而出现的。考虑到主机的购买成本高昂,一些用户只能租用,而不是购买。于是有人提出了效用计算的概念,目标是把服务器及存储系统打包给用户使用,按照用户实际使用的资源量对用户进行计费。这种模式类似于水、电、气和电话等服务的提供方式,使用户能够像把灯泡插入灯头一样来使用计算机资源。这种模式使用户无须为使用服务去拥有资源的所有权,而是去租资源。效用计算是云计算的前身。

效用计算的实际运用以IBM公司为主要代表。IBM公司将自己的主机资源按照时间租给不同的用户,主机仍然存放在IBM的数据中心,用户在远程或者IBM数据中心现场使用IBM的资源。效用计算中的关键技术就是资源使用计量,它保证了按使用付费的准确性。

从计费模式上看,云计算与效用计算如出一辙。效用计算将IT资源包装成可以度量的服务提供给用户使用,也就是将CPU、内存、网络带宽、存储容量都看作传统的效用量(如电话网络)来进行包装。此种计算范式的最大优势是用户无须提前付费,也无须将IT资源买断。对于大部分的公司企业来说,没有足够的资金和技术来构造一个与世界500强公司一样的IT基础设施,它们非常欢迎效用计算的理念,因为效用计算让小微用户与世界500强公司一样,能访问和使用世界一流的信息技术和资源。

与云计算比较起来,效用计算仅规定了IT资产的计费模式,对IT资产的其他方面,如技术、管理、配置、安全等诸多方面并不做限定。而付费模式仅仅是云计算所考虑的一个因素,云计算要考虑的因素还包括许多。此外,由于云的规模庞大,云计算并没有实现不折不扣的效用计算。也就是说,云计算所实现的效用计算是打了折扣的效用计算。

3.客户机/服务器模式

从服务的访问模式上看,云计算确实有客户机/服务器模式(Client/Server)的影子:客户通过某种设备与远处的云端联系在一起,使用运行在云端的应用软件所提供的服务。不过,在这种形似的背后,云计算提供的这个“远程服务器”具有无限的计算能力、无限的存储容量,且从来不会崩溃,几乎没有什么软件不能运行在其上。用户还可以发布自己的应用程序到这个“远程服务器”,而这个“远程服务器”可以为应用程序自动配置所需的资源,并随需变化。此外,云计算有自己的一套模式和规则(本书后面将会阐述),而客户机,服务器模型则泛指所有的能够区分某种服务提供者(服务器)和服务请求者(客户机)的分布式系统。

4.集群计算

由于云计算的云体里面包含大量的服务器群,与集群计算很相似。不过,服务器集群计算是用紧密耦合的一组计算机来达到单个目的,而云计算是根据用户需要提供不同支持来达到不同的目的。此外,服务器集群计算是有限度的分布式计算,其面临的挑战不如云计算所面临的分布式计算复杂。另外,集群计算并不考虑交互式的终端用户,而云计算恰恰需要考虑。显然,云计算包含了服务器集群计算的元素。

5.服务计算

云上的云服务这一说法自然让人联想到服务计算。服务计算也称为面向服务的计算,其更为准确的名称是软件即服务(SaaS)。此种计算范式将所有的应用程序都作为服务来予以提供,用户或其他的应用程序则使用这些服务,而不是买断或拥有软件。在服务计算模式下,不同服务之间相对独立,松散耦合,随意组合。对服务计算来说,服务的发现是重点。

云计算大量采用了服务计算的技术和思维方式。但服务计算与云计算仍然存在重要区别。首先,虽然服务计算一般在互联网上实现,但服务计算不一定必须在云中提供,单台服务器、小规模服务器集群、有限范围的网络平台就可以提供服务计算;其次,服务计算一般仅限于软件即服务,而云计算将服务的概念推广到了硬件和运行环境,囊括了基础设施即服务、平台即服务的概念。也就是说,云计算的服务理念比传统的服务计算概念更加广泛。

6.个人计算机与桌面计算

20世纪80年代,随着计算机技术的发展,计算机硬件的体积和成本都大幅度降低,使个人拥有自己的计算机成为可能。个人计算机的出现极大地推动了软件产业的发展,各种面向终端消费者的应用程序涌现出来。应用程序在个人计算机上运行需要简单易用的操作系统,Windows 操作系统正好满足了大众的需要,它伴随着个人计算机的普及占领了市场,走向了成功。个人计算机具备自己独立的存储空间和处理能力,虽然性能有限,但是对于个人用户来说,在一段时间内也够用了。个人计算机可以完成绝大部分的个人计算需求,这种模式也叫桌面计算。

在互联网出现之前,软件和操作系统的销售模式都是授权(License)模式,也就是通过软盘或者光盘,将软件代码复制到计算机之上,而每一次复制,都需要向软件开发商付费。这种模式发展了几年以后就出现了一些问题,例如费用太高、软件升级烦琐等。升级的目的是解决之前的一些问题,或是使用新的功能,但是升级的过程有时会很烦琐。对于一个大型企业来讲,它的IT部门可能需要管理上百种软件、上千个版本、上万台计算机,每个版本的软件都需要维护,包括问题追踪、补丁管理、版本升级和数据备份等,这绝非一项简单的工作。

7.分布式计算

个人计算机没有解决数据共享和信息交换的问题,于是出现了网络——局域网及后来的互联网。网络把大量分布在不同地理位置的计算机连接在一起,有个人计算机,也有服务器(大型主机以及后来出现的中小型主机)。既然有了这么多计算能力,那么一个应用能不能运行在多台计算机之上,共同完成一个计算任务呢?答案当然是肯定的,这就是分布式计算。

分布式计算依赖于分布式系统。分布式系统由通过网络连接的多台计算机组成。每台计算机都拥有独立的处理器及内存。这些计算机互相协作,共同完成一个目标或者计算任务。分布式计算是一个很大的范畴,它包含了很多人们熟悉的计算模式和技术,例如网格计算、P2P 计算、客户机/服务器计算(C/S)和浏览器/服务器计算(B/S),当然也包括云计算。在当今的网络时代,非分布式计算的应用已经很少了,只有部分单机运行的程序属于这一范畴,例如文字处理、单机游戏等。本书第2章将详细叙述分布式计算的内容。

8.网格计算

计算机的一个主要功能就是复杂科学计算,而这一领域的主宰就是超级计算机,例如我国的“银河”系列、“曙光”系列、“天河”系列、“神威·太湖之光”等,还有战胜国际象棋冠军卡斯帕罗夫(Garry Kasparov)的IBM超级计算机“深蓝”。以超级计算机为中心的计算模式存在明显不足:它虽然是一个处理能力强大的“巨无霸”,但它造价极高,通常只有一些国家级的部门(如航天、气象和军工等部门)才有能力配置这样的设备。随着人们越来越需要数据处理能力更强大的计算机,人们开始寻找一种造价低廉而数据处理能力超强的计算模式,最终科学家们找到了答案,那就是网格计算。

网格计算出现于 20 世纪 90 年代。它是伴随着互联网而迅速发展起来的、专门针对复杂科学计算的新型计算模式。这种计算模式利用互联网把分散在不同地理位置的计算机组织成一台“虚拟的超级计算机”,其中每一台参与计算的计算机就是一个“节点”,而整个计算是由成千上万个“节点”组成的“一堆网格”,所以这种计算方式叫网格计算。为了进行一项计算,网格计算首先把要计算的数据分割成若干“小片”,然后将这些小片分发给分布的每台计算机。每台计算机执行它所分配到的任务片段,待任务计算结束后将计算结果返回给计算任务的总控节点。

可以说,网格计算是超级计算机和集群计算机的延伸。其核心还是试图去解决一个巨大的单一的计算问题,这就限制了它的应用场景。事实上,在非科研领域,只有有限的用户需要用到巨型的计算资源。网格计算在进入21世纪之后一度变得很热门,各大IT企业也都进行了许多投入和尝试,但是却一直没有找到合适的使用场景。最终,网格计算在学术领域取得了很多进展,包括一些标准和软件平台被开发出来,但是在商业领域却没有普及。

从某种程度来看,网格要做的很多事情也是云计算要做的事情,但网格计算却不能算是云计算。首先,网格计算主要针对科学计算和仿真,而云计算则是通用的。其次,网格不考虑交互式终端用户,而云计算要考虑。本书在第2章中将会进一步详细地介绍网格计算。

9.SaaS

SaaS全称为Software as a service,中文译为“软件即服务”。其实它所表达的也是一种计算模式,就是把软件作为服务。它是一种通过Internet来提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己的实际需求,通过互联网向厂商订购所需的软件应用服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改为向提供商租用基于Web的软件,来管理企业经营活动,且无须对软件进行维护,服务提供商会全权管理和维护软件。软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其订购的软件和服务。

SaaS最初出现于2000年。当时,随着互联网的蓬勃发展,各种基于互联网的新的商业模式不断涌现。对于传统的软件企业来说,SaaS 是最重大的一个转变。这种模式把一次性的软件购买收入变成了持续的服务收入,软件提供商不再计算卖了多少份拷贝,而是需要时刻注意有多少付费用户。因此,软件提供商会密切关注自身的服务质量,并对自己的服务功能进行不断地改进,提升自身竞争力。这种模式可以减少盗版并保护知识产权,因为所有的代码都在服务提供商处,用户无法获取,也无法进行软件破解、反编译。

概括来说,除了效用计算外,上面所谈的计算范式都是技术层面的,而云计算范式同时涵盖了技术和商业两个层面,而这也许是云计算和上述这些范式的最大不同之处。

10.云计算的出现

纵观计算模式的演变历史,可以总结为:集中─分散─集中。在早期,受限于技术条件与成本因素,只能有少数的企业能够拥有计算能力,当时的计算模式显然只能以集中为主。后来,随着计算机小型化与低成本化,计算也走向分散。到如今,计算又有走向集中的趋势,这就是云计算。

用户可以使用云计算来做很多事情。从前面的陈述可知,云计算提供的基本服务有三种:一是硬件资源服务;二是运行环境服务;三是应用软件服务。那么用户也可用至少三种方式来使用云平台:一是利用云计算(平台)来保存数据(使用云环境所提供的硬件资源);二是在云计算平台上运行程序(使用云环境的运行环境);三是使用云平台上面的应用服务(使用云上布置的应用软件服务,如地图、搜索、邮件等)。

云计算所提供的服务不仅仅是IT资源本身,如果仅此而已,大可不必发展云计算。存储数据、运行程序、使用软件可以在很多平台上实现,并不需要云计算。之所以使用云计算,归因于其提供资源的方式和能力。云计算在资源提供方式和能力上具有极大的优势。

除了前面已经讲到的云平台的规模优势外,云计算的另外一个重要优势是弹性资源配给。云上面的资源都具有所谓的弹性,即需要多的时候就多,需要少的时候就少。例如,如果我们在云上布置一个应用软件,云体控制器(将在本书后续章节阐述)将根据该软件的客户需求变化来动态调整分配给该应用程序的资源,从而保证既能够满足任何时候任何客户的需求暴增,同时又避免在客户需求低迷时的资源浪费。

此外,云平台还提供另外一个可能多数人不知道的优势。有的操作只有放在云端才能发生强大作用,而直接部署在业务所在地或用户的客户机上则作用有限或不会发生什么作用。这是因为在技术上,桌面机或服务器运转模式已不能胜任IT系统所面临的许多挑战,而这些挑战能够在云端得到解决。例如,在病毒查杀方面,桌面机上的反病毒软件的查杀效果乏善可陈,杀毒效率最高只能达到49%~88%(根据美国Arbor Network数据)。此外,查杀还占用了个人机的大量计算资源,导致整个系统效率极为低下。但将杀毒操作移动到云端即可解决这个问题。注意,这里提到的将杀毒操作移动到云端与一些杀毒软件公司所宣扬的云杀毒有很大不同。市面上的云杀毒技术指的是杀毒软件部署在云端,通过网络对远程的客户机进行查杀。这种“云杀毒”的唯一好处是杀毒软件的更新和维护更加容易,但杀毒能力并无提升。而如果在云端部署多种不同的杀毒软件,在云端对网络数据进行交叉捜杀,则可以将杀毒效率提高到96%以上,并且也不会占用客户机的计算资源。

又如,在市场上,个人机、服务器或集群的操作模式面临更新与维护困难。仅将一个服务器的功能角色进行变换(更换系统及应用软件)就需要花费很多的精力,且还很容易出错。而对分布在机构各台计算机上的应用软件进行安装、配置、升级等各种管理操作是令许多公司头疼的问题。将这些服务移到云里面则可以解决这些问题。

再例如,在数据取证方面,有些无法对单机进行取证的操作可以在云端实现。

总体来看,云计算至少有以下四个优势:

按需供应的无限计算资源;

无须事先花钱就能使用的IT架构;

基于短期的按需付费的资源使用;

单机难以提供的事务处理环境。

虽然各种冠以“云计算”头衔的服务概念层出不穷,但并非每一种服务都可以划归于云计算服务的范畴。如何判断一项服务是否是真正的云计算服务?通常来说应该看是否同时满足以下三个条件。

① 服务应该是随时随地可接入。用户可以在任何时间、任何地点,通过任何可以连接网络的设备来使用服务,而无须考虑应用程序的安装问题,也无须关心这些服务的实现细节。

② 服务应永远在线。偶发问题可能出现,但一个真正的云计算服务应时刻保证其可用性和可靠性,即保证随时可通过网络的接入,并正常提供服务。

③ 服务拥有足够大的用户群。这就是所谓的“多租赁”,由一个基础平台向多个用户提供服务的“租赁”。虽然没有明确的数量来进行划分,但只是针对少数用户的服务,即使用云计算相关的技术来支撑其基础系统架构,也不应该归为云计算服务。因为只有庞大的用户群,才会产生海量数据访问压力,这是云计算出现的最根本原因,也是云计算服务区别其他互联网服务的标志之一。

1.1.3 云计算简史

20世纪60年代,“人工智能之父”约翰·麦卡锡(John McCarty)曾经说过:“计算资源可能在未来成为一种公用设施”。这应该是最早发表过的与云计算相关的表述。1966 年,道格拉斯·帕克希尔(Douglas Parkhill)出版了《计算机效用的挑战》一书。该书几乎对现代云计算的所有特点(弹性、按用量计费、在线、无限)都进行了深入的讨论,并充分比较了电力工业和公有、私有、政府和社区形式。可以说,该书已经描述了云计算,只不过没有用“云计算”这个名词。不过,此书并没有产生什么影响。

“云”这个词源自电信产业。一直以来,电信公司提供的服务都是专用的、点对点的数据通路。但从 20 世纪 90 年代开始,美国的电信公司开始给人们提供所谓的虚拟私有网络(Virtual Private Network)服务,这种服务的质量和点到点服务类似,但成本更低。通过对流量进行切换以达到更好的利用率,电信公司对网络的整体带宽的使用效率得到了提高。“云”被用来描述用户责任和供应商责任的分界点。而云计算则将这个边界扩展到覆盖服务器和网络基础设施的位置。

1999年美国易安信公司(EMC)提出了数据拨号音的设想。在公司的工程师大会上,时任工程部门副总裁的摩西(Moshe)在会上提出了一种新的数据伺服模式——全球数据拨号音。这种设想将所有的电子数据集中存放在中央管理的数据中心(当然这些数据中心的存储器是易安信公司的存储器),用户手里只有一个输入输出设备,它只能显示结果和输入命令。用户只需要将这个设备连接到墙上的插口,即可听到一个像电话似的拨号音。如果认证通过,即可获得源源不断的数据。至于这些数据存在何处则不是用户需要关心的事情。这种模式很显然就是今天大家所津津乐道的云存储概念。不过,此概念并未引起EMC高层的重视甚至注意,提出此概念的摩西也在后来的人员变动中离开了EMC。

在云计算的发展历史上,一个极为重要的角色是网上书店亚马逊公司。互联网泡沫破裂后,很多数据中心因效率低、成本高、风险大而被迫倒闭,其中就有一家名为Exodus Communications的公司。亚马逊公司对该公司的数据中心进行了现代化改造,主要目的是提高数据中心的利用率。当时,亚马逊公司的数据中心利用率仅为10%左右,从而导致成本的居高不下,经营处于岌岌可危的状态。经过研究,亚马逊公司发现,采用新的统一的云架构可以带来可观的效率提升。于是,亚马逊公司在 2005 年在其内部首先实施了亚马逊 Web 服务(AWS)效用计算模式。之后,亚马逊公司决定将自己的云计算提供给外部的客户,并在 2006 年开始将 AWS 作为效用计算向外部客户提供。图 1.5所示为云计算发展历史中的重大事件。

图1.5 云计算的发展简史

1.1.4 云计算的推动力

云计算并不是凭空出现的,它的出现是由多种因素促成,具有一定的必然性。

1.网络带宽的提升

必要的带宽是云计算普及的一个必要条件。既然把计算和存储都放在了网络的另一侧,那就必然需要用户能够方便地访问到这些数据。近些年,随着互联网的普及,各大网络运营商也在不断投资改善互联网基础设施。一方面,核心网络的带宽迅速扩大;另一方面,家庭和企业用户的网络接入也有了本质的改变。以家庭用户为例,从最开始的拨号上网(网速在50kbit/s左右),到后来的ADSL(512k、1M、2Mbit/s),以及目前的光纤入户(10M、20Mbit/s 乃至更高速度),带宽的增长改变了用户使用网络的模式以及网络应用的类型。随着4G/5G技术的发展,网络带宽将进一步增长,直至用户感知不到带宽的限制。

2.技术成熟度

云计算与效用计算存在很多相似,但是效用计算并没有真正普及,其原因就是缺乏足够的可操作性。任何理念,如果没有切实可行的实现办法就将成为一个空想甚至幻想。而云计算能获得大众认可,也是与其技术成熟度紧密相关的。云计算对应的不是一种技术,而是多种技术的组合,这些技术把IT作为服务这个非常简单的理念变成了现实。在不同的层面,可能会用到不同的技术。

这些技术隐藏在后台,对于用户来说是看不见的,这也是云中隐藏的部分。我们可以想象提供云计算服务的数据中心是一个巨大的工厂,里面摆满了成百上千的服务器,并且用错综复杂的线缆连接了起来。这些服务器上面运行了很多智能化的程序,它们能够高效地管理这些服务器,保证服务器出故障时系统能够自动修复,还能够保证整个中心以很低的成本运行着。

3.移动互联网的发展

据统计分析,网络终端从2006年的5亿个增长到目前的上千亿个,全世界平均每个人都拥有上百个网络终端,如何管理这些设备就成为一个大问题。一是这些设备不可能都拥有很强的计算能力;二是不可能把数据都分散在每个设备上,于是云计算的模式便成为解决这个问题的一个理想办法。例如,现在每家都有数据存储设备,如台式机、笔记本电脑、手机、数码相机、电子相框和能存照片的电视机等,可能有几十个设备,管理家庭的电子数据可能就成为一个难题。人们可能需要不停地在不同的设备之间同步数据,还要考虑定期用光盘备份,避免硬盘损坏。如果未来所有的设备都可以连入互联网,并且实时与互联网保持同步,那么一种基于云计算的家庭照片管理应用可能就会变得十分有用。

4.数据中心的演变

数据中心对于用户来说就是位于互联网的另一端提供计算和存储能力的工厂,是IT业的“发电厂”。数据中心对于普通的互联网用户来讲是陌生的,就像大家用电并不关心电厂是如何运作的一样。实际上数据中心也在不断地进行着演变。数据中心可以分为两种:一种是面向互联网提供服务的;另一种是企业私有的,只对内部开放的。无论是哪一种,数据中心都需要有人来运营,确保它能够不间断地提供服务。根据一项调查,在全球1 000个组织中,超过90%的组织认为他们需要在近年对其数据中心进行大的改变。对于他们来说,目前的挑战包括:昂贵的管理成本、快速增加的能源消耗、快速增长的用户需求以及低效率的IT资源使用等。鉴于这些问题,数据中心急需一种全新的架构和管理理念,而云计算正是从服务提供者的角度给出的一个解决办法。

5.经济因素

当一项产品技术上可行又具有广阔的需求时,决定其成败的唯一因素就是价格,或者说是用户使用成本。而改变计算模式最根本的因素也是成本,技术是其触发条件。在大型主机的年代之所以采用集中计算,主要是因为主机成本太高,而个人计算机(PC)的出现极大地降低了用户使用成本,使每个企业都能够承受得起自己的数据中心。到了今天,互联网和云计算的出现使进一步降低成本成为可能。如果成本能够降低,企业当然会考虑采用新技术。

云计算节约成本的诀窍在哪里?其实就是规模化效应。例如发电,每家每户都用自己的发电机发电显然总成本要高过通过发电厂集中供电;再例如交通,运送同样数量的人显然用大巴比用小轿车更经济。通过规模化,云计算不仅可以降低固定资产投入,还可以降低运行费用。当资源被集中后,资源的分时共享或者分区共享可以使得同样的资源发挥更大的作用,再加上智能化的资源调配,就能实现资源的最大化利用。有分析师指出,云计算能使成本节省90%甚至更多。

6.大数据

大数据是驱动云计算的另外一个主要推动力。由于处理海量的数据需要海量的存储容量和海量的计算能力,一般的IT架构已经难以胜任,由此催生了标准设备集群,进而演变为云计算的平台。事实上,商业上著名的两个云计算平台——亚马逊公司的AWS和谷歌公司的App Engine都是因处理大数据而催生的。

此外,推动云计算发展的其他一些驱动力还包括如下几种。

提高资源利用率,节能降耗:云计算(严格来说是虚拟化)可以将服务器利用率从15%提高到60%甚至更高,从而降低单位计算任务的能耗。

降低信息系统的维护成本:维护都在一个地点,由专门人员完成。

提升 IT 资产的安全态势:安全问题全部集中在一处解决,比分散在无数用户的业务所在地容易得多。

提升信息系统的灾备能力:云计算供应商可以为灾备进行集中投资和管理。

总而言之,推动云计算出现和发展的动力就是节省、灵活、方便、弹性、无限、按用量计费。 IG8yTaGT2a26jNtp0C79cWcr5mANtiS+WaAshq6quUl+vc67njp+jzFUS0p+WOoH

点击中间区域
呼出菜单
上一章
目录
下一章
×