云计算架构技术与实践(第2版)
上QQ阅读APP看书,第一时间看更新

1.3 企业云计算的发展趋势

随着云计算技术在各行各业日新月异的发展与突破,以及云计算产学研生态链各环节持续不懈的“化云为雨”的努力,云计算的应用与价值挖掘已全面渗透到企业IT信息化以及电信网络转型变革的方方面面。各行业、各企业依据自身业务现状、竞争形势与信息化变革程度的不同,不断持续深化企业IT云化的程度,并从一个里程碑走向下一个里程碑。

一、云计算发展的里程碑

从云计算理念最初诞生至今,企业IT架构从传统非云架构,向目标云化架构的演进,可总结为经历了如下三大里程碑发展阶段。

1.云计算1.0:面向数据中心管理员的IT基础设施资源虚拟化阶段

该阶段的关键特征体现为通过计算虚拟化技术的引入,将企业IT应用与底层的基础设施彻底分离解耦,将多个企业IT应用实例及运行环境(客户机操作系统)复用在相同的物理服务器上,并通过虚拟化集群调度软件,将更多的IT应用复用在更少的服务器节点上,从而实现资源利用效率的提升。

2.云计算2.0:面向基础设施云租户和云用户的资源服务化与管理自动化阶段

该阶段的关键特征体现为通过管理平面的基础设施标准化服务与资源调度自动化软件的引入,以及数据平面的软件定义存储和软件定义网络技术,面向内部和外部的租户,将原本需要通过数据中心管理员人工干预的基础设施资源复杂低效的申请、释放与配置过程,转变为在必要的限定条件下(比如资源配额、权限审批等)的一键式全自动化资源发放服务过程。这个转变大幅提升了企业IT应用所需的基础设施资源的快速敏捷发放能力,缩短了企业IT应用上线所需的基础设施资源准备周期,将企业基础设施的静态滚动规划转变为动态按需资源的弹性按需供给过程。这个转变同时为企业IT支撑其核心业务走向敏捷,更好地应对瞬息万变的企业业务竞争与发展环境奠定了基础。云计算2.0阶段面向云租户的基础设施资源服务供给,可以是虚拟机形式,可以是容器(轻量化虚拟机),也可以是物理机形式。该阶段的企业IT云化演进,暂时还不涉及基础设施层之上的企业IT应用与中间件、数据库软件架构的变化。

3.云计算3.0:面向企业IT应用开发者及管理维护者的企业应用架构的分布式微服务化和企业数据架构的互联网化重构及大数据智能化阶段

该阶段的关键特征体现为:企业IT自身的应用架构逐步从(依托于传统商业数据库和中间件商业套件,为每个业务应用领域专门设计的、烟囱式的、高复杂度的、有状态的、规模庞大的)纵向扩展应用分层架构体系,走向(依托开源增强的、跨不同业务应用领域高度共享的)数据库、中间件平台服务层以及(功能更加轻量化解耦、数据与应用逻辑彻底分离的)分布式无状态化架构,从而使得企业IT在支撑企业业务敏捷化、智能化以及资源利用效率提升方面迈上一个新的高度和台阶,并为企业创新业务的快速迭代开发铺平了道路。

图1-1 云计算发展的三个阶段

针对上述三大云计算发展演进里程碑阶段而言,云计算1.0普遍已经是过去式,且一部分行业、企业客户已完成初步规模的云计算2.0建设商用,正在考虑该阶段的进一步扩容,以及面向云计算3.0的演进;而另一部分客户则正在从云计算1.0走向云计算2.0,甚至同步展开云计算2.0和3.0的演进评估与实施。

二、云计算各阶段间的主要差异

上述云计算里程碑阶段点之间,特别是云计算1.0与2.0/3.0阶段之间的主要差异体现为如下七点。

1.差别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.差别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.差别3:资源池从小规模的资源虚拟化整合走向更大规模的资源池构建,应用范围从企业内部走向多租户的基础设施服务乃至端到端IT服务

站在云计算提供像用水用电一样方便的服务能力的技术实现角度来看,云计算发展早期,虚拟化技术(如VMware ESX、微软Hyper-V、基于Linux的XEN、KVM)被普遍采用,被用来实现以服务器为中心的虚拟化资源整合,在这个阶段,企业数据中心的服务器只是部分孤岛式的虚拟化以及资源池整合,还没有明确的多租户以及服务自动化的理念,服务器资源池整合的服务对象是数据中心的基础设施硬件以及应用软件的管理人员。在实施虚拟化之前,物理的服务器及存储、网络硬件是数据中心管理人员的管理对象,在实施虚拟化之后,管理对象从物理机转变为虚拟机及其对应的存储卷、软件虚拟交换机,甚至软件防火墙功能。目标是实现多应用实例和操作系统软件在硬件上最大限度共享服务器硬件,通过多应用负载的削峰错谷达到资源利用率提升的目的,同时为应用软件进一步提供额外的HA/FT(High Availability/Fault Tolerance,高可用性/容错)可靠性保护,以及通过轻载合并、重载分离的动态调度,对空载服务器进行下电控制,实现PUE功耗效率的优化提升。

然而,这些虚拟化资源池的构建,仅仅是从数据中心管理员视角实现了资源利用率和能效比的提升,与真正的面向多租户的自动化云服务模式仍然相差甚远。因为在云计算进一步走向普及深入的新阶段,通过虚拟化整合之后的资源池的服务对象,不能再仅仅局限于数据中心管理员本身,而是需要扩展到每个云租户。因此云平台必须在基础设施资源运维监控管理Portal的基础上,进一步面向每个内部或者外部的云租户提供按需定制基础设施资源,订购与日常维护管理的Portal或者API界面,并将虚拟化或者物理的基础设施资源的增、删、改、查等权限按照分权分域的原则赋予每个云租户,每个云租户仅被授权访问其自己申请创建的计算、存储以及与相应资源附着绑定的OS和应用软件资源,最终使得这些云租户可以在无须购买任何硬件IT设备的前提下,实现按需快速资源获取,以及高度自动化部署的IT业务敏捷能力的支撑,从而将云资源池的规模经济效益,以及弹性按需的快速资源服务的价值充分发掘出来。

4.差别4:数据规模从小规模走向海量,数据形态从传统结构化走向非结构化和半结构化

站在云计算系统需要提供的处理能力角度看,随着智能终端的普及、社区网络的火热、物联网的逐步兴起,IT网络中的数据形态已经由传统的结构化、小规模数据,迅速发展成为有大量文本、大量图片、大量视频的非结构化和半结构化数据,数据量也是呈几何指数的方式增长。

对非结构化、半结构化大数据的处理而产生的数据计算和存储量的规模需求,已远远超出传统的Scale-Up硬件系统可以处理的,因此要求必须充分利用云计算提供的Scale-Out架构特征,按需获得大规模资源池来应对大数据的高效高容量分析处理的需求。

企业内日常事务交易过程中积累的大数据或者从关联客户社交网络以及网站服务中抓取的大数据,其加工处理往往并不需要实时处理,也不需要系统处于持续化的工作态,因此共享的海量存储平台,以及批量并行计算资源的动态申请与释放能力,将成为未来企业以最高效的方式支撑大数据资源需求的解决方案选择。

5.差别5:企业和消费者应用的人机交互计算模式,也逐步从本地固定计算走向云端计算、移动智能终端及浸入式体验瘦终端接入的模式

随着企业和消费者应用云化演进的不断深入,用户近端计算、存储资源不断从近端计算剥离,并不断向远端的数据中心迁移和集中化部署,从而带来了企业用户如何通过企业内部局域网及外部固定、移动宽带广域网等多种不同途径,借助固定、移动,乃至浸入式体验等多种不同瘦终端或智能终端形态接入云端企业应用的问题。面对局域网及广域网连接在通信包转发与传输时延不稳定、丢包以及端到端QoS质量保障机制缺失等实际挑战,如何确保远程云接入的性能体验达到与本地计算相同或近似的水平,成为企业云计算IT基础设施平台面临的又一大挑战。

为应对云接入管道上不同业务类型对业务体验的不同诉求,业界通用的远程桌面接入协议在满足本地计算体验方面已越来越无法满足当前人机交互模式发展所带来的挑战,需要重点聚焦解决面向IP多媒体音视频的端到端QoS/QoE优化,并针对不同业务类别加以动态识别并区别处理,使其满足如下场景需求。

普通办公业务响应时延小于100ms,带宽占用小于150Kbps:通过在服务器端截获GDI/DX/OpenGL绘图指令,结合对网络流量的实时监控和分析,从而选择最佳传输方式和压缩算法,将服务端绘图指令重定向到瘦客户端或软终端重放,从而实现时延与带宽占用的最小化。

针对虚拟桌面环境下VoIP质量普遍不佳的情况,缺省的桌面协议TCP连接不适合作为VoIP承载协议的特点:采用RTP/UDP代替TCP,并选择G.729/AMR等成熟的VoIP Codec;瘦客户端可以在支持VoIP/UC客户端的情况下,尽量引入VoIP虚拟机旁路方案,从而减少不必要的额外编解码处理带来的时延及话音质量上的开销。上述优化措施使得虚拟桌面环境下的话音业务MOS平均评估值从3.3提升到4.0。

针对远程云接入的高清(1080p/720p)视频播放场景:在云端桌面的多虚拟机并发且支持媒体流重定向的场景下,针对普通瘦终端高清视频解码处理能力不足的问题,桌面接入协议客户端软件应具备通过专用API调用具备瘦终端芯片多媒体硬解码处理能力;部分应用如Flash以及直接读写显卡硬件的视频软件,必须依赖GPU或硬件DSP的并发编解码能力,基于通用CPU的软件编解码将导致画面停滞、体验无法接受,此时就需要引入硬件GPU虚拟化或DSP加速卡来有效提升云端高清视频应用的访问体验,达到与本地视频播放相同的清晰与流畅度。桌面协议还能够智能识别并区分画面变化热度,仅对变化度高且绘图指令重定向无法覆盖部分才启动带宽消耗较高的显存数据压缩重定向。

针对工程机械制图、硬件PCB制图、3D游戏,以及最新近期兴起VR仿真等云端图形计算密集型类应用:同样需要大量的虚拟化GPU资源进行硬件辅助的渲染与压缩加速处理,同时对接入带宽(单路几十到上百M带宽,并发达到数10G/100G)提出了更高的要求,在云接入节点与集中式数据中心站点间的带宽有限的前提下,就需要考虑进一步将大集中式的数据中心改造为逻辑集中、物理分散的分布式数据中心,从而将VDI/VR等人机交互式重负载直接部署在靠近用户接入的Service PoP点的位置上。

另一方面,正当全球消费者IT步入方兴未艾的Post-PC时代大门之时,iOS及Android移动智能终端同样正在悄悄取代企业用户办公位上的PC甚至便携电脑,企业用户希望通过智能终端不仅可以方便地访问传统Windows桌面应用,同样期待可以从统一的“桌面工作空间”访问公司内部的Web SaaS应用、第三方的外部SaaS应用,以及其他Linux桌面系统里的应用,而且希望一套企业的云端应用可以不必针对每类智能终端OS平台开发多套程序,就能够提供覆盖所有智能终端形态的统一业务体验,针对此BYOD云接入的需求,企业云计算需在Windows桌面应用云接入的自研桌面协议基础上,进一步引入基于HTML5协议、支持跨多种桌面OS系统、支持统一认证及应用聚合、支持应用零安装升级维护,及异构智能终端多屏接入统一体验的云接入解决方案——Web Desktop。

6.差别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.差别7:云平台和云管理软件从闭源、封闭走向开源、开放

从云计算平台的接口兼容能力角度看,云计算早期阶段,闭源VMware vSphere/vCenter、微软SystemCenter/Hyper-V云平台软件由于其虚拟化成熟度遥遥领先于开源云平台软件的成熟度,因此导致闭源的私有云平台成为业界主流的选择。然而,随着XEN/KVM虚拟化开源,以及OpenStack、CloudStack、Eucalyptus等云操作系统OS开源软件系统的崛起和快速进步,开源力量迅速发展壮大起来,迎头赶上并逐步成长为可以左右行业发展格局的重要决定性力量。仅以OpenStack为例,目前IBM、HP、SUSE、Redhat、Ubuntu等领先的软硬件公司都已成为OpenStack的白金会员,从2010年诞生第一个版本开始,平均每半年发布一个新版本,所有会员均积极投身到开源贡献中来,到目前为止已推出13个版本(A/B/C/D/E/F/G/H/I/J/K/L/M),繁荣的社区发展驱动其功能不断完善,并稳步、快速地迭代演进。2014年上半年,OpenStack的成熟度已与vCloud/vSphere 5.0版本的水平相当,满足基本规模商用和部署要求。从目前的发展态势来看,OpenStack开源大有成为云计算领域的Linux开源之势。回想2001年前后,当Linux OS仍相当弱小、UNIX操作系统大行其道、占据企业IT系统主要生产平台的阶段,多数人不会想象到仅10年的时间,开源Linux已取代闭源UNIX,成为主导企业IT服务端的缺省操作系统的选择,小型机甚至大型机硬件也正在进行向通用x86服务器的演进。

本书下面的内容将重点围绕云计算出现的这些新变化来讲述云计算的架构技术。