林勇
摘 要:当前,商业银行数据中心处在“双态运维”模式下,如何做好稳敏共存、稳敏共进是商行数据中心必须面临的挑战,在该背景下,需要建设一个覆盖开发、测试、生产的自动化运维平台,以此来全面提升运维工作效率并降低人工操作风险。自动化运维平台需要以业务为中心,以流程为导向,帮助实现业务系统的快速上线和更新部署,满足日常运维主流场景的自动化需求,全面提升运维自动化水平,实现商业银行数据中心日常运维标准化、自动化、集中化和一体化的管理体系。
關键词:数据中心;标准化;自动化;一体化
中图分类号: TP311 文献标志码:A
1 项目背景
随着商业银行各项创新业务的快速发展,数据中心IT信息系统建设不断深化,IT基础设施规模和复杂性急剧增大,两地三中心的基础架构,动辄几百套信息系统、上万台服务器的规模,通过手工或简单脚本化操作的传统运维模式的局限性日益显现,无法满足商业银行数字化转型的需求。在当前大数据、云计算时代的背景下,必须通过自动化运维平台的建设和应用,在确保IT基础设施的安全、稳定运行的前提下,实现资源的快速部署、应用持续集成和快速交付、故障的快速应急、变更的及时响应,只有这样才能快速响应业务对IT基础设施的各类服务需求[1]。
2 设计目标及原则
2.1 设计目标
鉴于商业银行数据中心运维工作的复杂性和多样性,并考虑到建设成本和前瞻性,需采用先进的运维理念及主流的软件架构。自动化运维平台建设应做到支持各类主流基础软硬件平台,在为运维人员提供运维场景设计、开发、管理和执行的功能平台的同时,具备运维场景可定义、可配置、可定制的特点,实现运维场景从设计、开发、审批、发布、使用到回顾的全生命周期管理,合理合规地提升运维人员产能和运维管理效能,逐步实现被动运维向主动运维转型,操作运维向运维开发转型[2]。
2.2 设计原则
针对商业银行数据中心自动化运维平台的建设目标,遵循5个方面的原则进行建设。1)体现主动运维、向开发运维转型的要求。2)标准化、自动化、集中化和测试运维一体化的建设思路和目标。3)平台的稳定性、安全性、保密性、可靠性和完整性。4)技术先进性和可扩展性。5)体验上的易用性和美观性。
3 系统设计
3.1 顶层架构设计
3.1.1 平台物理架构
因监管及安全的实际需要,商业银行数据中心多采用两地三中心甚至多中心的物理布局,自动化运维平台建设需要满足这一要求。所以在平台的设计上应采用分布式架构,支持多地部署、高可用和负载均衡的模式。整体架构可划分为服务层、交互层和被管设备层(Sever/Probe/Agent)3层,服务层统一管理多个交互层,交互层与被管设备层进行通信,各层之间通过加密的方式进行通信,平台应基于RPC消息服务模式实现去中心化的分布式架构,实现多中心运维自动化平台的统一和安全管理。
3.1.2 平台逻辑架构
平台逻辑架构的设计应从数据中心IT基础设施运维场景实际出发,同时考虑未来技术发展方向和业务对IT基础设施运维服务能力的要求,力求在技术方案的先进性、实用性、扩展性、可靠性等方面保持一个良好的平衡。在逻辑架构上,平台可分为运维接口层、核心组件层、系统功能层、应用场景层和界面交互层。
运维接口层:商业银行数据中心根据自身运维管理的要求,大多已经建设完成了ITSM等运维管理类系统。自动化运维平台除了提供平台自身和被管理节点之间的交互接口外,还应该提供完善的第三方接口(例如KVM、K8S、ITSM、CMDB等),其中可通过API与虚拟化系统进行交互操作,通过K8S与Dock容器集群进行编排管理,通过SNMP、SSH等方式对网络设备进行操作管理,通过HTTP/HTTPS协议与第三方系统接口进行交互协作等。
核心组件层:核心组件层作为平台功能的底层支撑,主要提供平台所有前端和后台数据的处理,以及各功能模块的后台实现逻辑,平台的核心组件应设计自身知识库,并基于稳定高效的批量引擎、调度引擎和规则引擎,实现对系统功能层的有力支撑。
系统功能层:利用核心组件层提供的基本能力,设计运维平台的主要系统功能,实现商业银行日常主流运维操作的覆盖,如裸机安装、软件安装、补丁安装、信息自动采集、作业管理、批量管理、运维流程编排、自动巡检和基线检查等。
应用场景层:为方便人机交互,便于运维工程师操作和复用,平台应利用系统提供的功能模块对日常运维场景进行进一步的场景化封装,应将一些操作复杂、重复操作的运维场景封装为标准化、规范化的一键式操作功能,如维护变更、应急处置、持续集成部署、灾备切换、健康巡检、安全基线检查等。
界面交互层:提供面向运维工程师的统一Web管理入口,以模块化的方式组织平台提供的各类组件、功能模块和应用场景,实现日常运维的统一管理。此外,面向第三方系统,通过REST API的方式提供服务接口,输出平台能力。
3.2 底层数据抓取设计
鉴于行业的特殊性,商业银行数据中心对信息安全和数据安全都有着严格的管控要求,平台的底层数据抓取设计在应对复杂的运维环境前提下,还应遵循监管及商行内部的安全规范,做到以下6个方面。1)根据实际需要采取Agent或Agentless方式,应支持常用的脚本语言,如Shell、Powershell、Python、Bat等,同时满足文件和字符2种传输模式。2)严格控制高权限用户执行,高权限用户操作时须有相应的审批和授权记录。3)Agent与平台之间的信息传输要经过加密处理,确保底层数据在传输过程中的安全。4)Agent与平台的交互可根据运维环境的实际情况采用同步或异步方式,最大限度地降低对被管设备资源的消耗和影响。5) Agent要有自我监控,实时查看当前的健康状态,确保底层数据抓取的稳定性。6)平台顶层应具有数据抓取后处理能力,通过规则引擎可以灵活定义数据的处理逻辑,适用于合规检查、基线比对、采集信息格式化、执行结果报表化等场景,大幅降低个性化定制开发的成本。
3.3 自动化运维功能设计
根据商业银行数据中心的运维环境和日常运维场景特点,平台自动化运维功能应包括资源管理、运维服务管理、报表管理等方面,同时需对运维工程师的平台操作做好权限管理和行为审计管理。
3.3.1 资源管理
资源管理功能设计主要包括3个方面。1)设备资源管理:服务器、网络等设备是平台纳管的主要目标,平台应实现对被管设备的集中管理和一键纳管。为方便运维工程师选择操作设备,应能通过IP模糊查询、操作系統、中间件、归属应用等多维度进行定位,同时支持通过正则表达式等方式对设备进行灵活的标签分组和设备属性自定义。2)应用系统管理:平台应根据商业银行数据中心的日常运维职责划分实际需要,实现被管设备的应用系统归属管理,避免误操作。3)信息收集管理:实现被管设备的信息收集功能,满足报表统计、自动化巡检、合规检查、基线比对等场景。
3.3.2 运维服务管理
运维服务管理主要体现在日常运维场景的管理,实现自主提炼和封装维护变更、应急处置、软件下发、补丁安装、环境交付等日常运维场景,使其成为标准化、规范化的运维服务,以供其他运维工程师使用,从而实现降低运维技术门槛、屏蔽技术复杂度、提高运维效率。
结合各运维场景的特点,运维服务管理的实现主要包括服务封装、服务审批、服务实例化、执行授权和执行可视化。
服务封装:以脚本化、参数化、流程化的方式对运维场景进行服务化封装,并通过图形化、可视化的界面设计实现自主编排运维服务。
服务审批:通过审批功能模块实现运维服务的发布和执行审批,对运维服务的质量和安全性进行有效管控,避免非合规操作造成的生产事故。
服务实例化:通过参数化方式实现运维服务的一次封装。
执行授权:通过执行授权的方式管控运维任务的执行,以确保对的人在对的时间做对的事。
执行可视化:通过可视化界面实时展示运维任务的执行过程和结果,便于查看、干预。
3.3.3 报表管理
报表管理实现对平台的管理数据和运维数据的统计工作,包括平台的管理资源统计、运维任务统计、采集信息统计、执行历史统计等,为整体IT资源管理和运维工作管理提供数据支持。
3.3.4 行为审计管理
为了满足商业银行数据中心安全管理的审计要求,自动化运维平台的行为审计也是必不可少的功能。平台操作均可追溯。
3.3.5 权限管理
商业银行数据中心对运维操作有着严格的管控和审批机制,平台自身应设计完备的角色权限管理功能,提供集中统一的权限管理,遵循最小授权原则。同时,为兼顾主动运维转型,应设计运维操作、运维开发、运维审批、执行授权等不同级别的权限角色,同级别角色仍可进行增、删、改、执行等权限的细分。
4 系统测试及功能实现
4.1 系统测试
商业银行数据中心自动化运维平台测试应遵循行业测试规范,做好功能测试、运维场景测试、接口测试、UAT测试和性能测试,同时还应结合平台自身特性,做好如下测试。
数据一致性测试:数据安全、执行结果符合预期是商业银行数据中心运维任务管理的重中之重,鉴于平台的多层架构设计和被管设备环境的复杂性,平台需做好在各节点网络中断、运维任务执行超时等特殊情况下的数据一致性测试,确保运维任务执行结果可控。
高并发测试:鉴于平台的批量部署特点,平台需要做好单一场景和混合场景下的高并发测试,确保运维任务的正确执行,做到有令必达。
Agent资源使用测试:如果平台采用Agent方式实现被管设备的纳管,则需要对Agent资源占用情况做好疲劳性测试,确保资源使用不会对被管设备产生不良影响。
网络带宽影响性测试:平台应对运维任务的并发进行监控控制和优先级设置,确保不会因并发失控导致生产带宽拥堵,必要时使用QoS等网络控制技术。
4.2 系统功能实现
平台功能实现应遵循高内聚低耦合的模块化设计理念,充分借鉴和参考在运维自动化领域主流的“Sever/Probe/Agent或Agentless”三层架构。采用成熟的开发框架,便于持续开发集成。提供丰富成熟的API接口,便于和关联系统进行集成对接。同时,平台应具有统一的Portal和完备的操作及任务审计功能,能够灵活配置操作权限,对于敏感信息加密存放,确保数据安全。首先,通过响应式布局页面框架和脚本语言框架搭建简洁、美观、高效、灵活的交互界面,适应不同类型的终端,快速响应访问请求,实现对系统运行、功能参数等的配置,实现对运维功能的管理、对被管设备的运维任务操作,以及数据、图表等信息的展示。其次,基于稳定高效的批量引擎、调度引擎和规则引擎,以服务的方式进行自动化运维任务数据分析、处理存储以及核心逻辑处理。基于不同运维场景模块的需求,可灵活地对运维服务进行扩展。再次,被管设备支持通过Agent或者Agentless方式进行通信交互,对于第三方系统或者服务型设备,通过接口方式进行交互。采用Agent设计,主要负责接收平台指令并返回结果,屏蔽业务逻辑处理,最大限度地降低对被管设备资源的消耗和影响。另外,Sever层、Probe层采用负载均衡和集群方式部署,支持快速横向扩展,一方面解决了商业银行数据中心服务器设备快速增长的实际需要,另一方面解决了部分物理隔离设备的纳管问题。最后,各功能层之间定时进行心跳通知,保证消息、文件的正常通信。
5 结语
综上所述,通过自动化运维平台的建设,商业银行可实现日常运维场景的全生命周期自动化管理,通过与ITSM等系统的对接,可实现标准化、规范化、流程化、一体化的运维管理体系,实现从传统运维向智能化运维转型,从被动救火式运维向主动运维、精细运维转型,从操作型运维向运维开发转型。
参考文献
[1]冷迪.自动化运维管理平台设计及实现[J].技术与市场,2018,25(11):62-64,67.
[2]刘媛.大数据时代自动化运维管理的实践和思考[J].网络安全技术与应用,2018(6):55-56.