1.1 云计算概述
1.1.1 云计算概念
本节着重从专家、研究机构和企业等不同的研究视角探讨云计算的定义及云计算的典型特征[1]。
维基百科[2-3]对云计算的定义:云计算是一种通过Internet提供动态、易扩展、虚拟化计算资源的计算方式,用户不需要了解云中基础设施的细节,不必具有相应的专业知识,也无须进行直接控制。
从根本上说,云计算是以虚拟化机制为核心,以规模经济为驱动,以Internet为载体,以由大规模的计算、存储和数据资源组成的信息资源池为支撑,按照用户需求动态地提供虚拟化、可伸缩信息服务的,包括公共云(Public Cloud)和私有云(Private Cloud)两种类型。云计算模型如图1.1所示。
在云计算中,不同种类的信息服务按照用户的需求规模和要求动态地构建、运营和维护,用户按实际使用的资源支付费用。影响云计算的因素主要包括以下3个[4-5]。
(l)技术因素。它是云计算的技术使能支撑,包括虚拟化机制、网络服务技术、分布式并行编程模式、全球化分布式海量存储系统、网络服务,以及面向服务的体系架构、计费管理等。
图1.1 云计算模型[1]
(2)经济因素。它是云计算商业化使能的支撑,如合理的商业模式及清晰的产业结构等。
(3)政策因素。它是保证云计算服务质量和合法性的社会使能支撑,如政府的支持政策,以及各种健全的监管制度。
一个云计算系统一般具备以下典型特征[6]。
(1)超大规模。云计算产生规模经济效益的原因在于资源具有相当大的规模,如Google、Amazon、IBM、Microsoft、Yahoo等的云数据中心(Cloud Data Center)均拥有百万计的服务器集群。
(2)虚拟化。虚拟化是云计算中的主要支撑技术之一,云计算利用虚拟化技术将传统的计算、网络和存储资源转化为可以提供弹性伸缩服务的资源池。
(3)高可靠性。云计算系统使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算系统可以实现7×24小时不间断运行和提供服务。
(4)通用性。云计算系统,特别是公共云计算系统不局限于特定的应用,在同一云计算平台的支持下可以运行千变万化的应用。
(5)高可扩展性。云计算系统规模可以动态伸缩,以满足应用和用户规模增长的需要。
(6)按需服务。云计算系统提供的资源池可以按需使用和计费。
(7)极其廉价。云计算系统的高效容错措施使得其可以采用廉价的计算设备作为数据节点:云计算自动化集中式管理使大量企业无须负担日益增加的数据中心(Data Center)管理成本;云计算的通用性也使资源的利用率较之传统系统有大幅提升,用户可以免费或低价获取高品质服务。
1.1.2 云计算发展历程
本节着重讨论近年来云计算的发展历程,并从计算模式演进、云计算发展历史大事记和云计算设施建设过程三个方面对云计算的发展历程进行描述[1]。
1. 计算模式演进
云计算是在并行计算(Parallel Computing)、分布式计算、网格计算(Grid Computing)和效用计算(Utility Computing)的基础上发展起来的,经过持续演化和融合改进,逐步形成了目前流行的云计算模型。云计算的计算模式演化过程如下[7-9]。
1)并行计算
在单核多线程的系统设计中,采用的算法均基于串行计算模式,即将任务分解成一串相互独立的命令执行流,每个命令执行流都有自己的序号,串行计算要求所有的命令执行流都按照顺序逐一执行,也就是说,同一时间只有一个命令执行流在执行。
串行计算效率低下,无法满足大数据(Big Data)的分析和处理需求,而并行计算可以通过同时调用许多计算资源处理复杂的计算任务。这些计算资源可以是拥有多核CPU或多个CPU的高性能服务器,也可以是多台服务器组成的集群系统。
在并行计算中,任务可以分解成相互独立并可以同时运行的部分,每一部分再分解成相互独立的命令执行流。任务分解后,每部分的每个命令执行流都可以同时执行。并行计算模型如图1.2所示。
图1.2 并行计算模型[1]
并行计算包括空间并行、基于流水线(Pipeline)技术的时间并行,以及基于优化算法的数据并行和任务并行等。不管何种并行计算方法,都是对串行计算的单指令流单数据流(Single Instruction Single Data,SISD)的优化。采用多指令流多数据流(Multiple Instruction Stream Multiple Data Stream,MIMD)的并行计算可大幅度提升系统处理能力。
2)分布式计算
并行计算调动的计算资源既可以是单个CPU的多个内核或单个服务器内的多个CPU,也可以是服务器集群提供的多个CPU。如果仅从这个角度来看,分布式计算和并行计算有相似之处。
MapReduce等分布式计算模型在处理数目庞大的计算请求时,会先将需要解决的问题分解成细小的组成部分,然后将这些组成部分散给众多的计算机进行处理,处理完成后将结果进行汇总,形成最终结果,如图1.3所示。分布式计算可以汇集成千上万台计算机,甚至几百万、几千万的计算资源。
图1.3 分布式计算模型[1]
分布式计算的典型代表是对等(Peer-to-Peer,P2P)计算。P2P计算使得Internet用户可以提供其个人计算机上有限的处理能力和存储资源,通过资源共享和计算能力的平衡来提供分布计算服务。目前众多机构都发起了不同的P2P计算项目,以解决密码分析、生物科学、数据处理等大规模复杂的计算问题,如利用全球联网的计算机共同搜寻地外文明的SETI@Home项目,以及为大型强子计算机提供计算能力的LHC@Home项目等。有兴趣的读者也可以通过伯克利开放式网络计算平台(Berkeley Open Infrastructure for Network Computing,BOINC)搜寻自己感兴趣的项目。
3)网格计算
根据Larry Smarr的描述,网格计算系统是一种无缝、集成的计算和协作环境。按照网格计算系统提供的功能,可分为两类:计算网格(Computational Grid)和存储网格(Storage Grid)。计算网格可以提供虚拟、无限制的计算和分布数据资源,存储网格则提供一个合作环境。
网格计算系统一般具有如下特点。
(1)异构性。网格计算系统可以包含多种异构资源,包含跨越地理分布的多个管理域。构成网格计算系统的超级计算机有多种类型,不同类型的超级计算机在体系结构、操作系统及应用软件等多个层次上可能具有不同的结构。
(2)可扩展性。网格计算系统可以从最初包含少数的资源发展到具有成千上万资源的大网络。
(3)可适应性。网格计算系统中具有很多资源,资源发生故障的概率很高,往往通过资源管理或应用的资源和服务来取得最大的性能。
(4)不可预测性。在网格计算系统中,资源的共享会造成系统行为和系统性能经常变化。
(5)多级管理域。由于构成网格计算系统的超级计算机资源通常属于不同的机构或组织,并且使用不同的安全机制,因此需要各个机构或组织共同参与解决多级管理域的问题。
相比于分布式计算,网格计算不仅仅是一种计算模式,更是一种广泛整合各种异构计算资源方式的方案和思想。通用的网格计算系统架构如图1.4所示。
图1.4 通用的网格计算系统架构[1]
网格计算系统主要包括以下部件。
(1)网格基础设施。网格基础设施包含网上可访问的所有资源。例如,运行Windows、Linux或UNIX的计算机或工作站,运行Cluster的机群、存储设备、数据库。网格基础设施也可能是科学仪器。
(2)网格中间件(Grid Middleware)。网格中间件提供核心服务,如远程进程管理服务、资源分配服务、存储访问服务、信息服务、安全控制服务、质量服务。
(3)网格发展环境和工具。网格计算系统必须提供网格应用开发工具。
(4)网格应用和网格门户。可以使用PVM、MPI等工具开发参数模拟等应用,这些应用通常需要大量的计算资源及远程数据访问。网格门户提供基于Web的应用服务,用户通过网络界面提交任务并得到结果。
4)效用计算
为了解决传统计算机资源、网络及应用程序的使用方法越来越复杂,以及管理成本越来越高的问题,科学家们提出了效用(Utility)计算。效用计算是一种结合分散在各地的服务器、存储系统及应用程序来立即提供需求数据的技术,以使用户能够像把电器插头插入插座取电一样来使用计算机资源。效用是指为客户提供个性化的服务,并且可以满足不断变化的客户需求,以及基于实际占用的资源进行收费。
按需分配的效用计算模型采用了多种灵活有效的技术,能够为不同的需求提供相应的配置与执行方案。效用计算使用户可以通过网络来连接资源并实现企业数据的处理、存储和应用,而企业不必再组建自己的数据中心。
效用计算模型中包括计算、存储、基础设施等众多资源,它的收费方式相比于其他计算模型发生了改变,不仅对速率进行收费,对租用的服务也收取一定的费用。这种按照实际使用进行收费的方式在企业中变得越来越常见。从效用计算开始引入按需计算(Computing on Demand)的理念,用户无须为不需要的额外服务支付任何费用。效用计算模型的管理模块注重系统的性能,确保数据和资源随时可用,同时建立自动化(Automatization)模块,对服务器进行集群操控,促进服务器之间的自动化管理,保证服务之间可以自行分配。
由上述内容可以看出,效用计算已经有了很多云计算的影子,而云计算的很多理念也是在效用计算的基础上发展起来的。
5)云计算
云计算强调所有资源均以服务的形态出现,包括基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)、软件即服务(Software as a Service,SaaS)、数据即服务(Data as a Service,DaaS)、知识即服务(Knowledge as a Service,KaaS)、存储即服务(Storage as a Service,SaaS)、安全即服务(Security as a Service,SaaS)等。
企业对信息中心提出的要求越来越高,企业首席信息官(Chief Information Officer,CIO)更加希望从基础设施、平台、软件中摆脱出来,转而关注业务流程的革新、办公效率的优化、业务成本的管控,以使信息系统的交付和管理模式进行良好的转变。中小企业则希望避免自行构建数据中心,而将所有的业务迁移到公共云;大型企业则可以建立私有云,将所有的资源整合,再以服务的形态呈献给企业内部员工和外部用户。而对于个人用户,理想的状态显然是通过一台能连接网络的设备来完成所有的办公、生活和娱乐需求,而不管身处何方,也不管使用的是笔记本电脑还是智能手机等移动终端。
简言之,云计算的发展历程如图1.5所示,云计算经过不断演变、优化,形成了我们现在所看到的云计算,它的发展不仅顺应当前计算模型,也为企业真正带来了效率和成本方面的诸多变革。
图1.5 云计算的发展历程[1]
2. 云计算发展历史大事记
云计算被认为是科技界的一次巨大革新,它已经带来工作方式和商业模式的根本性改变。几十年来,云计算发展历程的里程碑事件列举如下[9-12]。
1959年,Christopher Strachey发表论文提出虚拟化概念,虚拟化目前已成为云计算的核心技术之一。
1961年,John McCarthy提出计算力的概念,以及通过公用事业销售计算机应用的思想。
1962 年,Joseph Carl Robnett Licklider提出“星际计算机网络”(Intergalactic Computer Network)设想并对其进行了详细阐述,“星际计算机网络”的设想几乎包含了现代Internet所有的特征。
1965年,美国电话公司Western Union提出建立信息公用事业的设想。
1984年,Sun的联合创始人John Gage指出“网络就是计算机”,今天的云计算正在实践这一理念。
1996年,开源网格计算平台Globus推出。Globus基于开放结构、开放服务资源和软件库,并支持网格和网格应用,目的是为构建网格应用提供中间件服务和程序库。
1997年,美国南加利福尼亚大学教授Ramnath K. Chellappa首次提出云计算的学术定义,认为计算的边界可以不是技术局限,而是经济合理性。
1998年,VMWare公司成立并首次引入x86的虚拟化技术,即基于x86处理器架构的虚拟化技术,通过这种虚拟化技术可以在同一台服务器硬件上运行多个Guest OS(虚拟机所用的操作系统)。
1999年,Marc Andreessen创建LoudCloud,这是第一个商业化的IaaS平台。1999年,Salesforce公司成立,并以“软件终结”(NO SOFTWARE)为口号。目前,Salesforce公司已成为全球最大的网络商用管理软件销售商。
2000年,软件即服务(SaaS)开始被广泛接受,这意味着SaaS的兴起。
2004年,在出版社经营者O'Reilly和MediaLive International之间的一场头脑风暴论坛中,Web2.0的概念诞生。自此以后,Web2.0成为技术流行词,Internet发展由此进入新阶段。同年,Google发布MapReduce论文,这篇论文中阐述了公司内部已经广泛采用的基于Map过程和Reduce过程的海量数据处理思想,这篇论文在大数据兴起的历程中意义重大。Doug Cutting和Mike Cafarella实现了Hadoop分布式文件系统(HDFS)和MapReduce。Hadoop目前已成为了非常优秀的分布式系统基础架构,它主要由HDFS、MapReduce和Hbase组成。
2005年,Amazon推出AWS云计算平台。
2006 年,Amazon相继推出简单存储服务(Simple Storage Service,S3)和弹性计算云(Elastic Compute Cloud,EC2)等云服务。同年,Sun推出基于云计算理论的“BlackBox”计划。
2007年,Google与IBM在大学开设云计算课程;Dell成立数据中心解决方案部门,先后为全球著名云计算平台Windows Azure、Facebook和Ask.com提供云计算基础设施。Amazon推出了简单队列服务(Simple Queue Service,SQS),通过这项服务,开发人员可以开发分布式的应用程序,并在它们中间以一种安全、灵活和可靠的方式进行通信;IBM首次发布云计算商业解决方案,推出了“蓝云”(Blue Cloud)计划。
2008年,Salesforce公司推出了随需应变平台DevForce,这是世界上第一个PaaS平台;IBM宣布在无锡太湖新城科教产业园为中国软件公司建立云数据中心;Google发布PaaS平台Google AppEngine,该平台可以让开发者在Google提供的基础架构上运行自己的网络应用程序;Gartner发布报告,指出云计算代表了计算的方向;Sun在JavaOne开发者大会上宣布推出“Hydrazine”计划,在该计划中,Sun计划利用其大多数核心技术提供一个功能齐全的解决方案,让开发人员可以利用Sun的平台创建应用程序和服务,并且可以利用这些应用程序和服务赚钱;EMC公司中国研发中心启动“道里”可信基础架构联合研究项目;IBM宣布成立IBM大中华区云数据中心;HP、Intel和Yahoo联合创建云计算试验平台OpenCirrus;美国专利商标局网站信息显示,Dell申请云计算商标,此举旨在加强对这一未来可能重塑技术架构术语的控制权,Dell在申请文件中称,云计算是“在数据中心和巨型规模的计算环境中,为他人定制计算机硬件”;Google推出Chrome浏览器,将浏览器彻底融入云计算;Oracle和AWS合作,用户可在AWS云中部署Oracle软件,以及在云中备份Oracle数据库;Citrix公布其云计算战略,并发布Citrix云数据中心(Citrix Cloud Center,C3)系列产品;Microsoft发布其公共云计算平台Windows Azure,由此开启了Microsoft的云计算战略;Gartner指出数据中心十大关键性技术,虚拟化和云计算上榜;Amazon、Google和Flexiscale的云服务相继发生宕机故障,引发业界对云计算安全的讨论。
2009年,Cisco发布其云计算服务平台——统一计算系统(UCS),并与EMC、VMWare公司联合建立虚拟计算环境联盟,这是三大IT业界领袖企业的首次共同协作。该联盟成立的目的是通过普适数据中心虚拟化向私有云架构的转型,不断提高IT基础架构的灵活性,降低IT、能源和空间成本,从而让客户能够快速地提高业务敏捷性。Spark大数据计算平台诞生于伯克利大学AMPLab实验室,并于2010年开源,该平台在2013年正式成了Apache基金项目。阿里软件在江苏南京建立首个电子商务云数据中心。VMWare公司推出业界首款云操作系统VMWare vSphere。Google宣布将推出操作系统ChromeOS。中国首个企业云计算平台——中化企业云计算平台诞生。VMWare公司启动vCloud计划,构建全新云服务。中国移动的云计算计划——“大云”(Big Cloud)项目启动。
2010年,HP和Microsoft联合提供云计算解决方案;IBM与松下达成当时全球最大的云计算交易;Microsoft正式发布Microsoft Azure云平台服务;Intel在Intel开发者论坛(Intel Developer Forum,IDF)上提出互联计算,通过x86架构统一嵌入式计算、物联网和云计算领域;Microsoft宣布其90%员工将从事云计算相关研发工作;Dell推出源于DCS(Distributed Control System)部门设计的PowerEdgeC系列云计算服务器及相关服务。
2011年,Amazon位于美国弗吉尼亚州的云数据中心宕机,导致回答服务Quora、新闻服务Reddit和Hootsuite、位置跟踪服务FourSquare,以及为网络出版商提供游戏工具的BigDoor瘫痪,故障持续了4天,被认为是Amazon成立以来最为严重的云计算安全事件;开放式数据中心联盟(ODCA)发布了云计算应用模型路线图,涉及提升安全性、服务透明性、计算性能及互操作性等一系列建议,这些建议将指导联盟内300多家会员的采购决策;Apple发布在线数据存储服务iCloud,能够将用户在Mac、iPad和iPhone上的文件自动存储到Apple的个人服务器上,用户可在不同介质里同步分享自己的文件;Microsoft的BPOS云托管套件服务再次中断3小时,北美的Microsoft用户都受到了影响;国家发改委下拨7亿元专项资金支持北京、上海、深圳、杭州和无锡开展15个云计算示范项目,获得这批扶持资金的企业包括联想、百度、腾讯、阿里巴巴、华胜天成和金蝶软件等;Oracle首席执行官拉里埃里森(Larry Ellsion)宣布将推出Oracle公共云(Oracle Public Cloud)服务,以及Oracle社交网络(Oracle Social Network)平台;Salesforce宣布收购云平台社交管理公司Rypple,该公司拥有包括Facebook、网络音乐服务商Spotify在内的350个客户。
2012年,百度召开了百度开发者大会,在大会上发布了其在云计算领域的战略规划,并推出了开发者中心及四大服务体系,包括开发支持、运营支持、渠道推广及商业变现;IBM宣布加入OpenStack项目,并作为主要赞助商;我国科学技术部公布《中国云科技发展“十二五”专项规划》,以加快推进云计算技术创新和产业发展;Viacloud互联云平台引入OpenStack项目,研制基于OpenStack的公共云和私有云平台。
2013年,阿里巴巴宣布,旗下的阿里云与万网将合并为新的阿里云;IBM在IBM Pulse大会上宣布将基于OpenStack提供私有云服务及相关应用;Microsoft在上海宣布Azure云服务即将进入中国;IBM宣布与首都在线科技股份有限公司签署公共云长期战略合作协议;为成长型企业提供基础云服务的Ucloud获得风险投资公司DCM、贝塔斯曼集团的投资,超过1000万美元;Amazon宣布即将在中国推出云计算平台服务[10]。
2014年,Microsoft宣布Microsoft Azure在中国正式商用,Office套件、即时通信组件、协作组件将首次作为云服务提供给中国企业用户及政府机构,由世纪互联负责运营;可信云服务大会公布了第一批通过“可信云服务认证”的名单,包括中国电信、中国移动、百度、阿里巴巴、腾讯、华为、京东、世纪互联等19家云服务商的35项云服务;阿里云启动“云合计划”,该计划拟招募1万家云服务商,为企业、政府等用户提供一站式云服务;时任小米CEO兼金山软件董事长的雷军宣布,金山软件未来3~5年内将会向云业务进行规模超过10亿美元的投资,而金山云未来3年将执行“All in Cloud”的战略。
2015年,云栖大会以“Internet、创新、创业”为本届大会主题,展现“互联网+”时代无处不在的云计算与各行各业的连接。
2016年,Microsoft宣布正式开放Azure Container服务;AWS技术峰会在芝加哥举办,Amazon宣布AWS Snowball能够以安全可靠的方式将企业的大量数据传输进AWS或从AWS提取出来;在腾讯的“云+未来峰会”上,马化腾宣布腾讯云开放生态体系资源;百度CEO李彦宏在“2016百度云计算战略发布会”上宣布了百度的“云计算+大数据+人工智能”的“三位一体”战略;Google收购云市场平台创业公司Orbitera,增强其在云计算服务领域与Amazon、Microsoft和Salesforce公司竞争的实力。
2017年,在VMworld® 2017大会上,VMWare公司和Amazon Web Services共同宣布VMWare CloudTM on AWS初步可用;Amazon宣布已经创建了新的基于KVM的虚拟化引擎,新的C5实例和未来的虚拟机将不使用Xen,而使用核心的KVM技术。
2018年,Red Hat宣布收购Kubernetes,以及容器原生解决方案创新者与领导厂商CoreOS,交易金额为2.5亿美金。Red Hat表示,该收购将进一步增强开源的灵活性,可以让企业用户在任何环境构建并部署任何应用的愿景。该交易将夯实Red Hat作为混合云与现代应用开发基石的地位。
3. 云计算设施建设过程
云计算引发了新的技术变革并带来了新的IT服务模式,目前已成为IT领域较令人关注的话题之一,也是各行各业正在考虑和投入的重要领域。
企业IT系统向云计算的演进可以分为三个阶段[13],如图1.6所示。
图1.6 企业IT系统向云计算的演进路线图[1]
1)第一个阶段:集中化
这一阶段将企业分散的计算、存储与数据等资源进行集中,形成了规模化的数据中心基础设施。在数据集中过程中,不断进行数据和业务的整合,大多数企业的数据中心基本都完成了自身的标准化,使得既有业务的扩展和新业务的部署能够规划、可控,并按照企业标准进行IT业务的实施,解决了数据业务分散时期的混乱无序问题。在这一阶段,很多企业在数据集中化阶段后期都开始了容灾建设,特别是金融行业的大部分企业创建了高级别的容灾系统,以数据零丢失为目标。总体来说,第一个阶段解决了企业IT资源分散管理和容灾的问题。
2)第二个阶段:虚拟化
在数据集中与容灾实现之后,随着企业的快速发展,数据中心IT基础设施扩张很快,但是系统建设成本高、周期长,即使标准化的业务模块建设(如系统的复制性建设),软硬件采购成本、调试运行成本并没有显著降低,业务实现周期也没有明显缩短。标准化并没有给系统带来灵活性,集中的大规模IT 基础设施出现了系统利用率不足的问题,不同的系统运行在独占的硬件资源中,效率低下,而数据中心的功耗、空间问题逐步凸显。基于此,以降低成本、提升IT系统运行灵活性、提升资源利用率为目的的虚拟化机制开始在数据中心得到应用。虚拟化屏蔽了物理设备的异构性,将基于标准化接口的物理资源虚拟化成逻辑上完全标准化、一致化的逻辑计算资源和逻辑存储空间。虚拟化可以将多台物理服务器整合成单台服务器,每台服务器上可运行多种应用的虚拟机(Virtual Machine,VM),实现物理服务器资源利用率的提升。由于虚拟化环境可以实现计算与存储资源的逻辑化变更,特别是虚拟机的克隆,因此数据中心IT系统部署的灵活性得到大幅提升,业务部署周期由数月缩短到一天以内。虚拟化后的应用以VM为单元部署运行,数据中心服务器数量大为减少且计算能效提升,从而使数据中心的功耗与空间问题得到控制。
总体来说,在第二个阶段,企业IT架构的灵活性得到了增强,数据中心资源利用率得到显著提高,运行成本得到降低。
3)第三个阶段:云计算
对企业而言,数据中心及其各种系统(包括软硬件基础设施)的部署常常需要大量的资金投入。新的信息系统(特别是硬件部分)在建成后3~5年即面临逐步老化与更换的压力,而软件技术则不断面临升级的压力。另一方面,IT资源的投入难以匹配业务的需求,即使采用虚拟化技术也难以解决不断增加的业务对资源变化的需求,在一定时期内扩展性总是有所限制的。企业普遍期望IT资源能够弹性扩展、按需服务,将服务作为IT的核心,提升业务敏捷性,进一步大幅降低成本。云计算架构既可以由企业自己构建,也可以采用第三方云设施,但基本趋势都是企业将逐步采取按需租用计算、存储、网络等资源的方式来满足业务扩展的需要,而无须自己构建云计算架构。这意味着云计算解决了IT资源的动态需求和成本问题,使得企业可以专注于业务运营与服务优化。
在这三个阶段中,集中化面向数据中心物理组件和业务模块,虚拟化面向数据中心的计算与存储资源,云计算则面向最终服务。云计算从根本上改变了传统IT系统的服务结构,剥离了IT系统中与企业核心业务无关的因素,使得企业IT服务能力与自身业务的变化相适应。在技术变革不断发生的过程中,网络逐步从基本Internet功能转换到Web服务,IT也由企业网络互通转换到提供信息架构全面支撑企业核心业务。
技术驱动力也为实现云计算提供了客观条件,如图1.7所示。在关键领域,云计算的技术储备已经就绪。
图1.7 云计算的技术基础[1]
基础组件标准化。IT的长期发展使得基础组件的标准化非常完善,硬件层面及操作系统层面的互通已经没有阻碍。
虚拟化与自动化。虚拟化技术不断纵深发展,软硬件资源均可以通过自动化架构提供全局动态调度能力,自动化提升了资源的利用率,并增强了IT架构的伸缩性和扩展性。
并行与分布式架构。大规模的计算与数据处理系统已经在分布式架构、并行处理架构中得到广泛应用,并行计算、分布式数据处理、大型数据存储技术成为云计算的实现基础。这使得整个基础架构具有更好的弹性与扩展性。
网络带宽。大规模的数据交换需要超高网络带宽的支撑,网络系统平台在40~100 Gbit/s能力下可具备更加扁平化的结构,信息交互能以更短、更快的路径进行。
总之,从传统计算服务向云计算服务发展已经具备技术基础,而传统IT架构演进到弹性的云计算服务也成为必然。
1.1.3 云计算体系架构
云计算体系架构决定了云计算在物理设备上的表现属性,它对实际部署云计算来说至关重要。本节将详细介绍云计算体系架构[1]。
云计算的表现形式是按需提供弹性资源并提供一系列服务集合。云计算体系架构可分为核心服务层、服务管理层和用户访问接口层,如图1.8所示。
图1.8 云计算体系架构[1]
1. 核心服务层
核心服务层可以分为3个子层:基础设施即服务(Infrastructure as a Service,IaaS)层、平台即服务(Platform as a Service,PaaS)层、软件即服务(Software as a Service,SaaS)层。这3个层次也是云计算的3种典型服务方式。表1.1对这3种服务方式的特点进行了比较。
表1.1 IaaS、PaaS和SaaS的对比
IaaS层利用硬件基础设施部署服务,按需为用户提供实体或虚拟的计算、存储和网络等资源。通过这种方式,用户不必自己购置和建设这些基础设施,而只对所租用的资源付费。在使用IaaS的过程中,用户需要向云服务商提供基础设施的配置需求,以及运行于基础设施的程序代码和相关的用户数据。由于数据中心是IaaS层的基础,因此数据中心的管理和优化近年来成为研究的热点。另外,为了优化硬件资源的分配,IaaS需要借助虚拟化技术。例如,借助于Xen、KVM(Kernel-based Virtual Machine)、VMWare等虚拟化工具,IaaS可以提供可靠性高、可定制、灵活性强、规模可扩展的服务。
在IaaS层之上是PaaS层。PaaS层基于计算、存储和网络基础资源,为面向企业或终端用户的应用及业务创新提供快速、低成本的开发平台和运行环境。利用PaaS层的软件工具和开发语言,应用程序开发者只需要上传程序代码和数据即可使用服务,而不必关注底层的网络、存储、操作系统的管理问题。在处理与大数据相关的应用时,PaaS层需要充分考虑对海量数据的存储与处理能力,以及利用有效的资源管理与调度策略提高处理效率。
最上层是SaaS层。SaaS层提供了完整可用的应用软件,不需要用户安装,软件升级与维护也无须终端用户参与。SaaS与传统的收费软件不同,它是灵活收费的,不使用就不收费。企业可以通过租用SaaS解决企业信息化问题,如企业通过GMail建立属于该企业的电子邮件服务,该服务托管于Google的云数据中心,企业不必考虑服务器的管理、维护问题。对普通用户来说,SaaS将桌面应用程序迁移到Internet,可实现应用程序的泛在访问。
云计算各层均可独立提供云服务,下一层的架构也可以为上一层云计算提供支撑。以Salesforce提供的云端客户关系管理(Customer Relation Management,CRM)系统为例,由大型服务器群、高速网络、存储系统等组成的IaaS层为内部的业务开发部门提供基础服务,而内部业务开发系统在IaaS层上构建了PaaS层,并部署CRM系统。这样一个大型的系统对租用CRM服务的企业而言,就是一个大规模SaaS应用。
2. 服务管理层
服务管理层为核心服务层的可用性、可靠性和安全性提供保障。服务管理层包括服务质量(Quality of Service,QoS)保证和安全管理等。
云计算需要提供高可靠、高可用、低成本的个性化服务,而云计算平台规模庞大且结构复杂,难以完全满足用户的QoS需求。为此,云计算服务商需要和用户进行协商,并制定服务水平协议(Service Level Agreement,SLA),使双方对服务质量的需求一致。当服务商提供的服务未能达到SLA的要求时,用户将得到补偿。
此外,计算及数据的安全性一直是用户较为关心的问题。云数据中心采用的资源集中管理方式使得云计算平台存在单点失效问题。保存在云数据中心的关键数据会因突发事件(如地震、断电)、病毒入侵、黑客攻击而丢失或泄露。根据云计算服务特点,研发云计算环境下的计算隔离、隐私保护、访问控制、冗余备份等安全技术是保证云计算能够被广泛应用的关键。
除服务质量保证、安全管理外,服务管理层还包括计费管理、资源监控等,这些监管措施对云计算的稳定、高效运行同样起到重要的作用。
3. 用户访问接口层
用户访问接口层实现了云计算服务的泛在访问,通常包括命令行和Web门户等访问模式。命令行和Web服务的访问模式既可以为终端设备提供了应用程序开发接口,也便于多种服务的组合。Web门户是访问接口的另一种模式,云计算将用户的桌面应用通过Web门户迁移到Internet,从而使用户可以随时随地通过浏览器访问数据和程序,提高工作效率。虽然用户通过访问接口使用便利的云计算服务,但是不同云计算服务商提供的接口标准不同,这就导致用户数据不能在不同服务商之间迁移。为此,在Intel、Sun和Cisco等公司的倡导下,云计算互操作论坛(Cloud Computing Interoperability Forum,CCIF)成立,该论坛致力于开发统一云接口(Unified Cloud Interface,UCI),以实现“全球环境下不同企业之间可利用云计算服务无缝协同工作”的目标[14]。
4. 云计算性能要求
从本质上来说,云计算使得IT基础架构的运营专业化程度不断集中和提高,从而对基础架构层面提出更高的要求。如图1.9所示,云计算聚焦于高性能、虚拟化、动态性、扩展性、灵活性、安全性,简化用户的IT管理,提升IT运行效率,大大节省成本。
图1.9 云计算对基础架构的关注点[1]
云计算的基础架构主要由计算设备、存储设备及网络设备等构成,为满足云计算的上述要求,各基础架构层面都有自身的要求,如图1.10所示。对于计算设备,云计算要求其提供密集计算能力(如采用多路多核架构)、虚拟化能力(CPU指令虚拟化、软件虚拟化、I/O虚拟化等)、数据访问与存储的整合能力;对于网络,100Gbit/s的网络带宽,以及扁平化、高度可扩展的架构是云计算的基本要求;对于存储,高速I/O将实现面向TB~PB级高度可扩展的虚拟化海量存储访问服务。
图1.10 云计算的基础架构要求[1]
5. 云平台运营方式
基于公共云和私有云,目前云平台的运营方式主要有以下六种[15]。
方式一:企业所有,自行运营。这是一种典型的私有云,企业自建自用,基础资源在企业数据中心内部,运行维护也由企业自己承担。
方式二:企业所有,运维外包,内部运行。这也是私有云,但是企业只进行投资建设,而云计算系统的运行维护外包给服务商,基础资源依然在企业数据中心。
方式三:企业所有,运维外包,外部运行。由企业投资建设私有云,但是云计算系统位于服务商的数据中心,企业通过网络访问云资源。这是一种物理形体的托管型服务。
方式四:企业租赁,外部运行,资源独占。由服务商构建云计算基础资源,企业只是租用基础资源形成自身业务的虚拟云计算,相关信息资源完全由企业独占使用。这是一种虚拟的托管型服务。
方式五:企业租赁,外部运行,资源共享。由服务商构建云计算基础资源,多个企业同时租赁服务商的基础资源,资源的隔离与调度由服务商管理,企业只关注自身业务,不同企业在云架构内虚拟化隔离,形成一种共享的私有云。
方式六:公共云服务。由服务商为企业或个人提供面向Internet的公共服务(如电子邮件、即时通信、共享容灾等),云架构与公共网络连接,由服务商保证不同企业与用户的数据安全。
从更长远的周期来看,云的形态会不断演化,从孤立的云逐步发展到互连的云,如图1.11所示。
图1.11 云的形态演变[1]
在云计算建设初期,发展比较快的是公共云。第一阶段,企业的数据中心依然是传统IT架构,但是面向Internet应用的公共云服务快速发展,不同的ISP会构建各自的云,这些云之间相互孤立,为Internet的不同用户需求提供服务(如搜索、电子邮件等),企业数据中心与公共云之间存在公网互联(企业可能会采用公共云服务)。第二阶段,企业开始构建自己的私有云,或者租赁服务商提供的私有云服务,这一阶段主要是企业数据中心架构的变化,同时,企业为降低成本,采用公共云服务的业务会增加。第三阶段,企业为进一步降低IT成本,逐步过渡到采用服务商提供的虚拟私有云服务(也可能直接跨过第二阶段到第三阶段),这一阶段存在企业内部云与外部云的互通,即混合云模式。第四阶段,由于存在成本差异和服务差异,企业会采用不同服务商提供的云计算服务,因此形成了一种不同云之间的互联形态,即互联云[16]。
云计算带来了计算及服务模式的变革,企业和用户只需要关注自己的数据,数据的计算、存储方式、效率均采用云来实现和提升,云的服务商则将核心业务重点放在IT架构的运营上,服务成为其核心内容。