【编者按】已经5岁的OpenStack已经成为极富生命力的框架。其简化云部署、构建应用和服务、可扩展性、可管理性等方面都有不俗表现。CSDN于4月举办的OCC(OpenClud2015)的2015OpenStack技术大会中,我们对包含核心、集成发布、孵化、外围在内多个项目的生态环境进行了分析,并力邀数位技术专家分享了深度实践案例。而在业内耳熟能详的PayPal、沃尔玛、携程、去哪儿网、金山、小米等案例之外,国内金融行业在OpenStack方面的实践也已走在前列。下文为CSDN特别向中国银联股份有限公司/电子商务与电子支付国家工程实验室祖立军的约稿。其私有云规模已达1000多台,负责关键生产应用。
以下为正文:
(一)前言
随着中国移动互联网进入实质性的增长期,各种移动互联网设备大量涌现,强烈要求云计算应用的支持,实现数据的实时同步、 异地存取的自由,这一切凸显了云计算的重要性与急迫性。通过对云计算典型案例进行剖析,我们认为云计算是企业级IT技术发展到高级阶段的必然产物。云计算天生是面向“服务”的,和“应用”需紧密结合。因此其对于行业发展,尤其对于高度依赖IT信息技术的银行卡产业具有显著的推动作用。
中国银联在2009年正式启动云计算前瞻性研究。建设过程中,我们依据国际通行的云计算服务架构层次,在统一的计算、存储,网络的资源池之上分别构建了以云资源管理平台与云集成开发与运行平台为核心的IaaS、PaaS服务,并基于IaaS、PaaS构建了智能支付终端平台的SaaS应用,期间产生了多项专利、论文,并已成功通过国家云计算标准认证。其中IaaS建设基于开源OpenStack架构。目前,银联私有云平台已作为公司核心支撑平台在生产环境落地应用,相关关键支付应用已由该平台承载。
(二)私有云研究成果
银联是金融行业最早介入云计算领域,通过三年云计算落地建设,打造出金融行业第一朵云。截至目前,基于OpenStack建设的私有云已经稳定运行1000多天,平台累计具备了11960vCPU、33280G内存和600TB企业级存储计算力,初步建成了包括云资源管理平台(IaaS)、云集成开发平台(PaaS)、智能支付终端平台(SaaS)等在内的云计算基础平台和应用平台。
通过云计算平台的应用,服务能力达到了新的跨跃,具体表现为:在资源服务方面,能够在分钟级完成云平台资源创建,能够在分钟级实现故障探测及恢复,如服务器、数据库宕机,能够在分钟级实现按需自动实现缺口资源的扩容;在运维支撑方面,支持对服务器、网络、存储、进程的全面自动化标准监控,以及支持全自助界面的资源申请及管理。
(三)因地制宜的技术路线
银联金融私有云建设采用因地制宜的技术路线,使得云平台与现有技术架构融合,从技术到管理上平滑对接。技术指标体现为核心技术理念,非技术指标体现为科学管理方法。
图1:银联私有云因地制宜的建设路线
1. 核心技术理念
银联电子支付研究院通过研究国际通用的云计算模型提炼出银联建设云平台的三大核心技术理念。
通过创新性的云计算组织沟通机制,将大量计算资源组织起来,协同工作,资源个体可进可出,收缩自如,减少组织内的沟通损耗;当组织内个体情况发生变化时,可以及时查知信息,确保资源额变化实时反映在系统性能上,做到动态感知;并同时平衡各节点的压力,做到动态负载均衡。
做到用户无需关心底层的实现方式,只需要专注于上层的业务逻辑,针对不同场景、终端、应用、基础设施平台,云组织等可无差别地支持,并运用冗余等方式,保证云组织底层架构的节点发生任何变化都不会对系统的整体运行造成影响。
通过定义良好的接口和契约将云组织的应用和资源联系起来,然后根据需要进行分布式部署、组合和使用,使这些应用和资源变为可共享的标准服务,并实现这些服务模块的“即插即用”。
OpenStack无共享、分布式架构和设计原则很好地契合了银联金融私有云建设的核心技术理念。在OpenStack项目发展早起,银联就关注了OpenStack并对各个项目组件做了深入研究和分析,2012年初正式决定使用开源OpenStack,同年年底便在生产投产。
2. 科学管理方法
面向互联网+的云时代需要一套综合考虑成本、组织架构、流程规范的科学管理办法。成本要使用又低廉又可靠的基础架构,如从小型机平台向x86平台转变,同时还要支持大规模情况下的运维管理,这个管理不仅要考虑直接运维成本,也要考虑出错等间接运维成本,因此我们需要一种机器管理机器的安全架构。
银联经历了13年的成长,其IT组织架构与流程规范已成为成熟的公司IT文化。我们认为新技术的引入在提升企业业务能力的同时,也必须适应企业IT文化,因此是一种融合式技术引进管理方式。OpenStack本身提倡IT成本的降低,同时其以开放式的态度对待现有以及未来的所有IT技术,因此符合银联在IT科学管理方式方面的定位。
(一)OpenStack本质理解
我们认为OpenStack本质上是对基础设施的管理软件,通过各个组件的相互协同运作,来管理物理资源(服务器,网络,存储)及虚拟资源(虚拟机等)。通过统一的集中管理、编排,使物理资源利用率最大化,并降低运维成本,简化运维复杂度。同时OpenStack是业界公认的开源云计算事实标准,是一套相对完整的理论框架。OpenStack不是一个产品,其在严格生产应用过程前必须经过优化,但OpenStack提供了一种优秀的IT模型和框架框架,企业可以通过OpenStack量身定制私有云。
(二)OpenStack利弊理解
图2:OpenStack优势劣势对比
OpenStack有明显的优势。AWS开源实现,事实标准、先进技术、统一平台。积极的软硬件厂商支持。OpenStack开源社区活跃度高,开源贡献率高。不存在一家独大情况,系统性风险低。围绕OpenStack的周边开源生态系统建设良好,众多开源软件都积极支持OpenStack。
OpenStack也存在相应劣势,如兼容性,早期我们使用OpenStack最大挑战就是对Xen的兼容性。即使到Kilo版本为止,OpenStack对Hypervisor、商业存储、SDN软件的兼容仍非常有限。虽然官方声称支持的兼容性,在实际使用上仍然有很多问题。银联在研究、解决OpenStack劣势问题上花费了大量的时间和精力。
(三)OpenStack组件理解
从最初版本的两个核心组件——Nova、Swift,发展至今,OpenStack历经5年时间11个版本迭代,核心组件已经有21个,业务功能上也是越加丰富。目前的21个核心组件中,并非所有组件如Nova、Swift一样成熟稳定。
图3:OpenStack组件评估结果
银联对OpenStack核心组件进行系统评估,根据测试评估结果,选取组件加入到云平台中。优先选取符合银联实际应用场景的OpenStack成熟组件。较成熟组件需要定制开发,才能放到生产环境使用。对于不成熟组件,暂不考虑纳入银联OpenStack建设应用体系。
(四)技术路线理解
银联金融私有云建设技术上坚持“基于业界领先的开源技术,自主研发基础平台”的策略。同时得到国家云计算示范工程项目,国家要求在项目中带动国内产业链发展,与国内技术厂商合作,加强关键技术研发和产业化。普元信息技术股份有限公司是国家项目中推荐单位,在双方沟通后,确立了私有云以及OpenStack联合研究方式。
图4:银联私有云平台采用的自主开源技术策略
当前银联在金融生产环境率先应用了OpenStack、Xen、KVM、Linux、MySQL等开源软件,并取得了良好效果,同时以金融终端为突破口,努力探索开源硬件的研究,以既有继承又有创新的开源应用方式,站在开源技术最前沿。开源的应用使得平台的功能不断强大,成本得到节约,同时由于社区市场的活跃以及自主掌握能力的不断提升,平台相应及时能力得到了最大化的强化。
(一)OpenStack架构
OpenStack架构在银联主要历经三大阶段——起步阶段、优化稳定阶段、再创新阶段,这三大阶段也与OpenStack的成长息息相关。这一过程中,我们完善了基于OpenStack金融私有云服务能力,使得银联数据中心的所有服务器、存储、网络设备以及其他如数据库等的基本计算资源集中统一管理,通过静态模版配置和动态调度优化等功能为用户提供整合的、高可用性的、可快速部署使用的IT基础设施。
1. 起步阶段
图5:银联早期OpenStack架构
2012年建设初期,由于OpenStack开源项目尚处于起步期,银联OpenStack架构尚未发展成熟,但已经初具规模。
2. 优化稳定阶段
图6:银联第二阶段OpenStack架构
2013-2014年,由于业务方需求的大量涌现,单一架构已经不能满足使用,同时在前期经验的积累下,我对架构进行了优化调整。
架构调整后,技术层面和能力层面都全面提升,自此银联金融私有云生产环境步入稳定阶段。
3. 再创新阶段
图7:银联第三阶段OpenStack架构
当前,云计算技术的发展亦进入了新的阶段,为更好的完善银联云计算平台能力,我们也逐步开始应用一些更具有前瞻性的技术方案。首先我们自主研发了弹性数据库能力,较OpenStack社区版本领先完善,实现了统一的MySQL服务能力的快速交付和运维的便利化管理,并可支持百台级物理数据库服务器管理,功能包括支持多租户的MySQL单机/高可用/读写分离架构的自动化创建、支持数据库访问安全、数据库物理资源调度和扩容、运维自动化(含备份、恢复、监控)。同时,我们也尝试性地引入了SDN、混合云环境等技术方案,以构架能力更强,应用场景更广泛的云基础平台。在这个阶段,银联云平台已不仅为银联自身内部服务,已逐步开始探索为合作机构提供相应服务模式的能力。
(二)五大能力
银联通过对OpenStack架构调整优化,不断尝试创新,逐步完善私有云能力,最终实现了弹性计算、弹性存储、弹性网络、弹性监控、弹性数据库,五大核心能力。
1. 弹性计算—云主机
云主机是一种简单高效、处理能力可弹性伸缩的计算服务,应用该服务可快速构建更稳定、安全的应用系统,并有效提升运维效率,降低IT成本,使建设者更聚焦于核心业务创新。
2. 弹性存储—云存储
云存储服务对外提供安全和高可靠的存储资源。其支持NFS与iscsi等标准存储协议,容量和处理能力可以弹性扩展,存储可靠性达到99.999%。
3. 弹性网络—云网络
云网络服务构建了一个安全的云平台网络环境,通过云平台管理系统可以完全掌握银联金融私有云平台网络资源,包括选择自有IP 地址范围、划分网段等。此外也可以通过互联网/专线/VPN等连接方式连接至银联私有云平台。
4. 弹性监控—云监控
云监控是一个开放性的监控平台,云监控与传统监控不同,为监控其他弹性能力,云监控也必须是弹性的。云监控可实时以全自动化的方式监控银联云平台内的各种资源,并提供多种告警方式(短信,邮件)以保证及时预警,为应用的正常运行保驾护航。
5. 弹性数据库—云数据库
云数据库是构建在企业级SAN存储以及针对金融行业要求的数据库容器之上的高性能数据库服务,目前支持MySQL协议的关系型数据库服务,支持主从/主主两种双机热备架构,具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份、恢复及优化方案,使数据库不再成为应用开发和业务发展的瓶颈点。
(一)关键技术攻关
为使OpenStack有效支撑业务与应用的发展,我们同样就异构资源支持、云高可用、热迁移、自动伸缩、数据库与SAN自动化等核心技术进行了研究与攻关,这些技术的成功突破与生产应用是平台稳定运行的基石。
1. 异构资源支持
银联云平台支持多个层面异构资源:一是虚拟化异构支持,包括Xen/KVM异构模式支持;二是存储异构支持,包括异构种类存储NAS、SAN、分布式存储;三是网络模式异构支持,包括Flat、Vlan及SDN模式同时支持;最后是厂商设备异构支持。
2. 云高可用与资源热迁移技术
银联云平台所承载的银行卡业务要求强业务连续性,任何业务中断将带来不可估量的经济损失。为降低计划外宕机风险,我们自主研发了高可用机制,以及资源热迁移技术。云高可用机制保证业务7×24小时不间断运行,资源热迁移技术促进资源高效运维,保证底层设备的停机维护不影响业务的生产运行。
我们深入研究云主机高可用,最终形成自研OpenStack组件nova-ha,融入银联OpenStack体系,进行云主机的高可用性管理,通过多重手段检测物理机及虚拟机的状态,防止误判、脑裂、滞后处理等异常状况。当计算节点物理服务器或云主机出现问题时,nova-ha组件可以达到秒级响应,诊断、迁移、恢复故障云主机。
3. 自动伸缩技术
目前银联面向互联网渠道的营销活动中,经常遇到业务突发增长的情况,自动伸缩技术通过精密地检测资源的使用情况(具体可包括CPU、内存等各项指标),并通过复杂事件处理技术实现精确的伸缩预判决策,并通过标准的资源伸缩接口实现应用的按需伸缩扩展,从而有效地应对业务快速增长。
4. 数据库及SAN自动化技术
数据库及相应存储的自动化部署一直是云技术的瓶颈,如何实现数据库在同一台物理机的多实例部署,并保证计算、存储和网络安全隔离,如何使得SAN能够灵活地自动配置以适应数据库的弹性需要是本技术的核心课题。通过本技术,将彻底解决数据库及SAN的自动化应用能力问题。
1. 新功能定制
银联2012年便在生产应用Openstack,就当时而言Openstack功能体系还处于待完善阶段。因此我们针对当时选择的虚拟化技术XEN的支持进行各功能的完善,包括热迁移、热备份、热配置升级、高可用等数十项功能,其中诸如XEN热配置缩减等功能可能在最新版的OpenStack仍未支持。
2. 管理组件高可用
银联OpenStack管理高可用使用PaceMaker架构构建。构建高可用时需要关注两个重要指标宕机时间RTO、数据恢复点RPO。银联云平台可以达到故障分钟级切换。
3. 安全漏洞修复
开源软件可能存在安全漏洞,经过我们的检测,亦发现OpenStack存在默认安装环境下诸如访问权限修改等相应安全风险,为此我们逐一进行了相应修正。
4. 云审计
除了在云平台事先、事中过程进行有关机制研发,我们在云平台事后审计方面,也做了大量工作。我们自研了云审计系统,通过其完善的计算、网络、存储审计功能可以发现云平台的各类不合规的操作。
1. OpenStack网络问题规避
OpenStack网络模式分nova-network及neutron,早期neutron项目不成熟。我们为规避技术风险,使用更成熟、稳定的nova-network,并且规避当初不成熟的mulit_host功能,直接将网关收敛在物理设备上。这有性能、可靠性、稳定性有保证,也能很好地扩展。
2. OpenStack缺陷问题规避
开源项目的缺陷较多,OpenStack官网公布了许多还未解决的缺陷,为避免缺陷的影响性,我们严格根据自由设计应用场景的需求,制定了2697个测试用例,覆盖云平台高可靠、高可用、高安全、高性能、高效率等各个层次,通过合理的测试设计,以保证在使用范围内的平台强健壮性。
1. 虚拟化类型
图8:常用的虚拟化类型有三种
如图所示,虚拟化类型其实是多种多样的,一般常用的虚拟化类型有三种:
综合考虑性能与稳定性等因素,银联选择PV on HVM模式即,KVM结合virtio驱动使用,Xen结合netfront/netbackend驱动使用。
2. 超配设计(overcommit)
超配可以有效提高资源利用率,但其也可能存储系统稳定风险。因此,我们在私有云生产环境不采用资源超配技术,以保证金融云的可靠性,但在研发测试云环境,为有效利用资源,CPU超配比率为1:3,内存超配比是1:1.5,存储使用精简配置。
3. 虚拟化比例与服务器选型
银联生产云虚拟化比例设置为1:5,即一台物理机上线承载虚拟机数量为5,其主要考虑因素是X86服务器故障率相较小型机高,在其出现故障时,其运维影响性可控制在一定范围内。同时基于银联内部生产网络的套餐模式,我们物理服务器主要选择1U 16核32G和2U 32核64G物理服务器,硬盘均选择300G SAS盘。
4. 时钟同步
由于Hypervisor技术限制,模拟出来的虚拟机时钟总是比物理机快,当长时间的量变积累会产生质变,这一缺陷,对时间敏感、精度要求高的交易类系统是非常致命的。一般在生产环境,会在数据中心搭建NTP Server同步时间,但这仍然不能解决本质问题。银联使用铯原子钟及北斗卫星彻底保障虚拟机时钟同步。
随着云平台的发展,我们认为OpenStack升级需求必不可少。但为了更好地便于在生产环境做好稳定升级工作,Openstack的应用必须具备以下两种能力:
一是必须具备多版本异构使用模式,即Openstack各版本可以异构混合使用,当单个OpenStack组件升级时可以使用整体平台异构版本模式,基于兼容API进行支撑单个组件版本升级,无需更新平台所有OpenStack组件。
二是基于OpenStack内核代码的定制化开发必须以弱耦合度方式开展,即通过插件化方式开发,尽量派生、继承类进行修改,不对社区代码逻辑做侵入式修改,从而降低整体升级成本。
截至2014年底,银联私有云平台的能力已初步具备,可以面向银联体系的各级单位提供有效的弹性云能力服务。进入2015年,银联私有云演进方向进一步聚焦于混合云模式的发展,其一可以进一步完善对内服务能力支撑,其二可以更有效地将银联金融私有云的研究成果辐射于金融行业,将银联的云成果以能力输出、技术输出的方式服务于产业合作伙伴。(编辑/郭雪梅)