文 | 中国工商银行数据中心(上海) 马国祥 曾金
OpenStack作为一个开源云计算项目,经过7年多的发展,目前已进入规模部署阶段。OpenStack基金会用户调查报告显示,2017年OpenStack全球最新部署比2016年增长了95%(2016年年增长率是23%),超过80个国家和地区的企业都有部署,管理着超过500万个处理器核心。OpenStack已经成为IaaS的事实标准,同时,OpenStack开源社区活跃度持续攀升,成为仅次于Linux的第二大开源社区。
2017年,经过多年的技术探索,工商银行基于OpenStack并通过自研云管理平台(CMP)搭建了基础设施云,完成了6个云机房模块的建设,同时在纪念币应用端到端试点的基础上,完成企业网银、个人网银和手机银行等应用的生产迁移部署。通过打通计算、存储、网络实现了基础IT资源的自动化供应,为应用快速部署提供了基础IT资源层的保障。
一、OpenStack优势分析
OpenStack在IaaS云尤其是私有云领域能够得到广泛采用,从技术角度看,得益于以下几个方面。
1.开源
OpenStack的开源不但表现在OpenStack本身是一个开源项目(如计算模块Nova、对象存储Swift等),更为重要的是OpenStack在设计时,将主流的开源计算、存储、网络作为其默认实现方式进行整合,例如计算虚拟化采用开源KVM、存储后端采用Ceph、网络虚拟化采用OVS等,理论上用户只要购买最基本的硬件服务器和传统交换机,全部采用开源软件就可以搭建出自己的IaaS云(实际上很多公有云厂商如EasyStack、腾讯云就是采用这种方式进行自己的IaaS云建设)。另外,OpenStack开源表现在其采用的技术架构都是开源软件,例如利用DHCP使用的Dnsmasq、数据库采用的Mysql、队列采用的RabbitMQ等都是开源软件。
2.开放
OpenStack设计的一个重要理念是建立广泛的生态系统,来吸引主流开源软件及设备厂商共同壮大其生态环境。OpenStack采用分层解耦的架构设计,各供应商只需提供遵从OpenStack模型规定接口的Driver或Plugin,就可以实现自身设备的入云管理。
3.统一建模
相比早期金融行业尝试自研的IaaS平台,OpenStack的统一建模体现在三个方面。
(1)统一纳管计算、存储、网络,并以网络为中枢进行统一建模,打通基础IT资源供应当中各专业间及专业内部存在的断点(这些断点在传统环境主要表现在通过ServiceDesk提交工单流传变更才能完成),实现基础IT资源的一键式供应。
(2)资源全生命周期管理。OpenStack的资源模型实现了全生命周期的闭环管理,资源从入云、分配、变更及回收都纳入模型控制范围并统一入口管理,确保资源管理的有效性。
(3)软件描述基础设施模型及事前配置管理。OpenStack的所有模型都是软件描述的,为此OpenStack进行了大量基础设施的标准化工作,这种标准化的模型保证了分配的每一个资源可以得到从分配到变更到回收的全生命周期管理;另外一个重要方面,模型配套的配置管理数据库(CMDB)是整个基础设施管理的核心和主数据源,OpenStack的处理方式是先更新数据库再进行设备配置的实际更改,确保所有资源的分配和设备的配置都能够在CMDB中进行记录。
4.先进的软件架构
OpenStack软件是一个松耦合的架构,组件之间通过RESTful API进行通信;组件内部不同服务进程之间通过消息总线进行通讯。这种设计思想保证了各个项目对外可以被不同类型的客户端接受,同时也保证了内部项目通信接口的可扩展性和可靠性,以支持规模部署;另外,OpenStack组件一般都由API层、调度处理层、Drive层组成,通过分层解耦确保架构的开放性;最后,OpenStack通过Keystone和Token方式进行API认证访问,确保了OpenStack应用安全(如图1所示)。
图1 OpenStack组件建构示意
总之,OpenStack是一个对基础设施相关的计算、存储、网络资源进行管理的平台,同时也是一个丰富的开源软件综合应用的软件工程,无论直接采用OpenStack还是自己研发IaaS,OpenStack都是一个绕不开的主题。企业通过采用OpenStack构建私有云,可以有效提升基础IT资源利用和供应效率,支持安全可控和自主创新,最终支撑企业IT更好地服务业务应用。
二、OpenStack面临的挑战
OpenStack在突飞猛进发展的同时,面临着组件复杂的问题,另外随着容器等技术的兴起,OpenStack的定位也面临着一些新的挑战。
1.OpenStack的高复杂导致生产环境部署难,稳定性和产品化程度不足
OpenStack的火热在一定程度上放大了业界对它的期望,导致了OpenStack项目的急剧膨胀。OpenStack除了较为成熟的几大核心组件项目外(如图2所示),还发起成立了一系列外围组件项目(如图3所示),另外还有几十个孵化项目。
图2 OpenStack核心项目
图3 OpenStack外围项目
大部分外围项目及孵化项目出发点是满足客户多样化的需求,但同时导致了OpenStack项目复杂,成熟度不高,在实际生产环境迟迟无法投入使用。
2.OpenStack的开源不代表免费,对企业的IT投入尤其人员投入的要求很高
OpenStack几乎就是一个开源的组合体,企业出于解决基础IT资源快速供应的问题引入OpenStack,但给OpenStack集成和软件维护带来一个很大的挑战,一是OpenStack复杂多变的组件产品化程度很低,很少有企业在不进行人员或商业投入的前提下全面照搬OpenStack建设一个完整的云体系;二是OpenStack分层解耦的架构在带来开放的同时,会使软件体系架构变得笨重繁杂,再加上各供应商提供的Driver或Plugin质量参差不齐,产品化程度较低,整个系统对技术人员的技术能力要求很高。
3.容器等新兴平台技术的兴起使业界重新审视OpenStack的作用
OpenStack规划了应用编排、负载均衡、弹性扩缩、文件供应、队列供应、数据库供应、DNS配置、Hadoop、监控集群供应等一些列功能组件,目标是提供一个涵盖从技术到产品再到应用的整个生态链。但随着容器、Kubernets、分布式平台的兴起,OpenStack在基础设施层面擅长的统一建模、分层解耦的优势带来的架构复杂度与平台服务层面更为看重的敏捷灵活方面出现了一些矛盾,服务标准化和敏捷性关系如图4所示。
图4 服务标准化和敏捷性关系示意
以容器为例,OpenStack就出现了Nova Docker、Magnum、Zun等诸多组件项目,Nova Docker试图借用虚拟机的管理方式管理Docker,而Magnum试图整合Kubernates、Mesos、Swarm提供统一的容器平台,Zun试图独立于Nova之外部署Docker调度框架,另外还出现了Fuxi和Kuryr项目专门配合解决Docker的持久化存储和IP分配问题。当OpenStack的开发者还在从资源供应角度讨论如何实现和落地实施时,以Kubernates为首的容器编排在应用研发和部署人员的推动下通过其轻量灵活的架构已经在纷纷落地。云计算整个生态链条很长,技术在飞速创新与发展,OpenStack生态圈如何在满足客户多样化的需求和项目快速落地间进行取舍也是挑战之一。
4.OpenStack的管理能力无法承载起做开源云管理平台的能力
在起步阶段,OpenStack被视为亚马逊云(AWS)的一个潜在的开源答案,但从目前规模来看,其不超过1000台的管理能力远远达不到做为一个大型企业云管理平台的能力,其模型的region、zone的格局太小,无法满足多地多中心的布局要求。从实际落地实施的部署来看,OpenStack是作为一个大型资源池管理套件,统一管理一个资源池的计算、存储、网络资源,这些位于不同DC的资源池需要通过企业级云平台实现统一管理。另外,针对整个IT基础设施,OpenStack设计是以计算为中心,管理的是DC内部的服务器资源池及配套的网络、存储资源,而对于应用端到端需要的DC接入网络、终端系统等无法涵盖。
三、后续OpenStack在金融行业的应用思考
1.为平台及软件云提供基础IT资源供应服务
OpenStack做为大规模云化资源池管理套件,是金融行业采用虚拟化、标准化、自动化实现计算、存储、网络等基础IT资源池化和快速供应的基础。采用OpenStack作为资源池管理套件,利用其标准化和开放的API提供给上层CMP平台进行统一管理可以在有效的降低开发成本的基础上实现基础IT资源池的异构管理,进一步提升自主可控能力。
2.提升云资源供应能力,丰富CMP的云服务能力
(1)根据生产、测试、研发、托管、桌面等应用场景研究适合金融行业云建设思路,同时进一步明晰Cloud、Region、DC、AZ等高阶概念,在此基础上考虑总部及分支机构机房环境,结合OpenStack资源池管理推进集团内云资源池合理布局。
(2)充分依赖平台层的能力为OpenStack减负,将容器编排、应用层弹性伸缩、服务器负载均衡、应用部署编排、自助备份、应用DNS等功能从OpenStack中独立出来,提升应用部署的敏捷性,保证IaaS层面的技术稳定性。
(3)充分借鉴OpenStack统一建模、分层架构和自助服务的思想,通过CMP纳管更多的基础设施组件(如网络层负载均衡、接入网络、互联网接入DNS、接入防火墙、备份等),丰富基础设施云服务目录,实现基于应用或租户的自助化服务,以支撑应用端到端的快速部署(如图5所示)。
图5 IaaS功能与OpenStack定位
(4)从目前来看,平台层和基础设施层的分层带来的一些差异不可能完全消除,依然需要利用OpenStack的基础设施供应能力为平台层提供服务,例如为Kubernates集群中的Docker提供网络多租户隔离安全互联及持久化存储支持。
(5)利用OpenStack新功能持续完善基础资源域规划和支持,例如逐步支持GPU、HPC等新型资源域的建设和应用。
总体来说,OpenStack依然是金融行业基础设施云建设中最重要的资源池管理套件,但基础设施云不仅仅是OpenStack,而是以CMP为核心,通过推进集团云资源池合理布局、扩大基础IT组件纳管范围并增强应用自服务能力,以提升基础IT资源利用效率,加快应用部署速度,并提升运维管理效率,助推金融行业数据中心实现从运维到运营的转型。
声明:本文来自中国金融电脑,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。