1.3 云计算架构设计与进阶路线

1.3.1 云计算生态模型

在进行云计算架构设计之前,我们有必要了解清楚云计算生态链由哪些角色和环节构成,从而在我们的云计算架构设计过程中,才能清楚定位哪些模块对应生态链中的哪些角色,最后在云计算项目的实施过程中,我们仍然需要整合或借助云计算生态链中的诸多角色资源才能最终建设自己的云计算平台。目前云计算生态链主要有六大角色:云设备供应商、云系统构建商(云平台开发商、系统集成商)、云应用开发商、云服务运营商(云资源服务提供商、云平台服务提供商、云应用服务提供商)、云服务部署/交付商、云服务销售商和最终用户。其中,云服务销售商、云服务部署商、云系统构建商、云应用开发商、云软硬设备供应商均是面向云服务运营商提供服务的,而云服务运营商主要面向最终用户提供IaaS、PaaS、SaaS服务,云计算生态链各角色之间的关系如图1-7所示。

图1-7 云计算生态链角色关系

云生态链上各个不同的角色分工明确,不同层次的角色需要依赖其他角色提供的服务才能存在。商业伙伴合作机构(Business Partner Consulting, BPC)基于对云计算领域各类企业业务结构的分析与归纳,根据企业面对客户群的不同,为云计算生态链定义了6种不同的角色类型,在此基础上根据业务结构的差异细分出了12个业务渠道角色,这些不同类型的渠道角色组成了一个标准的云生态系统模型http://www.chinacloud.cn/show.aspx? id=19249&cid=13,如图1-8所示。在BPC的云计算生态模型中,渠道角色的层次由上到下递增,下层角色的实现需要依赖上层角色,例如云系统构建商需要云设备提供商提供的软硬件设备,云应用开发商又需要云系统构建商的软硬件集成服务,而云服务运营商在正式提供云服务之前,必须由云应用开发商进行各种行业或通用软件的开发,同时云服务部署商需要使用云运营商的云服务来盈利和进行商业活动。

图1-8 BPC标准云生态模型

当然,对于特定的企业而言,不可能全部覆盖云生态链中的每一个角色。根据企业对于自己业务性质的定位,每个企业在进行云计算建设时参与其中的云生态链角色也不尽相同。假如企业根据自身业务特性和IT需求决定建设私有云,则云生态链中的云服务运营商和云服务最终用户将合为一体,而如果企业在已有的IT基础设施上建设私有云,而不是重新采购新设备,则云设备提供商就不会参与私有云的建设,同时如果企业自身IT实力较强,无须云系统集成与云应用开发商,那么企业私有云的建设最终将只有企业自身一个角色存在(扮演几乎全部角色),当然这种情况对于企业IT部门的要求是非常高的,所以企业在建设私有云之前,一定要对自身IT人员云计算相关的技术水平进行切实估计,通常,在企业IT人员较为紧张的情况下引入专业的第三方云系统构建和云应用开发商,不失为明智之策。而如果企业对于云计算的建设定位是使用公有云运营商提供的服务,那么对于企业而言,需要考虑的云生态链角色可能就只剩下云服务运营商和云服务部署商了,企业根据自身IT资源的需求,租赁云服务运营商的IaaS、PaaS、SaaS服务,如果企业对于公有云的使用不是很熟悉,或者应用系统无法集成到公有云上,则可以引入云服务部署商,通过云服务部署商将自己的应用集成到公有云上,同时对自己的IT人员进行云服务培训。

1.3.2 云计算架构基本模型

众所周知,虚拟化是支撑云计算的核心技术和基础,而云计算是面向服务架构(SOA)的一种实现,单纯的虚拟化只是迈向云计算的开始。虚拟化技术的主要目的在于提高资源使用率和能耗效率,并将底层硬件与上层软件进行隔离,使得上层软件及应用的计算需求变得弹性可控,同时极大降低服务器的维护成本开销及风险,提供业务系统的快速容灾恢复和高可用性,伴随虚拟化的出现,业务系统跨物理节点的实时迁移也成为可能。但是虚拟化技术默认并不对外提供抽象的服务组件,一个没有被服务化的虚拟化环境只能称为资源池,并且只有内部管理员才能操作,因此这样的虚拟化环境并没有被云化(Cloud-Enable)。对于任何一个云计算架构来说,建立在虚拟化环境上的抽象服务层都是必须的,因为它隐藏了底层复杂的基础架构设施,并向用户提供功能丰富的云管理接口,只有这样,底层基础设施才能被软件定义,从而实现IT资源可编程的灵活控制与访问,图1-9为一个简化的云计算架构模型。

图1-9 简化的云计算参考架构图

在具体的云计算架构实现过程中,每一个厂商或者用户对于抽象服务层的理解都有自己的特点,但是不管架构如何变化,底层物理基础设施层、中间的虚拟化层、上层抽象服务层的云计算架构框架是不变的,1.3.3节将会介绍主流通用云计算参考架构,通过分析这些云计算架构,我们将会在部署和实施云计算之前,对如何设计云计算架构有一个宏观上的认识。

云平台架构的设计最终直接影响到云计算资源的使用,在进一步深化云计算参考架构之前,我们有必要了解在云计算环境下资源的使用和流程应该是怎样的。图1-10显示了云环境下企业对IT资源的使用管理流程,即简单的申请、审批和使用三部曲,使用者首先需要申请使用云资源,然后云管理员需要视情况审批并创建云资源,最后通知申请者领用云资源,同时企业的IT高层应该对本企业的全部IT资源使用运行情况进行全局掌控。这是一个简单的云环境下IT资源的使用管理流程,也是多数云计算参考架构在设计实现时应该具备的功能,因此,在真正准备和实施云计算之前,应该考虑的一个问题是,如果按照此参考架构功能模块来建设,未来的云环境是否可以实现图1-10中描述的基本功能。

图1-10 简化的云服务使用管理流程

1.3.3 通用云计算参考架构

在开始云计算的正式架构与部署实施前,有必要了解通用云计算参考架构的设计模式与组件,然后结合自身实际情况,对通用参考架构的组件进行取舍。参考架构为云计算提供了一个蓝图,蓝图中包括了完整定义的功能模块范围,云计算所要满足的需求条件以及实现云计算的架构决策。云计算参考架构以一种标准化的方法论指导了整个云计算项目从前期规划到后期实施应该参考的每个方面。云计算参考架构也称为CCRA(Cloud Computing Reference Architecture), CCRA定义了构成云计算环境的基本元素,同时CCRA由高层次抽象化的功能模块组成,每个抽象化的模块均可根据需要进行深化细分Dr. Menchita, F. Dumlao. Cloud Computing Reference Architecture from Different Vendor's Perspective [J].International Journal of Emerging Technology and Advanced Engineering: 2013, 3(11): 528-524.。图1-11是IBM提供的云计算参考架构,也是被业界普遍接受的CCRA, IBM的CCRA由面向服务的架构SOA发展而来,其在业务支撑模块和运营支撑模块的细化对于很多公有云和私有云建设都具有很好的参考意义。

图1-11 IBM的云计算参考架CCRA

当然,要理解图1-11中的CCRA,需要事先掌握某些角色和术语。从CCRA的角色层面来看,IBM的CCRA主要定义了三种角色:云计算服务消费者、云计算服务运营者和云计算服务开发者。这种角色定义只是对任何云计算场景中均会出现的角色所做出的角色集合定义,在特定的云计算场景,这些角色均可再细分为更具体的角色。下面是对这三种抽象云角色的概念解释:

❑云服务消费者。云服务消费者可以是一个机构组织,也可以是个人。云服务消费者通过浏览云服务提供者的服务目录来选购自己需要的服务,同时云服务提供者会对这些呈现给消费者的服务进行计量计费。云消费者通过购买云端的资源服务来满足自己的IT资源需求,同时这种服务可以根据消费者的需求随时终止计费和重新启动计费。

❑云服务运营者。云服务运营者也称为云服务提供者,主要负责向云消费者提供云服务。云提供者最核心的部分是通用云管理平台,只有通过云管理平台才能向消费者提供各种云服务模式,如IaaS、PaaS、SaaS等服务。云管理平台通常分为运营支撑系统和业务支撑系统,业务支撑系统主要负责计量计费和账单管理等功能,运营支撑系统主要负责运营商IT资源的运行维护管理。

❑云服务开发者。云服务开发者也是云服务的创建者,虽然其与云服务提供者从角色上进行了独立划分,但是二者也可以同属一个企业组织。云服务创建者主要负责创建可为云消费者使用的云服务,当然这些云服务也必须建立在云运营商提供的云资源上。

CCRA中的三种角色在具体的云计算场景中将会被细分为多种角色,当然,这些角色也并非存在整个云计算环境生命周期中,某些角色的存在可能只是为了特定需求的满足而临时设置。图1-12是对三种云计算角色的细分场景之一,其中云服务提供者又可以细分为很多角色,这些角色囊括了业务层面和运营层面的角色,而云服务消费者和云服务创建者内部也有各种经理角色和管理员角色。

图1-12 CCRA云服务角色细分场景

对于多数企业而言,完全按照图1-11中的CCRA理论模型来进行云计算建设,从技术和成本预算上来看都是难以承受的。更为重要的是,图1-11中CCRA的很多功能模块对于大多数企业而言都是不必要的。或许对于建设公有云而言,该参考架构更贴近于实际模型,但是,如果企业计划自建私有云,则图1-11中云计算参考架构的很多功能模块都可以直接剔除,并且对于私有云的建设而言,云服务消费者、云服务提供者和云服务创建者均为企业自身(也有可能外包部分工作),而且很有可能一人身兼数种角色,所以,没有任何一家计划云计算建设的企业可以完完全全复制CCRA或者其他企业的云计算架构。因此,在标准CCRA的基础上,企业应该根据自身已有的IT基础设施资源和业务需求进行CCRA的定制设计,图1-13即是根据图1-11进行削减定制的CCRA,其架构仍然还是仅具代表性的定制架构,企业可以根据自己的IT设备情况,选择是进行基于powerVM的IBM小型机虚拟化,还是基于KVM、VMware、XenServer或者HyperV的X86平台虚拟化,PaaS层是部署MySQL、MongoDB、Apache等开源软件,还是DB2、Oracle、Weblogic等商业软件,而对于业务支撑系统模块(虚线模块),由于其主要针对计量计费和账单管理等功能,如果企业不打算对外运营自己的云计算服务,完全可以不用考虑,但是对于一个成熟的云计算平台,运营支撑系统模块却是必须的。

图1-13 自定义CCRA

对于大多数企业而言,云计算建设都不是一蹴而就的事情,整个项目的实施可能会经历多个阶段,这就需要企业明白每一个阶段应该完成哪些任务,这些任务完成之后,云化数据中心应该具备哪些功能。通常而言,云计算建设过程根据CCRA的定义,一般由下层到上层递进实施,当然如果人力资源和前期规划充分,也可以多个层次并行实施。就云计算而言,云化数据中心实施的第一步一定是底层基础架构设备的虚拟化,也可以称为资源池化,这一步就目前的虚拟化技术而言,已经相当成熟,功能组件也相当完善,主要需要考虑的还是虚拟化引擎的选择,以及如何整合企业目前已有的IT设备,而不是完全重新采购。随着云化数据中心的成熟,各种自动化运维和监控以及IT资源的流程化管理和访问安全等功能应该被集成到云化数据中心,从而不断向真正成熟的云计算平台靠近。图1-14是云化数据中心在各个阶段应该具有的功能模块参考,其中有些功能模块是可以暂时不用考虑的(虚线模块),当然,如果企业急需某些高级功能,可以将这些功能模块往前移,并且如果认为某些功能模块完全没有必要,也可以将其剔除。

图1-14 云化数据中心不同阶段应具备的功能

1.3.4 云计算实施进阶路线

云计算的建设需要遵循一个循序渐进的过程,不管是公有云还是私有云,其在服务形态和服务内容上都是逐步增强和提高的过程。云计算不是简单的虚拟化,还涉及很多关于镜像、备份、存储、网络、访问控制、数据安全、高可用等相关领域的东西,而这其中的每个领域又都可以继续细分出多个专业领域,例如网络部分就有针对OSI七层模型中不同层次的高可用设计,以及FWaaS、VPNaaS、LBaaS等高层次服务的需求实现。在一个云环境中,一个企业甚至可以针对自己的专长,仅在某一领域深耕发展,例如安全和网络领域就已经很专业了。当然,对于一个成熟的多功能云化数据中心,多方向、多功能递进发展也是很有必要的,尤其是作为公有云运营商,不仅需要对内通过技术手段提升云服务的用户体验,还要不断提升防御各种日夜强化的外部恶意攻击。因此,走上了云,就意味着还有很长的路要走,而且需要循序渐进地往前走。图1-15是传统数据中心迈向云计算的过程参考矩阵,从服务形态上来看,应该就是IaaS到PaaS,然后到SaaS的过程;从服务内容上来看,从最初的虚拟化,随后进入运维管理及部署的自动化,最终实现智能化的过程。

图1-15 传统数据中心的云化过程参考矩阵

对于传统数据中心向云化数据中心的变迁,通常采用云化数据中心成熟度模型来衡量,图1-16即为IBM提出的云化数据中心成熟度模型,这与图1-14描述的不同阶段云化中心应具备的功能模块是相互对应的。一个云化数据中心第一步便是虚拟化,然后进行自动部署和优化管理,并最终进行服务完善,一个服务完善的云化数据中心只需进行服务门户和计费系统等建设便可迈向真正的公有云实现盈利,当然对于私有云而言,这一步是没有必要的。

图1-16 IBM云化数据中心成熟度模型

根据企业自身的功能需求和服务需求,云计算建设过程的进阶路线是不相同的,图1-17是某企业制定的云计算进阶路线图,在该进阶路线中,企业将云计算建设过程分为基础IaaS服务阶段、IaaS环境治理阶段、高级IaaS服务阶段和最终集成ITIL流程的高级IaaS服务阶段。同时在每一个阶段中,根据功能模块的重要性,又将不同的功能模块分为初级阶段必须实现的功能和可以后续再来持续完善的功能,通过这样一个进阶路线的制定,企业便可对自己的云计算建设过程有着明确的掌控:当前在哪一个阶段,本阶段哪些功能必须实现,哪些功能可以留作后续进阶阶段再来实现,下一个阶段是什么,需要做什么。企业制定完进阶路线之后,一切与云计算实施相关的项目进度便可一目了然。

图1-17 云计算进阶路线