基于唯一ID的自动运维监控体系研究与实现

2017-09-08 20:54于卫国吕勤
数字技术与应用 2017年6期

于卫国+吕勤

摘要:金融行业为适应互联网业务的挑战需要建设自动化运维系统,在传统软件上支持自动化运维系统需要构建以唯一ID为基础的日志和流水体系,进行数据信息的汇聚、关联才能支持大数据平台智能分析、自动应急处理。

关键词:ID;双态IT;自动运维

中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2017)06-0056-02

1 双态系统模型

随着互联网创新企业给传统金融业的带来的压力,传统金融IT迫切需要改进IT整体治理体系。为帮助企业应对“互联网+”转型中遇到的挑战,联想等十二家企业提出“双态IT”方法论,使企业梳理实现“互联网+”转型。“双态IT”聚焦于企业业务的稳、敏分析,帮助企业IT 部门采用传统的集中式和新兴的互联网分布式等信息技术架构,构建一套稳态、敏态和谐共存的新型IT 架构。稳态IT的特征是业务按照传统方式经营,战略目标明确,业务流程相对成熟;敏态IT业务则采用“互联网+”思维模式,业务模式本身处在不断探索、优化、总结的过程,需要通过不断试错来逐步完善。

对于布局在电子商务、金融支付类的传统企业最为迫切的解决快速和高质量的交付问题、自动运维(应急处理、资源管理、问题分析处理)、自动监控等问题。这些企业IT治理向敏态转型,学习敏态的开发、测试和运维一体化涉及组织架构调整难度较大,而对现有系统优化改造,优化自动运维、自动监控流程更易实现。

2 稳态系统运维问题

金融行业传统业务为稳态业务模型,传统IT为IOE架构,每个业务系统为单体应用,内部调用流程固定,系统建设是逐步搭积木,未规划内部数据交互格式。按照业务发展的顺序形成了由核心账户向外围渠道、外围增值业务扩展的层次架构。

传统企业IT运行中心在运维监控主要面临以下问题。

一是信息孤岛问题。(1)不能综合使用日志和报错信息。运行人员以数据库交易记录为主要依据,未自动关联业务系统内部各模块记录的大量日志和报错信息。(2)不能关设备信息。系统管理员只分析CPU、IO、内存、磁盘空间的静态数据;数据库只分析自身资源使用情况,没有与应用日志和错误信息关联。(3)使用系统监控信息、应用日志、数据库记录的运维经验无法与其他运行人员共享。

二是问题分析定位慢。运维以人工判断分析为主,自动化程度低。(1)由于信息孤岛,出现问题后错误信息会大量产生,很难判断出根源是应用、网络、系统。(2)运行人员分析的日志、程序报错信息、交易流水等没有自动关联,运行人员从数据库中查询符合条件的流水集合,确定其中一条记录,选择业务主键,打开日志文件,根据业务主键搜索主机日志中关联记录,根据经验分析日志,给出问题描述。

三是应急响应慢。故障处理、资源扩展人工操作。(1)应急处理时人工根据各类信息判断问题原因,根据应急处理预案进行排查处理,恢复业务,处理时间较长。(2)系统资源只能采用硬件冗余,按照最大峰值购买和配置资源,平时浪费资源,一旦交易出现爆发增长无法应对。

解决传统系统的运维关键在于把各类信息有效汇聚关联。以信息流为切入点,对于每一个内外部交易请求生成日志ID键,该日志ID键没有业务属性、仅用于标识该请求,并贯穿于整个交易处理环节。在应用数据库中定义业务ID键,业务ID键与日志ID键关联。以这两类ID为基础构建大数据分析平台,使数据聚合、关联,建模自动化分析,形成自动执行指令;同时在IT基础架构支持软件定义资源,配合指令执行应急策略。

3 敏态系统运维

新型互联网企业自动化运维有以下特点。一是用户或业务变化率大,交易量大、瞬间产生巨大流量,要实时分析海量日志、报警信息、交易流。二是系统架构微服务化、服务调用动态化,运维系统智能化发现问题、自动化处理问题、自动隔离问题模块。三是软件定义运维成为发展趋势、运维软件平台PAAS化。

3.1 消除信息孤岛

规范日志格式,使用统一的日志方法类库;在数据输入和输出的关键点埋点,即规范数据采集位置和深度;部署统一的日志收集服务。建立端到端全栈监控体系,从用户端的各类客户端(手机、PAD、浏览器)进行采样、到应用服务器信息聚集、再到基础架构(中间件、数据库、网络、服务器、云平台)监控数据。

3.2 大数据数据分析

使用大数据技术进行数据采集、格式化、集中存储。使用分析引擎、关键字解析处理数据,基于经验沉淀建立分析模型,进行自学习、预测风险、异常预警,从而实现运维分析的实时化、自动化、智能化。

3.3 构建快速自动处理机制

以自动化配置的IT基础架构为基础,敏态管理采用微服务架构、云平台、容器技术。主机集群化、虚拟化,摒弃小型机,以低成本的PC分布式集群为基础支持动态扩展。大量使用云平台、容器DOCKER技术,以便于服务动态扩展。以软件定义服务、软件定义资源为管理手段提升运维响应速度。阿里云平台、AWS等开放云平台都提供的接口调用,可以实现分钟级别的虚拟机申请, 而DOCKER则能够作为秒级的申请和部署。

企业通过构建统一数据、大数据分析、微服务和容器等技术,实现了以数据聚合关联为基础,以建模分析和智能分析为依据,以自动化执行为结果的敏态运维体系。系统运维由手工向智能自动化转变,自动判断系统哪些节点可能有问题,自动隔离,恢复业务。

3.4 典型应用

淘宝运维体系弹性化实现。(1)每个URL请求进来都会生成一个唯一TraceID,TraceID会出现在所有服务调用、数据库、缓存、消息访问的日志中。TraceID含IP地址、创建时间、顺序数。(2)为记录各内部服务调用顺序还设计了RcpID,用于标记服务调用嵌套关系和日志埋点的顺序。这样每条日志都含以下信息:TraceID、RcpID、开始时间、调用类型、对端IP、处理耗时、处理结果、数据传输量(2)每台设备上都有代理服务,将日志采集到一个实时分析层,分析层按照格式拆分日志,发送给分布式存储HDFS,在Hadoop大数据平台、使用MapReduce进行关键字分析处理。(3)数据采集秒级集中,实时分析性能、流量、稳定性、资源使用情况,并根据分析模型,弹性控制模块对资源自动调度、对故障自动处理。运維监控体系完全“弹性化”,实现从人工控制到秒级自动调度。endprint

4 傳统系统优化实践

作为国内线下最大的第三方支付公司,银联商务的IT系统是经过十多年的建设逐步发展起来,有传统银行卡、预付费卡系统,也有传统互联网业务系统、以及移动互联网系统,各个系统交互报文有8583、XML、JSON、固定格式等。IT条线制定了分步实现数据关联聚合、数据标准化问题、数据智能分析、运维自动化的计划。

4.1 新建系统构建ID规范

制订日志ID键和业务ID键规范、应用埋点规范和日志格式规范,确保新业务系统或新建子系统内部消除数据孤岛。新建的移动支付交易系统使用PC Server集群,用Java开发,用ZooKeeper、Dubbo、Mysql等新技术。系统日志使用log4j规范,以UUID为唯一索引加入各行日志中,在交易流水表中的订单号关联各类业务数据主键。使用Logstash日志管理工具,集成Elastic Search、Kibana实现日志的集中、快速关联分析、监控可视化。

4.2 原有重要关键系统优化改造

按照非侵入性、最小变动原则先进行日志ID、日志规范的整改。由于原重要系统之间修改交互报文格式风险很大,无法增加唯一日志ID,这样也无法在每一行日志中加上日志ID。银商采用的方案是先统一替换日志记录函数,确保特定系统内部的日志都有本地唯一日志ID;在关键通信节点埋点,在业务系统之间建立不同ID对应关系记录,并梳理每个系统内部日志ID键与业务ID键的对应关系。这样当数据大集中后,就可以通过二次查找的方式串联所有日志。

比如A系统日志ID是“设备号+终端流水”,A系统内部日志都带“设备号+终端流水”;B系统日志ID是“内部系统流水”,B系统内部日志都带“内部系统流水”。在A或B的通信层每一条从A到B的交易系统都增加一条日志记录:“A设备号+终端流水”对应“B内部系统流水”,这样任何一条A的日志都可以找到对应的B日志,当日志导入大数据平台汇聚后就可以很容易关联了。

4.3 建立新系统与传统系统的日志ID关联

新系统按照日志ID键和业务ID键规范实施,但新系统的UUID无法通过报文传递给老系统。解决方案类似4.2,新系统在通信层发送和接收报文时记录UUID和目标系统的日志ID对应关系,尽量不改老系统,老系统只要保证内部日志能够有唯一日志ID即可。

4.4 建设聚合跨系统的交易日志和交易流水的“自助运维平台”

首先聚合全量数据,除了各个新老应用系统的日志和交易流水外,还有各类客户端(手机、PAD、浏览器)和POS机上采样的操作数据、行为分析数据。然后使用Hadoop、MapReduce、Hive等技术对数据实时分析性能、流量,并根据历史问题构建分析模型实时预警。目前平台已投产,初步实现了问题快速排查,基于大数据的智能分析还在建设中。

5 结语

敏态系统设计基于容器、基于微服务、云平台、大数据等新技术可以达到快速扩展、自动部署、自动运维、智能运维,是未来新建系统的首选。但是很多传统企业IT的管理体系还未做好准备,无法对敏态管理进行有效支持。在如何保护现有IT资产、做好原有系统平稳过渡上,最好的方式是对于传统核心软件系统进行非侵入式改造,逐步从日志信息采集、交易日志分析等外围的运维监控优化入手,提供更好运维支持,再逐步改进信息质量的前提下提高自动化和智能化程度,使传统系统循序渐进优化。

目前银商系统已经有计划的对原有系统进行日志规范改造、构建大数据分析平台,未来还需要在以下方面持续改进:(1)向全栈数据聚合改进,增加POS终端、自助设备、客户端等数据。增加基础架构(中间件、数据库、网络、服务器、云平台)监控数据的聚集和关联,这一项工作需要设备厂商的支持。(2)基于大数据的智能分析模型还要不断升级,要能够自动预测和实时预警,这样才能从手工操作向自动化、智能化改进。(3)全面推进云平台、应用微服务化、容器化还需要逐步推进。要实现对资源自动调度、对故障自动处理没有基础设施的虚拟化、应用层容器化是无法推进的。

参考文献

[1]钟华.企业IT架构转型之路[J].机械工业出版社,2017年,P132-156.

[2]王汉明.银行信息系统架构[J].机械工业出版社,2017年,P38,P104-114.

[3]胡喜.支付宝高可用系统架构的演变[J].百度文库,2016年,P32-38.

Abstract:In order to meet the challenge of the Internet industry, the financial industry needs to build the automatic operation and maintenance software system. In the traditional financial software system, the automatic operation and maintenance system needs to construct the log and water system based on the unique ID, and the data information can be aggregated to support the large data Platform intelligent analysis, automatic emergency treatment.

Key Words:bimodel state IT; automatic operation and maintenanceendprint