原文来自于HCIA-Cloud Computing 华为云计算工程师认证
--hsyl007学习笔记收集整理 ,个人博客地址 http://hsyl007.work/zblog/
什么是云计算
云计算就在身边
将资源准备好,通过特定技术随时随地使用这些资源去执行特定任务的方式基本就属于云计算类型。
云计算能为我们提供什么样的服务,打开华为公有云网站来看一下,如图1-1。
图 1‑1 华为公有云
在“产品”>“基础服务”中,我们可以看到计算、存储、网络、容器服务等等大的类型,大的类型下面又可以分为数量不等的小类型,我们看一个HOT的服务——弹性云服务器ECS,如图1-2:
图 1‑2 弹性云服务器规格
我们会发现云服务器的规格和我们买电脑时的配置差不多,都会有CPU、内存及硬盘的参数,后面也会给云服务器安装需要的操作系统,配置IP地址等等。其实,购买一台云服务器和购买一台电脑一样,云服务器就是把一台电脑放在云端,使用云服务器可以完成绝大部分在电脑上可以完成的工作,比如编辑文档、发送邮件或者协同办公等。除了这些,云服务器还具备一些电脑不具备的特性,比如,云服务器可以通过手机或者Pad使用,感觉和真实的电脑一样,甚至,我们可以随时修改自己云服务器的配置,比如把内存从1G扩容成2G等等。
除了云服务器,在华为公有云上,我们还可以购买到很多其它的服务,比如,需要网站,就可以购买云速建站服务,可以很快完成网站的搭建;需要硬盘来存储数据,就可以购买对象存储服务或者云硬盘。往更高的层次讲,在云计算中,我们可以完成人脸识别、语音识别、图像识别或者文字识别等AI方面的功能。
总之,云计算可以让我们像使用水电一样使用IT服务。大家想一下我们平常是如何使用水电的?是不是打开水龙头、打开开关就可以使用了?那是因为水和电都已经连在了水网电网上。以此类推,水网电网放到云计算中就是互联网,IT服务就是我们要使用的水电,而水龙头和开关可以是网页界面,也可以是某一个APP。
云计算的水龙头和开关可能是网页,也可能是某个APP,那么在这里,我列举了几个最常用的APP——百度网盘、华为手机的自动备份、有道笔记和网易云音乐。
百度网盘,相信大家都使用过,百度把它定义成一项云存储服务,通过百度网盘的客户端,我们可以轻松地将照片、视频、文档等文件进行备份、同步和分享。其中“备份”、“同步”、“分享”就属于IT服务,如果没有云计算,我们要实现这些服务就需要手动将文件拷贝到其它的硬盘上,然后再通过这个硬盘分享给别人或者恢复数据。而现在,我们通过客户端,无论它是被安装在手机上还是PC上,只要连接互联网并指定需要备份的文件夹,数据就会被自动上传到共享资源池中来代替硬盘,这种模式就是云计算。使用了云计算后,资源池是共享的,所以通过分享,其它人很容易就可以将这些数据下载下来,另外,通过一定的技术手段,还可以自动进行数据同步。
图 1‑3 云计算类APP
百度网盘需要我们自己安装,而华为手机的备份与恢复服务是出厂自带的,其它品牌的手机也有类似的服务,比如IPHONE的iCLOUD,它们都可以将手机端的文件备份到远端的数据中心,更换手机后,使用自己的账号密码就可以将自己的数据还原到新手机上。
人生总是处处有惊喜,时时有感悟,某个时刻灵感大爆发需要记下来时,却发现身边没有纸和笔,这时你就需要有道云笔记,它是网易推出的一款产品,提供了文档在线创建和编辑的功能,获得了5000万用户的青睐。文档的创建和编辑也是我们非常常用的IT服务,使用有道云笔记,就相当于使用由云计算提供的服务,无论是PC端、移动端还是网页端,用户都可以随时随地对线上资料进行编辑、分享以及协同,并且每次编辑都可以立刻同步到云端。
最后一款网易云音乐,使用该APP,所有的歌曲都可以在线收听,随时打开随时播放。
按需自助服务
说到按需自助我们最先想到的就是超市,每个顾客在超市里都可以按照自己的需求挑选需要的商品,如果是同类商品,可以自己查看说明、价格、品牌来确定是按照性价比或者其它来决定购买哪一款。按需自助也是云计算的特点之一。
图 1‑4 推荐云服务 |
回到现实中,我们根据自己的需求下载不同APP或者在华为公有云网站上购买需要的服务,在整个下载或者购买过程中,基本不需要他人帮忙,我们可以自行完成下载或者购买。而按需自助的前提是了解自己的需求,并知道哪款产品能够解决这个需求。在超市中,有很多的商品,在云计算提供商的官网上也一样有很多类型的产品,如上图,在购买以前,用户需要购买哪种产品,就像去超市以前,顾客需要知道洗衣液是用来洗衣服的,咖啡是用来喝的一样。
广泛的网络接入
云计算,通俗的讲,就是互联网加计算,所以网络接入是云计算自带的属性。
在当今社会,互联网几乎可以覆盖到全球每一个有人的角落,我们可以通过任意电子设备——PC、Pad、手机等连接到网络中,这也就意味着通过任何电子设备都可以使用云计算,而云计算的载体则更加广泛,在办公室可以使用PC,在机场车站可以使用手机或者Pad,没有网线可以用WiFi代替,没有WiFi,用流量也没有问题,总之,可以接入网络的地方,就有云计算。
如图1-5和图1-6显示的是使用PC和手机端登录华为云使用相同的EI服务。
1‑5 电脑端华为云EI体验服务
图 1‑6 手机端华为云EI体验服务
资源池化
资源池化是实现按需自助服务的前提之一,通过资源池化不但可以把同类商品放在一起,而且还能将商品的单位进行细化。在超市里,我们会看到生鲜区、果蔬区以及其它,这样可以方便顾客快速地找到自己需要的商品,但这种形式不是资源池化,只能算是资源归类,那什么算是资源池化呢?
资源池化除了将同类的资源转换为资源池的形式外,还需要将所有的资源分解到最小单位。
方便面,算是很多人生活必需品之一,同时也有很多人反映一包吃不饱,两包吃不完,这是因为超市中方便面的最小购买单位是“包”,如果使用资源池化的方式,就需要打破“包”这个单位,将所有的面放在一个“池子”里,需要多少买多少。比如自助餐厅就是这样做的,将果汁按照不同的口味分开,客户需要多少就打多少。
资源池化还有一个作用就是可以屏蔽不同资源的差异性,如果餐厅中提供池化了的可乐,里面装的是百事可乐还是可口可乐或者两者都有,顾客是看不出来的。而在云计算中,可以被池化的资源包括计算、存储和网络等资源,计算资源包括CPU和内存,如果对CPU进行池化,用户端看到的CPU最小单位可以是一个核心,而不再体现CPU的厂商是AMD或者Intel,具体如何实现,我们在《计算虚拟化》章节中介绍。
快速弹性伸缩
我们前面在讲按需自助服务时提到,为了应对热点事件的突发大流量,自助购买服务器进行扩容。而当热点事件降温后,访问流量趋于下降时,又可以将这些服务器释放进行减容,这种行为就属于典型的快速弹性伸缩。
快速弹性伸缩包括多种类型,除了人为手动扩容或减容,云计算还支持根据预设的策略进行自动扩容或减容,伸缩可以是增加或减少服务器数量,也可以是对单台服务器进行资源的增加或减少。
在云计算中,快速弹性伸缩对用户来说,最大的好处是在保证业务或者应用稳定运行的前提下节省成本。企业在创立初期,可以购买少量的资源,随着企业规模的扩大,可以逐步增加资源方面的投资;另一方面,在特殊时期可以将所有资源集中供给重点业务使用,非特殊时期,将空闲资源转做它用;如果特殊时期资源不足,可以临时增加,度过特殊时期后,再将增加的资源释放。无论是哪种情景,对于用户来说都是很方便的。
可计量服务
首先,计量不是计费,尽管通过计量可以进行计费。
在云计算中,大部分服务都需要付费使用,但也有服务是免费的,比如,弹性伸缩可以作为一个服务为用户开通,大部分时间这个服务是免费的。
计量是利用技术和其它手段实现单位统一和量值准确可靠的测量,换句话说,云计算中的服务都是可测量的,有的是根据时间,有的是根据资源配额,还有的是根据流量。服务可测量可以准确地根据客户的业务进行自动控制和优化资源配置。
对于用户来说可以很清晰地看到自己购买服务的使用情况,还可以根据需求来购买相应数量的服务。
如图1-7和图1-8体现的就是云计算中服务的计量情况。
比如弹性云服务器,可以是1个vCPU,1GB内存,40G硬盘,使用时间为1个月。
图 1‑7 ECS计量方式
如果是云速建站服务,计量方式如下:
图 1‑8 云速建站计量方式
广为接受的说法是:云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应用及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
说明一下定义中的重点:
1、云计算不是技术,而是一种模型;
2、通过云计算,用户可以使用的资源包括网络、服务器、存储、应用及服务等,这些资源全部属于IT领域,云计算的目标就是让大众像获取水电一样获取到IT服务;
3、资源的使用可以随时随地,前面我们讲过云计算的特点,“随时随地”的前提是网络可达;
4、资源能够快速供应并释放对应了云计算快速弹性伸缩的特点,而与服务提供商的交互减小到最低限度对应了按需自助服务。
通俗的讲,云,是网络、互联网的一种比喻说法,即互联网与建立互联网所需要的底层基础设施的抽象体。“计算”指的是一台足够强大的计算机提供的计算服务(包括各种功能,资源,存储)。
“云计算”可以简单理解为:通过互联网可以使用足够强大的计算机为用户提供的服务,这种服务的使用量可以使用统一的单位来描述。
注:“云”代表互联网是来自数通领域,在画拓扑图的时候,工程师们会使用云图形代表“拿来就可以使用,但是不必关心其内部技术细节”的网络,最后慢慢演变为拿云图形来特指互联网。
既然云计算是由互联网和计算组成,那么云计算的发展史就是由互联网发展史和计算模式发展史组成的,下一章我们将介绍云计算是怎么发展起来的,在这之前,先分享一个因互联网技术没有成熟而导致云计算尝试失败的案例。
拉里·埃里森,ORACLE的创始人,IT界的传奇人物,如果感兴趣可以在网上搜一下他的事迹。ORACLE成立的时候,美国另外两家传奇的公司也成立了,一个是苹果,一个是微软,给大众的感觉,拉里·埃里森的风头总是稍逊比尔盖茨。最开始的时候,微软的主打产品是操作系统,ORACLE的主打产品是数据库,但是在1988年微软也推出了数据库——SQL Server,这不是赤裸裸的抢地盘吗?所以拉里·埃里森推出了一款不需要安装操作系统的互联网电脑作为反击,互联网电脑没有本地硬盘,操作系统、用户数据和程序都放在远端数据中心的服务器中,价格上也很有优势。但是,有一点拉里·埃里森没有考虑到,当时推出这款产品的时间是1995年,当时互联网还没有普及,也没有足够大的带宽,网速很慢,几乎无法支持在线操作,用户体验很不好,所以在两年后草草收场。
互联网电脑可以算是云计算的雏形,然而这个概念太超前了,再加上2000年左右互联网泡沫的破裂,影响了人们对云端应用的信心,直到2006年亚马逊推出了AWS。
传统上,一般的软件设计都是串行式计算,具体如下:
1、一个“problem”被划分成一串离散的“Instructions”;
2、“Instructions”会在单个CPU上一个一个被执行;
3 、CPU在同一时间只能处理一个“Instruction”。
图 1‑9 串行计算示意图
一个Problem只采用串行计算的话,如果Problem太复杂,处理的时间会较长。如果解决更大规模的问题,尤其是当计算机的内存受到限制的时候,用单个CPU来解决是不切实际或者根本不可能的,例如,网络搜索引擎和网络数据库每秒要处理上百万次的计算,用串行计算基本不大可能。
在理论和实际上,想要轻易地制造更快的串行计算机存在着巨大的限制:
1、传输速度——线性计算机的执行速度直接取决于数据在硬件中传输的速度。光速的绝对限制是每纳秒30cm,铜导线是每纳秒9cm。不断提升的执行速度更加靠近极限。
2、微型化的极限——处理器技术使芯片集成了更多的晶体管。但是,即使使用分子或者原子级别的组件也会很快达到芯片集成晶体管的极限。
3、经济上的限制——让单个芯片变得更快需要增加昂贵的投入。用多个一般的芯片来取代单个高性能的芯片或许性能会更好而且更便宜。
既然难以提高单个CPU的计算性能,那么我们就让多个CPU同时参与到任务的执行中,也就是在最简单的情形下,使用并行计算来解决串行计算的限制:
图 1‑10 并行计算示意图
1、先把一个大的Problem分解成多个可被同时处理的Part;
2、再把每个Part划分成一串离散的Instructions;
3、每个Part把自己的Instructions交给各自的CPU进行处理,每个CPU同时处理不同Part的Instruction;
4、再加入一个统一控制机制对整个过程进行控制。
在历史上,并行计算被认为是高端计算,用于为复杂的科学计算和基于真实世界的工程问题建模。今天,商务应用是推动计算机快速发展的更大的推动力。这些应用需要用复杂的方法处理大量数据。
使用并行计算的原因有以下几点:
1、节省时间和成本:理论上,使用更多的资源会使一个任务提前完成,而且会节约潜在的成本。况且可以使用便宜的、甚至市面将要淘汰的CPU来构建并行聚簇。
2、解决我们前面提到过的使用串行计算无法解决的问题。
并行计算的CPU可以来自同一计算机,也可以来自同一个网络中的不同计算机。
分布式计算属于研究分布式系统的计算机科学领域。分布式系统,是将自己的所有组件分散在属于不同网络的计算机上,这些计算机通过统一的消息机制来相互通讯和配合。分布在不同网络计算机上的组件互相协作,完成共同的目标。
分布式计算比起其它算法具有以下几个优点:
1、稀有资源可以共享。
2、通过分布式计算可以在多台计算机上平衡计算负载。
3、可以把程序放在最适合运行它的计算机上。
其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。
图 1‑11 分布式计算示意图
并行计算与分布式计算都是通过运用并行的方式来获得更高性能,化大任务为小任务。简单来说,如果处理单元共享内存,就称为并行计算,反之就是分布式计算。也有人认为分布式计算是并行计算的一种特例。
其实分布式的任务包相互之间有独立性,上一个任务包的结果未返回或者处理结果错误,对下一个任务包的处理几乎没有什么影响。因此,分布式的实时性要求不高,而且允许存在计算错误(因为每个计算任务给好几个参与者计算,结果上传到服务器后要比较,然后对结果差异大的进行验证)。
而并行程序并行处理的任务包相互之间有很大的联系,并且并行计算的每一个任务块都是必要的,没有浪费的分割的,就是每个任务包都要处理,而且计算结果相互影响,这就要求每个计算结果要绝对正确,而且在时间上要尽量做到同步,而分布式的很多任务块可以不用处理,比如大量的无用数据块,所以说分布式计算的速度尽管很快,但是真正的“效率”是低之又低 的,可能一直在寻找,但是永远都找不到,也可能一开始就找到了;而并行处理不同,它的任务包个数相对有限,在一个有限的时间应该是可以完成的。
网格计算是利用广泛的零散的计算资源完成一个共同任务,它也是分布式计算的一种。根据IBM对“网格”的定义,它将本地网络或者互联网上零散的可用计算资源集合起来,使终端用户或者应用觉得他们在使用一台性能强悍的虚拟计算机。网格计算的愿景是创立一个虚拟动态的资源集合,使个人和组织机构能够安全协调的使用这些资源。网格计算通常使用集群的方式实现。
云计算(Cloud Computing),是一种新兴的共享基础架构的方法,可以将巨大的系统池连接在一起以提供各种IT服务。很多因素推动了对这类环境的需求,其中包括连接设备、实时数据流、SOA的采用以及搜索、开放协作、社会网络和移动商务等这样的Web2.0应用的急剧增长。另外,数字元器件性能的提升也使IT环境的规模大幅度提高,从而进一步加强了对一个由统一的云进行管理的需求。云计算被它的吹捧者视为“革命性的计算模型”,因为它使得超级计算能力通过互联网自由流通成为了可能。企业与个人用户无需再投入昂贵的硬件购置成本,只需要通过互联网来购买租赁计算力,“把你的计算机当做接入口,一切都交给互联网吧”。
狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。 提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。
广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT、软件和互联网相关的,也可以是其它任意的服务。
云计算一般会具有以下相同点:
(1) 超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器,Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。
(2) 虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用关心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。
(3) 高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。
(4) 通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。
(5) 高可扩展性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。
(6) 按需服务。“云”是一个庞大的资源池,你按需购买;云可以像自来水、电、煤气那样计费。
(7) 极其廉价。由于“云”的特殊容错措施可以采用极其廉价的节点来构成“云”,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。
云计算理念从最初诞生至今,企业IT架构从传统非云架构,向目标云化架构的演进,总结来说,经历了如下三大里程碑发展阶段:
1、云计算1.0:面向数据中心管理员的IT基础设施资源虚拟化阶段。该阶段的关键特征体现为通过计算虚拟化技术的引入,将企业IT应用与底层的基础设施彻底分离解耦,将多个企业IT应用实例及运行环境(客户机操作系统)复用在相同的物理服务器上,并通过虚拟化集群调度软件,将更多的IT应用复用在更少的服务器节点上,从而实现资源利用效率的提升。HCIA-Cloud Computing重点关注这个阶段,将介绍该阶段的云计算如何实现及优势。
2、云计算2.0:面向基础设施云租户和云用户的资源服务化与管理自动化阶段。该阶段的关键特征体现为通过管理平面的基础设施标准化服务与资源调度自动化软件的引入,以及数据平面的软件定义存储和软件定义网络技术,面向内部和外部的租户,将原本需要通过数据中心管理员人工干预的基础设施资源复杂低效的申请、释放与配置过程,转变为在必要的限定条件下(比如资源配额、权限审批等)的一键式全自动化资源发放服务过程。这个转变大幅提升了企业IT应用所需的基础设施资源的快速敏捷发放能力,缩短了企业IT应用上线所需的基础设施资源准备周期,将企业基础设施的静态滚动规划转变为动态资源的弹性按需供给过程。这个转变同时为企业IT支撑其核心业务走向敏捷,更好地应对瞬息万变的企业业务竞争与发展环境奠定了基础。云计算2.0阶段面向云租户的基础设施资源服务供给,可以是虚拟机形式,可以是容器 (轻量化虚拟机)形式,也可以是物理机形式。该阶段的企业IT云化演进,暂时还不涉及基础设施层之上的企业IT应用与中间件、数据库软件架构的变化。
3、云计算3.0:面向企业IT应用开发者及管理维护者的企业应用架构的分布式微服务化和企业数据架构的互联网化重构及大数据智能化阶段。该阶段的关键特征体现为企业IT自身的应用架构逐步从(依托于传统商业数据库和中间件商业套件,为每个业务应用领域专门设计的、烟囱式的、高复杂度的、有状态的、规模庞大的)纵向扩展应用分层架构体系,走向(依托开源增强的、跨不同业务应用领域高度共享的)数据库、中间件平台服务层以及(功能更加轻量化解耦、数据与应用逻辑彻底分离的)分布式无状态化架构,从而使得企业IT在支撑企业业务敏捷化、智能化以及资源利用效率提升方面迈上一个新的高度和台阶,并为企业创新业务的快速迭代开发铺平了道路。
针对上述三大云计算发展演进里程碑阶段而言,云计算1.0普遍已经是过去式,且一部分行业、企业客户已完成初步规模的云计算2.0建设商用,正在考虑该阶段的进一步扩容,以及面向云计算3.0的演进;而另一部分客户则正在从云计算1.0走向云计算2.0,甚至同步展开云计算2.0和3.0 的演进评估与实施。
扩展知识,云计算1.0与2.0/3.0阶段之间的主要差异体现为如下七点:
注:以下内容来自《云计算架构技术与实践》。
差别1:从IT非关键应用走向电信网络应用和企业关键应用。从云计算面向企业IT及电信网络的使用范围的视角来看,云计算发展初期,虚拟化技术主要局限于非关键应用,比如办公桌面云,开发测试云等。该阶段的应用往往对底层虚拟化带来的性能开销并不敏感。人们更加关注于资源池规模化集中之后资源利用效率的提升以及业务部署效率的提升。然而随着云计算的持续深入普及,企业IT云化的范围已从周边软件应用,逐步走向更加关键的企业应用,甚至企业的核心生产IT系统。因此,如何确保云平台更高效、更可靠地支撑时延敏感的企业关键应用,就变得至关重要。对于企业IT基础设施的核心资产而言,除了实实在在的计算、存储、网络资源等有形物理资产之外,最有价值的莫过于企业数据这些无形资产。在云计算的计算虚拟化技术发展初期阶段,Guest OS与Host OS之间的前后端I/O队列在I/O吞吐上的开销较大,而传统的结构化数据由于对I/O性能吞吐和时延要求很高,这两个原因导致很多事务关键型结构化数据在云化的初期阶段并未纳入虚拟化改造的范畴,从而使得相关结构化数据的基础设施仍处于虚拟化乃至云计算资源池的管理范围之外。然而随着虚拟化XEN/KVM引擎在I/O性能上的不断优化提升(如采用SR-IOV直通、多队列优化技术),使得处于企业核心应用的ERP等关系型关键数据库迁移到虚拟化平台上部署和运行已不是问题。与此同时,云计算在最近2~3年内,已从概念发源地的互联网IT领域,渗透到电信运营商网络领域。互联网商业和技术模式的成功,启发电信运营商们通过引入云计算实现对现有电信网络和网元的重构来打破传统意义上电信厂家所采用的电信软件与电信硬件紧绑定的销售模式,同样享受到云计算为IT领域带来的红利,诸如:硬件TCO的降低,绿色节能,业务创新和部署效率的提升,对多国多子网的电信功能的快速软件定制化以及更强的对外能力开放。
差别2:从计算虚拟化走向存储虚拟化和网络虚拟化,从支撑云计算按需、弹性分配资源,与硬件解耦的虚拟化技术的角度来看,云计算早期阶段主要聚焦在计算虚拟化领域。事实上,众所周知的计算虚拟化技术早在IBM 370时代就已经在其大型机操作系统上诞生了。技术原理是通过在OS与裸机硬件之间插入虚拟化层,在裸机硬件指令系统之上仿真模拟出多个370大型机的“运行环境”,使得上层“误认为”自己运行在一个独占系统之上,而实际上是由计算虚拟化引擎在多个虚拟机之间进行CPU分时调度,同时对内存、I/O、网络等也进行访问屏蔽。只不过后来当x86平台演进成为IT领域硬件平台的主流之后,VMware ESX、XEN、KVM等依托于单机OS的计算虚拟化技术才将IBM 370的虚拟化机制在x86服务器的硬件体系架构下实现和商品化,并且在单机/单服务器虚拟化的基础上引入了具备虚拟机动态迁移和HA调度能力的中小集群管理软件(如 vCenter/vSphere、XEN Center、FusionSphere等),从而形成当前的计算虚拟化主体。随着数据和信息越来越成为企业IT中最为核心的资产,作为数据信息持久化载体的存储已经逐步从服务器计算中剥离出来成为了一个庞大的独立产业,与必不可少的CPU计算能力一样,在数据中心发挥着至关重要的作用。当企业对存储的需求发生变化时该如何快速满足新的需求以及如何利用好已有的多厂家的存储,这些问题都需要存储虚拟化技术来解决。与此同时,现代企业数据中心的IT硬件的主体已经不再是封闭的、主从式架构的大小型机一统天下的时代。客户端与服务器之间南北方向的通信、服务器与服务器之间东西方向的协作通信以及从企业内部网络访问远程网络和公众网络的通信均已走入了基于对等、开放为主要特征的以太网互联和广域网互联时代。因此,网络也成为计算、存储之后,数据中心IT基础设施中不可或缺的“三要素”之一。就企业数据中心端到端基础设施解决方案而言,服务器计算虚拟化已经远远不能满足用户在企业数据中心对按需分配资源、弹性分配资源与硬件解耦的分配资源的能力需求,由此存储虚拟化和网络虚拟化技术应运而生。除了云管理和调度所完成的管理控制面的API与信息模型归一化处理之外,虚拟化的重要特征是通过在指令访问的数据面上,对所有原始的访问命令字进行截获,并实时执行“欺骗”式仿真动作,使得被访问的资源呈现出与其真正的物理资源不同的(软件无须关注硬件)、“按需获取”的颗粒度。对于普通x86服务器来说,CPU和内存资源虚拟化后再将其(以虚拟机CPU/内存规格)按需供给给资源消费者(上层业务用户)。计算能力的快速发展,以及软件通过负载均衡机制进行水平扩展的能力提升,计算虚拟化中仅存在资源池的“大分小”的问题。然而对于存储来说,由于最基本的硬盘(SATA/SAS)容量有限,而客户、租户对数据容量的需求越来越大,因此必须考虑对数据中心内跨越多个松耦合的分布式服务器单元内的存储资源(服务器内的存储资源、外置SAN/NAS在内的存储资源)进行“小聚大”的整合,组成存储资源池。这个存储资源池,可能是某一厂家提供的存储软硬件组成的同构资源池,也可以是被存储虚拟化层整合成为跨多厂家异构存储的统一资源池。各种存储资源池均能以统一的块存储、对象存储或者文件的数据面格式进行访问。对于数据中心网络来说,其实网络的需求并不是凭空而来的,而是来源于业务应用,与作为网络端节点的计算和存储资源有着无法切断的内在关联性。然而,传统的网络交换功能都是在物理交换机和路由器设备上完成的,网络功能对上层业务应用而言仅仅体现为一个一个被通信链路连接起来的孤立的“盒子”,无法动态感知来自上层业务的网络功能需求,完全需要人工配置的方式来实现对业务层网络组网与安全隔离策略的需要。在多租户虚拟化的环境下,不同租户对于边缘的路由及网关设备的配置管理需求也存在极大的差异化,而物理路由器和防火墙自身的多实例能力也无法满足云环境下租户数量的要求,采用与租户数量等量的路由器与防火墙物理设备,成本上又无法被多数客户所接受。于是人们思考是否可能将网络自身的功能从专用封闭平台迁移到服务器通用x86平台上来。这样至少网络端节点的实例就可以由云操作系统来直接自动化地创建和销毁,并通过一次性建立起来的物理网络连接矩阵,进行任意两个网络端节点之间的虚拟通讯链路建立,以及必要的安全隔离保障,从而里程碑式地实现了业务驱动的网络自动化管理配置,大幅度降低数据中心网络管理的复杂度。从资源利用率的视角来看,任意两个虚拟网络节点之间的流量带宽,都需要通过物理网络来交换和承载,因此只要不超过物理网络的资源配额上限(缺省建议物理网络按照无阻塞的CLOS模式来设计实施),只要虚拟节点被释放,其所对应的网络带宽占用也将被同步释放,因此也就相当于实现对物理网络资源的最大限度的“网络资源动态共享”。换句话说,网络虚拟化让多个盒子式的网络实体第一次以一个统一整合的“网络资源池”的形态,出现在业务应用层面前,同时与计算和存储资源之间,也有了统一协同机制。
差别3:资源池从小规模的资源虚拟化整合走向更大规模的资源池构建,应用范围从企业内部走向多租户的基础设施服务乃至端到端IT服务。从云计算提供像用水用电一样方便的服务能力的技术实现角度来看,云计算发展早期,虚拟化技术(如VMware ESX、微软Hyper-V、基于Linux的XEN、KVM)被普遍采用,被用来实现以服务器为中心的虚拟化资源整合,在这个阶段,企业数据中心的服务器只是部分孤岛式的虚拟化以及资源池整合,还没有明确的多租户以及服务自动化的理念,服务器资源池整合的服务对象是数据中心的基础设施硬件以及应用软件的管理人员。在实施虚拟化之前,物理的服务器及存储、网络硬件是数据中心管理人员的管理对象,在实施虚拟化之后,管理对象从物理机转变为虚拟机及其对应的存储卷、软件虚拟交换机,甚至软件防火墙功能。目标是实现多应用实例和操作系统软件在硬件上最大限度共享服务器硬件,通过多应用负载的削峰填谷达到资源利用率提升的目的,同时为应用软件进一步提供额外的HA/FT(High Availability/Fault Tolerance,高可用性/容错)可靠性保护,以及通过轻载合并、重载分离的动态调度,对空载服务器进行下电控制,实现PUE功耗效率的优化提升。然而,这些虚拟化资源池的构建,仅仅是从数据中心管理员视角实现了资源利用率和能效比的提升,与真正的面向多租户的自动化云服务模式仍然相差甚远。因为在云计算进一步走向普及深入的新阶段,通过虚拟化整合之后的资源池的服务对象,不能再仅仅局限于数据中心管理员本身,而是需要扩展到每个云租户。因此云平台必须在基础设施资源运维监控管理Portal的基础上,进一步面向每个内部或者外部的云租户提供按需定制基础设施资源,订购与日常维护管理的Portal或者API界面,并将虚拟化或者物理的基础设施资源的增、删、改、查等权限按照分权分域的原则赋予每个云租户,每个云租户仅被授权访问其自己申请创建的计算、存储以及与相应资源附着绑定的OS和应用软件资源,最终使得这些云租户可以在无须购买任何硬件IT设备的前提下,实现按需快速资源获取,以及高度自动化部署的IT业务敏捷能力的支撑,从而将云资源池的规模经济效益,以及弹性按需的快速资源服务的价值充分发掘出来。
差别4:数据规模从小规模走向海量,数据形态从传统结构化走向非结构化和半结构化。从云计算系统需要提供的处理能力角度看,随着智能终端的普及、社区网络的火热、物联网的逐步兴起,IT网络中的数据形态已经由传统的结构化、小规模数据,迅速发展成为有大量文本、大量图片、大量视频的非结构化和半结构化数据,数据量也是呈几何指数的方式增长。对非结构化、半结构化大数据的处理而产生的数据计算和存储量的规模需求,已远远超出传统的Scale-Up硬件系统可以处理的,因此要求必须充分利用云计算提供的Scale-Out架构特征,按需获得大规模资源池来应对大数据的高效高容量分析处理的需求。企业内日常事务交易过程中积累的大数据或者从关联客户社交网络以及网站服务中抓取的大数据,其加工处理往往并不需要实时处理,也不需要系统处于持续化的工作态,因此共享的海量存储平台,以及批量并行计算资源的动态申请与释放能力,将成为未来企业以最高效的方式支撑大数据资源需求的解决方案选择。
差别5:企业和消费者应用的人机交互计算模式,也逐步从本地固定计算走向云端计算、 移动智能终端及浸入式体验瘦终端接入的模式随着企业和消费者应用云化演进的不断深入,用户近端计算、存储资源不断从近端计算剥离,并不断向远端的数据中心迁移和集中化部署,从而带来了企业用户如何通过企业内部局域网及外部固定、移动宽带广域网等多种不同途径,借助固定、移动,乃至浸入式体验等多种不同瘦终端或智能终端形态接入云端企业应用的问题。面对局域网及广域网连接在通信包转发与传输时延不稳定、丢包以及端到端QoS质量保障机制缺失等实际挑战,如何确保远程云接入的性能体验达到与本地计算相同或近似的水平,成为企业云计算IT基础设施平台面临的又一大挑战。为应对云接入管道上不同业务类型对业务体验的不同诉求,业界通用的远程桌面接入协议在满足本地计算体验方面已越来越无法满足当前人机交互模式发展所带来的挑战,需要重点聚焦解决面向IP多媒体音视频的端到端QoS/QoE优化,并针对不同业务类别加以动态识别并区别处理,使其满足如下场景需求:
另一方面,正当全球消费者IT步入方兴未艾的Post-PC时代大门之时,iOS及Android移动智能终端同样正在悄悄取代企业用户办公位上的PC甚至便携电脑,企业用户希望通过智能终端不仅可以方便地访问传统Windows桌面应用,同样期待可以从统一的“桌面工作空间”访问公司内部的Web SaaS应用、第三方的外部SaaS应用,以及其他Linux桌面系统里的应用,而且希望一套企业的云端应用可以不必针对每类智能终端OS平台开发多套程序,就能够提供覆盖所有智能终端形态的统一业务体验,针对此BYOD云接入的需求,企业云计算需在Windows桌面应用云接入的自研桌面协议基础上,进一步引入基于HTML5协议、支持跨多种桌面OS系统、支持统一认证及应用聚合、支持应用零安装升级维护,及异构智能终端多屏接入统一体验的云接入解决方案——Web Desktop。
差别6:云资源服务从单一虚拟化,走向异构兼容虚拟化、轻量级容器化以及裸金属物理机服务器在传统企业IT架构向目标架构演进的过程中,为了实现应用的快速批量可复制,以闭源 VMware、Hyper-V及开源XEN、KVM为代表的虚拟化是最早成熟和广泛采纳的技术,使得应用安装与配置过程可基于最佳实践以虚拟机模板和镜像的形式固化下来,从而在后续的部署过程中大大简化可重复的复杂IT应用的安装发放与配置过程,使得软件部署周期缩短到以小时乃至以分钟计算的程度。然而,随着企业IT应用越来越多地从小规模、单体式的有状态应用走向大规模、分布式、数据与逻辑分离的无状态应用,人们开始意识到虚拟机虽然可以较好地解决大规模IT数据中心内多实例应用的服务器主机资源共享的问题,但对于租户内部多个应用,特别是成百上千,甚至数以万计的并发应用实例而言,均需重复创建成百上千的操作系统实例,资源消耗大,同时虚拟机应用实例的创建、启动,以及生命周期升级效率也难以满足在线Web服务类、大数据分析计算类应用这种突发性业务对快速资源获取的需求。以Google、Facebook、Amazon等为代表的互联网企业,开始广泛引入Linux容器技术(namespace、cgroup等机制),基于共享Linux内核,对应用实例的运行环境以容器为单位进行隔离部署,并将其配置信息与运行环境一同打包封装,并通过容器集群调度技术(如Kubernetes、MESOS、Swarm等)实现高并发、分布式的多容器实例的快速秒级发放及大规模容器动态编排和管理,从而将大规模软件部署与生命周期管理,以及软件DevOps敏捷快速迭代开发与上线效率提升到了一个新的高度。尽管从长远趋势上来看,容器技术终将以其更为轻量化、敏捷化的优势取代虚拟化技术,但在短期内仍很难彻底解决跨租户的安全隔离和多容器共享主机超分配情况下的资源抢占保护问题,因此,容器仍将在可见的未来继续依赖跨虚拟机和物理机的隔离机制来实现不同租户之间的运行环境隔离与服务质量保障。与此同时,对于多数企业用户来说,部分企业应用和中间件由于特殊的厂家支持策略限制,以及对企业级高性能保障与兼容性的诉求,特别是商用数据库类业务负载,如Oracle RAC集群数据和HANA内存计算数据库,并不适合运行在虚拟化上,但客户依然希望针对这部分应用负载可以在物理机环境下获得与虚拟化、容器化环境下相似的基础设施资源池化按需供给和配置自动化能力。这就要求云平台和云管理软件不仅仅要实现物理机资源自身的自动化操作系统与应用安装自动化,也需要进一步在保障多租户隔离安全的情况下实现与存储和网络资源池协同的管理与配置自动化能力。
差别7:云平台和云管理软件从闭源、封闭走向开源、开放,从云计算平台的接口兼容能力角度看,云计算早期阶段,闭源VMware vSphere/vCenter、微软SystemCenter/Hyper-V云平台软件由于其虚拟化成熟度遥遥领先于开源云平台软件的成熟度,因此导致闭源的私有云平台成为业界主流的选择。然而,随着XEN/KVM虚拟化开源,以及OpenStack、CloudStack、Eucalyptus等云操作系统OS开源软件系统的崛起和快速进步,开源力量迅速发展壮大起来,迎头赶上并逐步成长为可以左右行业发展格局的重要决定性力量。仅以OpenStack为例,目前IBM、HP、SUSE、Redhat、Ubuntu等领先的软硬件公司都已成为OpenStack的白金会员,从2010年诞生第一个版本开始,平均每半年发布一个新版本,所有会员均积极投身到开源贡献中来,繁荣的社区发展驱动其功能不断完善,并稳步、快速地迭代演进。2014年上半年,OpenStack的成熟度已与vCloud/ vSphere 5.0版本的水平相当,满足基本规模商用和部署要求。从目前的发展态势来看,OpenStack开源大有成为云计算领域的Linux开源之势。回想2001年前后,当Linux OS仍相当弱小、UNIX操作系统大行其道、占据企业IT系统主要生产平台的阶段,多数人不会想象到仅10年的时间,开源Linux已取代闭源UNIX,成为主导企业IT服务端的缺省操作系统的选择,小型机甚至大型机硬件也正在进行向通用x86服务器的演进。
云计算目前尚未有全球统一的标准分类,但是目前业内基本达成了共识,一般会从运营模式和服务模式来分类,下面我们逐一进行介绍。
公有云是最先出现的云计算,也是最被大众熟知的云计算。我们前面提到的百度网盘、华为手机云备份、有道云笔记和网易云音乐都属于公有云。目前,公有云可以提供给用户众多的服务,用户可以通过互联网像使用水电一样使用IT服务。
公有云通常是由云服务提供商搭建的。从最终用户的角度来说,只需要购买云计算资源或者服务,而云计算所用到的硬件及相应的管理工作都由第三方服务商负责。公有云的资源向公众开放,使用公有云需依赖互联网。
私有云通常部署在企业或单位内部,运行在私有云上的数据全部保存在企业自有的数据中心内,如果需要访问这些数据,就需要经过部署在数据中心入口的防火墙,这样可以在最大程度上保护数据。私有云可以基于企业已有的架构进行部署,也可以使用绝大部分已经花了大价钱购买的硬件设备,可以保护客户的现有投资。所有的事情都有两面性,如果企业采用了私有云,可以保证数据的安全,可以利旧设备,但是,随着时间的推移,设备会越来越旧,更换这些设备需要一笔不小的费用。另一方面,为了保证数据的安全,用户之间可共享的东西非常少,就算有,也绝对不会和其它企业或者单位共享。
近些年,关于私有云还有一种说法,在公有云上购买专属云的服务,这种方式可以将企业的关键业务放到公有云上,保证用户在云上拥有专属的计算和存储资源,并使用高度可靠的隔离网络,满足租户关键应用系统的高可靠、高性能和高安全等要求。
混合云是一种比较灵活的云计算模式,它可能包含了公有云、私有云或者后面要讲的行业云中的两种或两种以上的云,用户的业务可以根据需求在这几种云上切换。由于安全和控制原因,并非所有的企业信息都能放置在公有云上,这样大部分已经应用云计算的企业将会使用混合云模式。很多企业将选择同时使用公有云和私有云,有一些也会同时建立公共云。因为公有云只会向用户使用的资源收费,所以集中云将会变成处理需求高峰的一个非常便宜的方式。比如对一些零售商来说,他们的操作需求会随着假日的到来而剧增,或者是有些业务会有季节性的上扬。同时混合云也为其它目的的弹性需求提供了一个很好的基础,比如,灾难恢复。这意味着私有云把公有云作为灾难转移的平台,并在需要的时候去使用它。这是一个极具成本效应的理念。另一个好的理念是,使用公有云作为一个选择性的平台,同时选择其它的公有云作为灾难转移平台。
混合云允许用户利用公共云和私有云的优势。还为应用程序在多云环境中的移动提供了极大的灵活性。此外,混合云模式具有成本效益,因为企业可以根据需要决定使用成本更昂贵的云计算资源。
由于设置更加复杂而难以维护和保护。此外,由于混合云是不同的云平台、数据和应用程序的组合,因此整合可能是一项挑战。在开发混合云时,基础设施之间也会出现主要的兼容性问题。
行业云就是由行业内或某个区域内起主导作用或者掌握关键资源的组织建立和维护,以公开或者半公开的方式,向行业内部或相关组织和公众提供有偿或无偿服务的云平台。
行业云不是一个新的概念,它是一个特定的创建云的方式,和公有云和私有云不一样的地方是行业云在创建过程中就会包含一些行业特性,比如,云计算具备了医药行业特性后,可将患者的病例及急诊记录放到云端,每个医院的医生都可以从云端获取到相关的有用信息。
行业云是一个很大的机遇,但是也非常具备挑战性,拿医药行业云来说,患者的所有信息都会被同一行业内的相关人员看到,如何保障个人信息就需要更高的云安全技术或手段。
在云计算中,一般我们部署的所有应用都遵循统一的分层结构,应用程序是最终呈现给用户,用户通过应用程序的界面保存或创建出自己的数据,为了保证应用程序的正常运行,需要依赖最底层的硬件资源、运行在硬件资源上的操作系统,以及运行在操作系统之上的中间件和应用程序的运行环境。我们把应用程序在内的所有部分称为软件层,将最底层的硬件资源,包括网络资源、存储资源和计算资源,以及虚拟化层称为基础设施层,运行在操作系统之上、应用程序之下的所有中间部分称为平台层。
如果基础设施层由云服务商提供,其它由用户自营,这种模式称为IaaS;如果基础设施层和平台层由云服务商提供,其它由用户自营,这种模式称为PaaS;如果全部由云服务商提供,这种模式称为SaaS。
使用运行在PC上的游戏举例,图1-12是从游民星空中截取出来的,是关于大型单机游戏《只狼:影逝二度》的配置需求,具体如下:
图 1‑12 《只狼:影逝二度》配置需求
在此图片中,我们可以看到这款游戏对硬件的要求,如果这台PC由我们自己购买,然后自己安装操作系统及游戏软件,这种模式是传统的模式,属于非云计算类;假如我们拿着这个配置清单到公有云上购买了一台这样的云服务器,使用镜像完成了操作系统的安装,然后自己进行软件包的下载和安装,我们使用的IaaS的模式;在安装此类大型游戏时,经常会出现以下告错:
图 1‑13 NET Framework初始化报错信息
这是因为该游戏软件正常运行需要.NET Framework的支持,属于该软件的运行环境。如果我们购买的不仅仅是硬件设备,而是已经安装和运行了.NET Framework的环境,这种模式属于PaaS。如果使用的是最后一种——SaaS,我们直接购买的是已经安装并且激活了的游戏环境,只需要输入自己的用户名密码即可开始我们的游戏之旅。
原文来自于HCIA-Cloud Computing 华为云计算工程师认证
--hsyl007学习笔记收集整理 ,个人博客地址 http://hsyl007.work/zblog/