面向敏捷运维的数据中心运维自动化系统建设

2017-05-19 15:44黄伟峰
计算机时代 2017年5期
关键词:自动化数据中心转型

黄伟峰

摘 要: 数据中心运维自动化系统建设,基于数据中心行业的特点和需求,能够自适应混合环境,支持快速故障恢复,按照不同运维场景实现自定义的运维操作,促进了数据中心的敏捷运维,推动数据中心向运维规范化、自动化、智能化转型。

关键词: 数据中心; 自动化; 敏捷运维; 故障恢复; 转型

中图分类号:TP399 文献标志码:A 文章编号:1006-8228(2017)05-83-04

Construction of data center automation system for agile operation

Huang Weifeng

(Shanghai Pudong Development Bank, Information Technology Department, Shanghai 200000, China)

Abstract: The automatic system for data center operation and maintenance is constructed based off the characteristic and requirement of the data center industry, the system can support hybrid environment adaptively, support fast fault recovery, and achieve custom operation according to the different scenario, which promotes the agile operation of the data center, and promotes transformation of the operation and maintenance of data center to standardization, automation and intelligent.

Key words: data center; automation; agile operation; fault recovery; transformation

0 引言

伴随企业业务系统规模迅速扩大,数据中心正面临系统架构集群化资源化、应用架构面向服务松耦合、业务连续性要求日益严苛、人均运维工作量持续增长等发展趋势。传统运维在系统量日益增长的现状下显现出效率低、成本高、风险大等各种问题,浦发银行因此开展面向敏捷运维的运维自动化系统建设(以下简称运维自动化系统),通过该系统,对各类IT资源实现自动化装机、日常巡检、应用发布自动化、个性化运维调度、自动化打补丁、主机信息查询、合规检查自动化、配置收集自动化、故障自动诊断与处置等功能,以提高基础资源和应用部署的自动化水平,实现快速交付、动态调整、弹性部署,降低人工操作风险,提升风险管控技术能力,实现数据中心的敏捷运维。

1 运维自动化系统的技术架构

数据中心运维自动化系统的整体物理架构如图1所示[5]。

运维自动化系统架构中包括服务器自动化组件、网络自动化组件、自动化引擎组件、故障恢复组件、数据采集、报表组件和管理门户共六个部分。

故障恢复组件,通过与监控平台联动,抽取故障信息,通过匹配微服务知识库,触发高性能数据引擎获得故障现场快照,并执行相应操作,达到快速恢复生产问题的效用。该组件包括的高性能搜索引擎可以在海量数据中快速定位故障,并把非优化的数据通过可视化图表的方式展现在前台,为快速锁定生产问题提供便捷通道。该组件支持微服务知识库和微服务应用的方式进行灵活的场景拓展,实现一个个面向具体运维场景的故障恢复自动化。

2 运维自动化系统的技术特点

针对数据中心运维现状,我们在前期认真调研了实际工作中的各种需求,设计开发了本系统。目前本系统已承载各种各样的IT基础设施运维,包括网络、服务器、存储、应用等,通过本系統实现对这些基础设施统一操作。现就本系统实现的几个关键技术特点进行分析和总结。

2.1 自适应混和环境

运维自动化系统后台逻辑架构设计理念之一是能够自适应混合IT软硬件环境,涉及三方面核心服务。

⑴ 分布式自动发现(眼)

自动发现的数据来源有两部分,一部分是如图2下面区域所示,通过部属于各个网段的卫星节点,自动发现和纳管新上线服务器,自适应多种机型以及其上多类软件;另一部分是如图2左边区域所示,通过丰富的平台接口,获取周边关联系统信息,采集来的数据经过汇聚、清洗、比对与合成,进入到配置库中。

⑵ 自适应规则匹配(脑)

系统中预定义了四种自适应规则,通过前一步分布式自动发现得到的配置数据,根据不同软硬件类型和不同版本,选用组件库中的模块组件,自适应地开展装机、巡检、配置收集、软件发布。

⑶ 行为驱动调度(手)

根据自适应规则匹配服务结果,调度相应的模块组件,驱动执行。

2.2 支持快速故障恢复

运维自动化系统支持上百台乃至更大规模集群的分钟级故障快速诊断与恢复。

基于大数据技术,将各方面运维数据采集、关联、统计分析和可视化展现,在海量数据中快速定位故障关键信息。另外,基于预定义的故障处理规则,自动识别故障场景告警特征[6],选择对应的故障修复程序以及事后检查程序,调度执行。

系统基于微服务的系统架构,实现功能解耦,数据采集、传输、缓存、索引等均采用全自动化方式设计和实现。提供充分的第三方接口,可便捷的拓展新的数据分析和故障恢复模型。

系统对复杂的运维大数据流程进行了封装,提供可视化的云服务给用户。系统利用高性能运维数据采集引擎收取节点相关信息,把非结构、半结构的数据转换为可视化图表和表格,在高性能搜索引擎下,在海量数据中快速定位故障关键信息,系统基于预先定义的故障处理规则,主动判断匹配、协同故障场景配置参数,选择对应的故障修复程序以及事后检查程序[4],调度执行,执行结果和检查结果输出返回给监控报警系统关联告警信息。执行决策过程支持人工介入或全自动两种方式。

该特点适用于故障特征明显、监控告警定位精准、配套处理步骤明确的场景。

对于无法通过监控平台直接定位到故障根源的场景,需登录上百台乃至更大规模集群再逐台排查的方式显然是无法接受的,系统支持一键式故障快照收集、自动问题诊断定位和自动深入分析,即发生故障时,运维人员一键执行后:

第一步,快照收集。由运维自动化系统调度和执行部署于被管节点的信息收集器,将近期操作系统性能容量(CPU、内存、DISK、FS空间)和日志数据、中间件性能容量(应用吞吐率、执行线程使用率、JDBC使用率)和日志、线程(threaddump)、进程(lsof)和内存堆栈(heapdump)等,汇总归集在管理节点上,这些收集信息的脚本、命令和工具在自动化装机阶段已经包含在装机和软件部属的组件当中、与当前应用场景无缝衔接。

第二步,自动诊断。通过部属于管理节点上的分析器,对服务器和中间件性能容量数据排序、对每台服务器操作系统和每个中间件server日志报错总数进行统计、对未达报警级别的敏感关键字日志进行统计,按TOP排名列出可能是故障根源的可疑节点,以便在上百台机器中定位到问题节点[2]。

第三步,自动分析。基于已定位可疑节点,在已汇总归集的故障现场快照中进一步分析,形成分析结果。

2.3 服务功能组件化

运维过程中,用户的需求时刻在变化,比如图3中这位运维人员遇到的四个需求,这些需求在系统建设之初是难以全部考虑到的,即使考虑到,固化的预定义功能也无法灵活的根据需求场景快速调整。为此,系统支持用户自助式在前端维护界面自定义任务并按需调度、支持在系统后台通过拖拽拼装组件模块方式快速满足新需求。

服务功能组件库的搭建分为三步。

第一步,预定制化了2000余个运维脚本,包括shell\bat\python\vbs等,支持在Windows、HPUX、Linux、AIX等多个操作系统,另外用户也可以在前端维护界面自助式自定义脚本并按需定时调度。

第二步,将预定制的运维脚本封装为结构化、标准化的组件模块,供后续重用。

第三步,通过这些组件之间的排列组合、定义组件之间的关系,形成面向操作流程的500余项服务流。

例如,AIX操作系统的安装涉及到将SHELL脚本以及配置参数封装为组件库中的获取LPAR状态[1]、检查LPAR状态、安装AIX、配置等等组件,对这些组件拼接关联,实现整个AIX操作系统安装的服务流。

3 实现敏捷运维的应用场景

基于运维自动化系统的技术特点,以促进敏捷运维的要求,我行将自动化技术广泛运用于数据中心的各类运维场景。

3.1 运维过程自动化

运维自动化系统目前实现了健康巡检自动化、安装部署自动化、合规检查自动化、配置收集自动化、应用发布自动化、自动化流程引擎、报表、管理门户、用户、角色和权限管理、操作记录和审计等功能性目标,还包括高可用架构支持、系统架构支持、受管资源支持及系统整合等非功能性目标,用于提高整体运维水平和效率。

3.2 运维流程标准化

系统支持各类运维流程,如健康巡检、合规检查、安装部署、配置收集和故障处置,均根据实际运维需求对不同操作系统、数据库、中间件、服务器等基础软硬件资源进行操作,为了能够满足组件标准化,访问接口标准化,运维标准化和交付标准化的要求,通过分布式部署的采集引擎,定时将所需要的配置信息统一格式化后通过预封装的安全通道推送给预定义的基于POI技术的分析引擎,经过分析引擎中定义的主机信息关联算法,将每台主机的相关硬件,系统,软件等信息根据主机名和所属区域主键进行关联后按照标准格式统一进行存储;并且通过前台程序的再一次根据业务流程模塊化封装将这些信息,以提供前台操作以最大的灵活性,使得日常运维操作日趋标准和便捷。

3.3 运维调度个性化

为了支持用户自定义运维操作,适用于各类个性化运维场景,并形成知识库在管理界面可供所有用户阅读与调度。系统将用户在界面上预定义的命令或脚本,通过解析引擎进行标准化封装,产生基于Unix或者Windows平台的标准化脚本,然后通过封装与安装在各纳管机上代理程序的安全通道,将脚本通过加密算法加密压缩,并发传送给需要执行的被纳管机进行执行,然后通过分布式部署在各个区域的卫星节点服务器,统一收集相关结果信息或者文件,经过分布式处理引擎,将数百乃至上千台纳管机上运行的结果文件进行统一标准化处理后存入数据库[3]。在前台,用户可以通过页面展示,发送邮件或者导出文件等多种方式来查询结果,这个功能基于标准化,满足个性化,在运维需求多样化的背景下,最大程度提高了运维效率,提高了运维操作的便易性。

3.4 故障恢复快速化

运维自动化系统在集群中各节点分布式部署高性能数据采集引擎,将系统性能容量(CPU、内存、DISK、FS空间)和日志数据、中间件性能容量(应用吞吐率、执行线程使用率、JDBC使用率)和日志、线程(threaddump)、进程(lsof)和内存堆栈(heapdump)等信息汇总归集在管理节点上,将非结构、半结构的数据转换为可视化图表和表格,在高性能搜索引擎下,在海量数据中快速定位故障关键信息,系统基于预先定义的故障处理规则,主动判断匹配、协同故障场景配置参数,选择对应的故障修复程序,以及事后检查程序,调度执行,执行结果和检查结果输出返回给监控报警系统关联告警信息。采用微服务的方式提供定制化的场景实现生产的故障快速诊断和恢复功能,提高了生产系统应急响应能力。

4 系统效益

面向敏捷运维的自适应运维自动化系统自2014年底上线,浦发数据中心技术人员在近千台服务器上完成装机或软件部署任务,健康巡检脚本执行频次超过200万次,主机信息查询功能使用频次上万次,每日对数据中心全辖数千台服务器开展配置信息自动化采集,不定期对关键三十余个系统开展应用自动化变更,全年共计节省4900余人天。随着数据中心生产设备规模不断扩张、项目持续投产上线,系统将在数据中心生产运维过程中发挥越来越大的价值。

系统通过与监控平台联动,实现故障的快速诊断和恢复,支持部分故障场景实时自动恢复,加快了故障信息收集和处置速度,提高运维过程中应急响应速度。

5 结束语

通过数据中心运维自动化系统建设,使得数据中心运维成本显著降低,减少人工操作的风险,提升了风险管控技术能力,更适应金融行业的业务发展,推动数据中心向运维规范化、自动化、智能化转型。

随着自动化技术在数据中心的深入使用,对自动化系统也提出了更高的要求。比如应用程序的变更管理流程如何与自动化系统有效衔接,如何借助运维大数据技术以进一步提前开展对生产预警的高效处置,这些是我们需要进一步研究的方向,相信自动化的持续运用能显著促进数据中心的敏捷运维水平。

参考文献(References):

[1] 刘天斯.Python自动化运维[M].机械工业出版社,2014.

[2] 王军.LINUX系统命令及SHELL脚本实践指南[M].机械工业出版社,2014.

[3] 陈吉平.构建Oracle高可用环境:企业级高可用数据库架构.实战与经验总结[M].电子工业出版社,2008.

[4] 孟小峰,慈祥.大数据管理:概念、技术与挑战[J].计算机研究与发展,2013.50(1):146-169

[5] 杨宁,王磊.故障管理在IT运维中的应用.信息技术与标准化,2016.12:10-13

[6] Bill Franks,黄海,王悦译.Opsware自动化系统管理员手册[M].人民邮电出版社,2013.

猜你喜欢
自动化数据中心转型
酒泉云计算大数据中心
转型发展开新局 乘风破浪向未来
航天器在轨管理模式转型与实践
民航绿色云数据中心PUE控制
转型
AGV小车在白酒行业自动化立体仓库中的应用
配电室无人职守集控站在京博石化的运用
配电线路运行资料管理自动化的探讨
沣芝转型记
基于云计算的交通运输数据中心实现与应用