您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
OpenStack 技术及架构设计思路解读
 
作者:张志强
  1272  次浏览      16
 2021-1-12
 
编辑推荐:
本文将主要和大家一起复盘云计算的发展史和相关概念,并浅谈一下流行的OpenStack云管理平台的架构设计思路。
本文来自于个人图书馆,由Alice编辑、推荐。

云计算的发展

说起云计算想必大家都很熟悉,它被视为科技界的革命性产物,极大可能的改变人们的工作方式和商业模式的运作。但是它并不是从石头缝中突然蹦出来的,而是经过了诸多技术的成熟和演变诞生的。云计算吸收了之前并行计算、分布式计算和网格计算的优势,借助虚拟化、效用计算等技术混合而成。按照资源形态来分,主要经历了以下不同的发展阶段:

图1-云计算的发展

资源分散时代

IT发展初期,百废待兴。所有的系统处于分散零落的状态,哪里需要IT系统,就在哪里构建,IT资源分散,架构不清晰。业务资源和数据资源相对分散,IT管理模式较为落后,浪费了很多的IT资源。各种IT设备五花八门,问题层出不穷。

资源大集中时代

这个时代主要解决了企业IT资源分散管理难和容灾的问题。将企业分散的数据资源、IT 资源进行了物理集中,形成了规模化的数据中心基础设施。在数据集中过程中,不断实施数据和业务的整合,大多数企业的数据中心基本完成了自身的标准化,使得既有业务的扩展和新业务的部署能够规划、可控,并以企业标准进行IT 业务的实施,解决了数据业务分散时期的混乱无序问题。在这一阶段中,很多企业在数据集中后期也开始了容灾建设。企业的容灾中心建设普遍受到重视,以金融为热点行业几乎开展了全行业的容灾建设热潮,并且金融行业的大部分容灾建设的级别都非常高,面向应用级容灾(数据零丢失为目标)。总的来说,解决了企业IT 分散管理和容灾的问题。

资源虚拟化时代

随着企业的快速发展,数据中心IT 基础设施扩张迅速,但是系统建设成本高、周期长,即使是标准化的业务模块建设,软硬件采购成本、调试运行成本与业务实现周期并没有显著下降。标准化并没有给系统带来灵活性,集中的大规模IT 基础设施出现了大量系统利用率不足的问题,不同的系统运行在独占的硬件资源中,效率低下导致资源浪费,而数据中心的能耗、空间问题逐步突显出来。因此,以降低成本、提升IT 运行灵活性、提升资源利用率为目的的虚拟化开始在数据中心进行部署。虚拟化屏蔽了不同物理设备的异构性,将基于标准化接口的物理资源虚拟化成逻辑上也完全标准化和一致化的逻辑计算资源(虚拟机)和逻辑存储空间。虚拟化可以将多台物理服务器整合成单台,每台服务器上运行多种应用的虚拟机,实现物理服务器资源利用率的提升,由于虚拟化环境可以实现计算与存储资源的逻辑化变更,特别是虚拟机的克隆,使得数据中心IT 实施的灵活性大幅提升,业务部署周期可用数月缩小到一天以内。虚拟化后,应用以VM 为单元部署运行,数据中心服务器数量可大为减少且计算能效提升,使得数据中心的能耗与空间问题得到控制。通过虚拟化,提升了企业IT 架构的灵活性,数据中心资源利用率有效提高,运行成本降低。

云计算时代

对企业而言,数据中心的各种软硬件系统是一大笔很大的资源投入。系统在建成后一般经历3-5 年硬件方面将面临逐步老化与更换,而软件技术则不断面临升级的压力。另一方面,IT 的投入难以匹配业务的发展需求,即使虚拟化后,也难以解决不断增加的业务对资源的变化需求,在一定时期内扩展性总是有所限制。云计算可以使IT 资源弹性扩展、按需服务,将服务作为IT 的核心,提升业务敏捷性,进一步大幅降低成本。因此,面向服务的IT 需求开始演化到云计算架构上。云计算架构可以由企业自己构建,也可采用第三方云设施,但基本趋势是企业将逐步采取租用IT 资源的方式来实现业务需要,如同水力、电力资源一样,计算、存储、网络将成为企业IT 运行的一种被使用的资源,无需自己建设,可按需获得。解决了IT 资源的动态需求和最终成本问题,使得IT 部门可以专注于服务的提供和业务运营。

什么是云计算?

云计算的概念已经由来很久了,各种版本不一。从物理上讲,就是将所有的计算资源、网络资源、存储资源及应用等资源从本地挪到互联网的一个集中区域去计算。之后通过网络进行互联,获得相关的结果。从逻辑上讲,就是改变了传统IT的服务模式,从大锅饭到按需分配的进化。就像我们用水用电一样,你不需要自己购买发电机,购买水泵,只需要通过电卡或者水卡充值购买即可,根据自己的使用需求。

简单地说云计算是一种未来引领技术发展的主要架构之一,很多的应用都基于云计算。云提供商通过云端应用提供各种多元化的服务到用户端,用户只需要使用即可,不需要额外的运维和维护成本。

总之云的最大特点就是按需汲取、随时扩展和按量计费。

图2-云计算

云计算的类型

云计算是个很大的概念,不同的业务场景会需要不同的云计算框架和应用。为此从业务的应用场景可分为公有云、私有云和混合云。

1.公有云

公有云从文字上就可以看出,云被建立在第三方的区域,而不是自己建立的。一般是由第三方机构进行建立并通过互联网提供各种各样的应用给用最终使用者。公有云厂商按照用户的需求,进行资源的分配,提供各种不同层级的服务给用户。国内类似阿里云、华为云、京东云,国外类似AWS和微软的Azure等。

2.私有云

私有云顾名思义,就是云平台由自己企业内部建立,不对外提供服务。所有资源自给自足,按照企业的实际情况进行弹性伸缩。私有云的初期构建成本较高,长期看是比传统IT的投资要低。从控制权上来讲,私有云较公有云具备更好的控制权。

3.混合云

混合云是指将公有云和私有云通过专线进行互联互通,既可以享受公有云的速度与强大的计算能力,又可以保证数据存储在企业在私有云中保证数据的安全可控。因此,混合云也是未来企业主要的服务模式和发展方向。

主流云平台

目前云平台主要分为两大阵营,开源系和商业系,其主要目的是管理云资源和提供云服务。两大阵营的代表产品有开源的云管平台OpenStack和商业平台领导者VMware。

VMware与OpenStack相比,是两种截然不同的设计架构和理念。无论是从设计、安装部署、功能和维护方面都有较大的差异。虚拟化领域的领导者VMware套件是以虚拟化技术为核心,通过其强悍的虚拟化能力,虚拟计算资源、网络资源和存储等资源提供灵活的资源分配能力。其ESXi是当前最流行、最稳定的虚拟机管理系统。其提供优秀的部署架构和稳定的运行平台。做为商业软件,VMware自然经过了全面的测试,并且具有单一的部署架构,简单明了。由于VMware具有健壮的架构和稳定的部署机制,成为很多高规格用户在数据中心级环境中的首选。

而OpenStack作为一个开源系统,没有任何一家单独的公司控制OpenStack的发展路线。OpenStack本身是年轻的,但是却具有巨大的市场动力,与此同时,很多大公司都在支持OpenStack的发展,例如IBM、Dell、HP等。有了如此多公司的资源投入,OpenStack的发展将是多元化的。

作为企业IT决策者,可以根据自身的实际需求和技术考量来决定使用哪一种云平台,提供适合业务发展的计算基础。

云计算的服务模式

云服务的类型主要分为三种,基础设计即服务(IAAS)、平台即服务(PAAS)和软件即服务(SAAS)。为了理解,以前将使用各种服务的简称。

1.IAAS

基础设施即服务算是整个云平台中最基础也是最重要的一块,处于PAAS层以下。用于提供各种资源给应用,比如计算资源、网络资源、存储资源和其他优化性资源,如vCDN加速、云防护等。

国内外提供这种层面的服务商很多,比如AWS、阿里等等。用户只需要安装自己的操作系统和应用即可,底层硬件无需知晓。

2. PAAS

平台即服务包括IAAS层和基础开发环境。位于IAAS层的上方,用户无需自己安装各种软件开发环境,只需要申请相关的环境后,进行开发即可。开发环境以下的部分均由云提供商负责。使开发人员仅仅关注自己的开发上,提高了开发的效率和质量。

3.SAAS

算是更为灵活的一种服务交付模式,用户无需投入任何的资源进行软件的开发和运营。只需要通过互联网连接到自己需要的软件即可工作。SAAS改变了很多企业的服务模式,实现了应用的灵活扩展和安全提供服务。类似Google的Gmail、微信、钉钉等,数不胜数。

图3-云服务类型

OpenStack的前世今生

由上文可知,OpenStack是开源云管平台之一,可以通过其对虚拟化资源进行调度管理,帮助企业快速实现云的建设与业务价值释放。

什么是OpenStack?

学习OpenStack之前大家一定要先知道什么是OpenStack。OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

OpenStack本身是一个属于IAAS层的服务,用于对基础设施的管理,如计算资源、存储资源和网络资源等。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。

OpenStack组件介绍

OpenStack是由多个关键的组件组成,相互之间通过消息队列进行通信,当然只是其中一种,还有API等方式。多种组件相互配合,最终完成用户在OpenStack平台上的各种动作。随着时间的推移,越来越多的组件被开发用于优化OpenStack平台,完善平台功能。以下简单介绍一下几个主要的核心组件,每个组件都有个好记的代号,比如Nova、Glance、Keystone、Ceilometer、Horizon、Cinder、Swift、Heat等等,其余的组件,大家可以访问OpenStack官方进行学习。

图4-组件连接图

1.控制组件

控制节点和它的名字一样,是对其余各个类型节点的管理。主要包括管理支持服务、基础管理服务和扩展管理服务。如MySQL、消息队列,其它支持组件等。

2.计算组件

代号为Nova,主要用于虚拟化资源的载体,提供各种虚拟机的建立。分配各种计算资源到虚拟机,如CPU、内存等。此节点相对于其他节点来说,需要更多的CPU和内存资源。

3.镜像组件

代号为Glance,主要用于提供OpenStack平台的镜像服务。负责磁盘和服务器虚拟镜像的查询、注册和传输的功能。Glance本身其实并不存储镜像,它只是一个代理,充当镜像存储服务和其他Openstack组件之间的纽带。所有的磁盘和镜像存储在OpenStack的后端服务上,比如对象存储系统或者本地存储系统中。

4.块存储组件

代号为Cinder,主要提供OpenStack的块存储服务,为云环境提供块设备的创建、添加和卸载。Cinder目前支持多种主流的存储平台(Linux server storage ,Ceph,CloudByte,Coraid,EMC(VMAX and VNX),GlusterFS,IBM Storage(Storwize family,SAN Volume Controller,and XIV Storage System),Linux LIO,NetApp,Nexenta,Scality,SolidFire and HP(Store Virtual and StoreServ 3Par falilies)。块设备适用于对应性能要求较高的应用场景,比如数据库。块设备的快照功能可以实现基于块存储卷的数据备份,而且也可以利用快照进行数据恢复。

5.网络组件

代号为Neutron,主要提供OpenStack的网络服务,之前的代码为Quantum,后改名为Neutron。Neutron提供云计算环境下的虚拟网络功能,目的是为OpenStack云更灵活地划分物理网络,在多租户环境下提供给每个租户独立的网络环境。该模块最开始是 Nova 的一部分,叫 nova-network,后来从 Nova 中分离出来。该模块之所以重要是因为如果没有虚拟网络服务,OpenStack 就变为单纯提供虚拟机实例和虚拟存储服务的平台,这就违背了提供分布式虚拟服务的云计算核心价值。

6.认证组件

代号为KeyStone,主要提供了用户目录的集中式存储,以及相关的授权服务,便于其他OpenStack服务的访问。提供创建用户和租户,并且以基于角色的方式限制用户租户访问云计算中的计算、网络、存储等资源。

7. 对象存储组件

代号为Swift,是OpenStack所有组件中最早的之一,还有一个是Nova组件。主要提供对象存储,存储的是一些资源文件,如图片、代码等文件。在OpenStack平台中,任何的数据都是一个对象。是一个可扩展并且提供了冗余的存储系统。

OpenStack发展路线

OpenStack经过9年多的演进,版本也从最早的Austin版本发展到了现在最新的Queens版本。功能上不断的完善,组件兼容性越发稳定。以下是出自官方的OpenStack版本Release时间表。

(本文首发于2018年,相关版本信息请以官网最新发布为准)

通过众多企业及社区专业人士的代码贡献,OpenStack平台将会越来越稳定,承载越来越多的关键服务。

OpenStack架构设计思路

OpenStack是一个灵活性非常强的云管理平台,各种组件灵活搭配,实现单一或者冗余的不同架构。所有的架构都应按照不同的业务场景进行设计,没有任何的架构是万年不变的,所以要求云平台架构师要深入的理解业务需求,从而设计一个符合需求的好架构。一个楼能盖多高就要看它的地基好不好,骨架合不合理。

下文将主要讲两个典型的OpenStack架构,单一架构不在这次的讨论范围内,因其主要是用于测试和学习环境,不具备生产环境的要求。

典型架构——基本节点部署方式

业务场景:

公司IT主要要求搭建一套基于OpenStack的私有云平台系统。主要承载公司内部的非核心系统及一些轻应用。要求IT可用率必须满足两个9,业务对实时在线要求不高。

架构设计:

经分析,架构设计不需要过于复杂。在TCO控制得当的情况下,只需要满足基本的功能即可,无需投入更多的高可靠功能。

如上图所示,主要包括3个控制节点(含网络节点)、N个计算节点(根据实际情况自定决定)、1个块存储节点及1个镜像节点。控制节点和网络节点实现了冗余,保证了主要功能的高可用。由于对业务实时性要求不高,所以VM都存储在Nova节点的本地,无法自动实现迁移,出故障后需要管理员介入。管理流量通过千兆网卡,数据流量通过万兆网卡传输,保证了数据的隔离。

典型架构——高可用节点部署方式

业务场景:

同样的场景,不同的是老板要求业务的实效性和平台的高可靠性。主要承载公司的核心系统,比如邮件系统、OA系统、SRM等关键系统。

架构设计:

经分析,这样的架构要求要比第一个场景复杂很多。架构师要考虑平台的高可靠,同时也要确保问题发生后,对业务应用没有影响,或者说影响到最低。

如上图所示,主要包括3个控制节点(含网络节点)、N个计算节点(根据实际情况自定决定)、2个块存储节点、1个镜像节点以及1个自动化部署工具节点。同时采用了IBM GPFS分布式文件系统对计算节点数据进行存储,3副本存储。这种架构保证了平台功能的高可用,同时也确保了数据的可靠性和高可用。由于对业务实时性要求高,所以VM都存储在GPFS存储中,可以自动实现迁移,出故障后无需管理员介入。管理流量通过千兆网卡,数据流量通过万兆网卡传输,保证了数据流量的隔离。

总结

云计算是个未来技术发展的趋势,会随着业务的不同,发展出不同的云架构。OpenStack做为开源云管理平台之一,在众多热心技术人员和多家公司的鼎力支持下,已经越来越稳定,成为众多企业的私有云甚至公有云的首选平台。但是对于未来的发展,OpenStack依然面临很多的挑战。

1) 技术方面:

OpenStack属于开源软件,很多组件是由不同的个体或者机构自行开发的。组件过多,导致整体OpenStack的安装部署相对于成型的商业软件较为复杂。由于没有专业的测试团队在社区,所以拍错和升级较苦难。

2) 投资方面:

OpenStack的发展离不开资金的支持。在9年多的发展过程中,得到了多家国际IT巨头的支持与代码奉献。各家公司在这方面投入的资金也相对较大。由于是开源环境,运维难度高,所以人力成本和研发成本也是很高的。

3) 市场方面:

现在商业成熟的产品很多,比如VMware、Hyper-V cloud等。所以OpenStack要与这些厂商争夺地盘,必须想办法突出自身的技术优势,优化自己的技术劣势。从现在趋势来看,还是任重而道远。

不管在今天还是未来,在社区和热心贡献者的共同努力下,OpenStack在发展上将得到更多的支持,技术上变得越发成熟稳定,市场占有率也会大幅提升。

 

   
1272 次浏览       16
相关文章

云计算的架构
对云计算服务模型
云计算核心技术剖析
了解云计算的漏洞
相关文档

云计算简介
云计算简介与云安全
下一代网络计算--云计算
软浅析云计算
相关课程

云计算原理与应用
云计算应用与开发
CMMI体系与实践
基于CMMI标准的软件质量保证
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]
 
最新文章
云原生架构概述
K8S高可用集群架构实现
容器云管理之K8S集群概述
k8s-整体概述和架构
十分钟学会用docker部署微服务
最新课程
云计算、微服务与分布式架构
企业私有云原理与构建
基于Kubernetes的DevOps实践
云平台架构与应用(阿里云)
Docker部署被测系统与自动化框架实践
更多...   
成功案例
北京 云平台与微服务架构设计
通用公司GE Docker原理与实践培训
某军工研究单位 MDA(模型驱动架构)
知名消费金融公司 领域驱动设计
深圳某汽车企业 模型驱动的分析设计
更多...