张海辉,负责某城商银行信息安全和服务管理体系运行和持续改进,具有丰富的体系建设、运维及项目管理经验。对银行业务和业务系统管理具有充足的认识和理解,能够保障银行业务系统从建设初期的架构设计到投产后的安全运维,具备实现银行应用系统全生命周期管理的能力。
一、项目背景
随着“互联网+金融”的兴起,银行金融业的服务系统越来越互联网化与移动化,同时考虑银行业中生产环境的特殊的安全性要求,因此选取“手机银行”项目作为“开发、测试、运维一体化流程工具”的实践对象。在实践中,调研手机银行开发、测试环节的痛点,提出改进流程,同时将新的开发、测试流程使用工具来驱动,确保被严格遵守。
依据ITIL方法论和业务运维监控理论,依托于现有的最新的大数据和人工智能分析技术,结合银行的运维和风险管理现状,通过投产变更管理、配置管理、事件管理等流程,有效控制“开发、测试、运维一体化”过程风险,利用业务可用性监控工具和人工智能分析技术,保障业务系统持续稳定运行。
针对信息科技管理在银行全面风险管理体系中的独立定位进行前瞻性思考。在此基础上,本课题主要从如下五个方面提出一套全面、动态、可实施的运维管理框架,并就服务创新与信息科技稳定运行进行详细论证和阐述。
1、将DevOps理论与ITIL理论有效融合结合某城商银行运维管理和可用性管理实践,将理论有效融合,识别需求、设计、研发、测试、运维过程中关键控制因素,采集并识别风险,同时将后台处置实现标准化与自动化,实现业务系统可持续运行。
2、人工智能技术应用总结了智能化运维的主要目标场景、关键技术和底层算法,并给出了落地先后顺序和优先级。主要研究内容“自适应异常检测”和“智能多维分析”就是依照此方法论,确定其智能化运维关键技术和底层算法路线,对关键技术进行突破:
-
如异常检测系统中基于深度学习的普适动态基带、基于集成学习的按反馈自我容错和修复、基于迁移学多指标适配、指标巨变适配;
-
智能多维分析中的决策树影响分析法、基于历史数据的AB测试等等,通过智能化运维逐一解决智能报警、根因分析、智能预警、排障预演等传统运维无法解决的运维难题。
在现有银行基础设备监控基础上,识别重要业务系统及业务的关键路径,采用自动巡检、关键指标监控等方式管控业务风险。在出现重要事件时,通过自动化处置工具进行快速处置,减少对外服务中断时间,有效控制业务风险,确保业务系统持续稳定高效运行。
4、线上服务直通车技术平台应用建立银行集团公司科技服务目录,利用企业微信工具,开发科技服务平台程序,通过线上办公平台,将科技服务下沉到业务一线,有效提高了服务的响应速度,科技服务满意度不断提升。
5、运维服务知识库的结构化转换与人员岗位职能调整知识库参照架构产品模块、功能点结构化知识,对知识库问题识别与迭代优化,建立一套适合商业银行现状的运维服务管理体系。
二、平台架构
1、银行业务IT服务全生命周期管理框架DevOps理论与方法的五位一体化(研发、测试、运维、风险、服务)实践工作指导思想,面向业务的产品经理、面向流程的架构专家、面向应用的项目经理、面向运营的运维专家等多维度视角,对研发运维过程中的风险进行统一管控,科技风险工作可管、可控、可视,领导有抓手、各方面工作有支撑。
按照监管机构商业银行科技风险管理、数据中心监管、业务操作风险等指引要求,参照ITIL 4管理体系标准,借助DevOps研发运维管理方法论,建立以客户服务为导向的IT服务工业化体系框架,为业务部门提供标准化的服务目录,利用人工智能技术和研发运维管理平台,将管理理念落地实施,将科技服务前移到业务一线。
为了解决大数据分析的效率问题,FOCUS算法可以基于分布式计算框架spark实现,以利用服务器集群高效完成对海量多维数据分析的任务。图中展示了一个FOCUS分布式系统架构概览。
FOCUS核心技术以Apache Spark集群计算框架为基础构建,主要包含了FOCUS Core核心决策树分析和Data Profiler数据侧写两个模块。
Apache Spark(后简称Spark)是一个开源的集群计算框架,最初是由加州大学柏克莱分校AMPLab所开发的。Spark同样采纳了Google提出的MapReduce计算架构。
而相对于Hadoop的MapReduce实现而言,Spark的特点在于使用了内存计算技术。即每次对数据进行处理后,产生的中间结果可以根据需要在内存中持久化,而非强制写入磁盘中。这样在数据进行连续处理或是一份数据进行反复处理时,可以明显提升效率。这使得Spark相对于MapReduce来说更加适用于机器学习应用。
FOCUS的核心算法是基于决策树的,但与传统的以分类为目的的决策树又有些出入。因此,FOCUS在MLlib实现的决策树模块的基础上进行了修改,实现了FocusDecisionTree、FocusClassifier、FocusRule等一系列以定位不利属性而非分类为主要目的算法和数据概念,以适应FOCUS的应用需求。
三、关键技术
1、面向业务和服务的研发运维一体化平台面向银行业务部门,将业务战略层层分解,通过科技战略和先进技术的落地实施,为业务部门提供优质科技服务,为业务创造价值。
参照ITIL 4管理体系标准,借助DevOps研发运维管理方法论,为业务部门提供标准化的服务目录,以研发架构产品目录为中心,将项目管理工具、架构管理工具、IT服务管理工具和监控管理工具进行有机整合,建立研发和运维一体化管理平台,建立以客户服务为导向的IT服务工业化体系框架。
在 DevOps 实施的三个阶段中,第一个阶段,DevOps 交付流水线平台的搭建是最基础也是非常关键的步骤,对于金融企业来说 ,由于其对产品质量、运营风险的严格要求,以及自身产品的复杂性、特殊性,该平台的构建需要考虑如下问题:
-
该平台一定要与企业目前所具备的基础设施相结合,而不能像一些初创企业,马上就对整个基础环境及设施进行更新。例如,目前大家都已经非常清楚云平台的优势以及对于 DevOps 推进的重要性,但是,对于一个大型金融企业来说,并不是说马上就可以将所有的应用都移到云平台上的。
-
该平台一定要考虑到企业 IT 组织目前的组织结构现状、人才技能现状以及存量产品特点。风险控制和稳定是金融企业 IT 系统需要考虑的首要问题,这些限制导致了他们无法像一些小型的初创企业一样,一夜之间即进行重大的 IT 组织调整,甚至产品更换。他们只能是逐步的稳健的创新,在创新的同时,还需要保持已有组织、人才以及产品的相对稳定。
-
该平台一定要与企业目前已有的流程控制系统相结合,而不能独立于现有的流程控制系统。现有的开发测试发布流程,是协调整个组织行为的重要工具,也是控制产品发布风险的有力工具,如果自动化交付平台脱离了这些流程的监管,就有可能变成规避现有流程监控的新工具,从而带来更大的风险。
基于以上考虑,本文设计了如图所示的 DevOps 流水线交付平台架构。在该架构中,我们将整体的流水线交付平台分成了四层:基础架构层、流水线工具平台层、流水线引擎层以及流程管控层。
-
基础架构层是一个企业最基本的基础设施,既包含了存量的硬件平台,也包含了云计算平台,首先,只有在基础实施上实现弹性可伸缩、消除开发测试环境的差异,才能实现真正的 DevOps。
-
流水线工具平台则是为企业的代码开发、测试及发布提供了一个端到端的工具平台,通过该工具平台的自动化和相互间的无缝对接,实现了从软件代码配置管理、自动化构建、测试到快速的自动化发布。
-
流水线工具分布在整个开发测试发布过程的各个阶段,需要不同的角色在不同的阶段进行配合操作,而且这个操作过程需要置于企业现有流程管控系统的管控之下。因此,我们还需要流水线引擎层,用于根据整体开发测试发布不同阶段的需要,驱动底层的工具平台进行产品的代码管理、构建及部署,同时对上又与企业的流程管控系统对接,使得整个操作过程置于流程监控之下。
本小节将按照智能运维的四个主要目标场景,分别阐述它们采用的关键技术。智能运维的每个关键技术都能解决对应目标场景的具体一个方面或步骤,对运维目标能有一定的直接帮助,但是这些方面和步骤组合在一起才能完整的解决智能运维的目标场景。
1)单KPI异常检测
KPI 异常检测是智能运维的一个核心场景。当 KPI 呈现出异常时(如突增、突降、抖动),往往意味着与其相关的应用发生了一些潜在的故障,比如网络故障、服务器故障、配置错误、缺陷版本上线、网络过载、服务器过载、外部攻击等等。图中展示了某银行一周内的交易量数据,其中标红圈两个部分为异常。
2)多个KPI报警聚合
如前所述,在故障发生时,其所在的具体位置通常被大量指标同时监控着,因此一个故障会触发大量KPI同时报警,造成所谓的“报警风暴”。智能运维的第二大目标场景是把同一个故障导致的多个KPI的报警归并成一个报警事件。
下图给出多个KPI智能报警的技术依赖关系。它对上支撑“故障根因分析”这一智能运维的场景,对下有五个关键技术。而这些关键技术采用了强化学习(蒙特卡洛树搜索)、随机森林、CUSUM、DiD、奇异谱变换等机器学习方法,同时也依赖于底层算法“KPI分布预测”和“事件-事件关联分析”。
3)故障根因分析
智能运维的第三个目标场景是故障根因分析,即当业务发生故障时,系统自动直接给出故障的根本原因,这样运维人员就可以直接去解决根因问题,甚至由系统自动解决问题。
故障根因分析是运维的两大终极目标之一。由于在当代银行业大规模分布式的IT系统中,存在大量纷繁复杂、无法靠人力说清的故障传播关系,因此故障根因分析也是传统运维所无法完成的任务。
故障根因分析依赖于“单个KPI智能报警”、“多个KPI智能报警”、“故障传播链构建”三个关键技术。有了准确的报警、有了报警传播关系,就能相对准确地获得业务故障时的根因,只需要顺着故障传播链搜索各个报警,找到的最后一个报警就是根因。本部分主要描述故障传播链构建。
故障传播链构建。根因分析的一个关键技术是故障传播连构建,即一系列的“A事件发生会导致B事件的发生”的故障传播关系。后如果理清了事件的传播关系,就可以构成故障传播图。
4)智能预警
智能运维的第四大目标场景是智能预警,即应用机器学习技术对海量历史数据进行分析,从而预测未来会发生的故障、容量需求、性能瓶颈等。
基于预测结果,运维人员可以提前做出相应的处理,如替换设备、适量增加计算和存储资源、切换流量、代码优化等,从而尽可能避免故障的发生,即所谓“上医治未病”,是智能运维两大终极目标之一。这些“预测性分析”的功能也是传统运维所不能提供的。
1)标准化巡检及应急处置规划
整合研发运维一体化管理,服务台服务目录发布、业务可用性管理平台(BAM )实施,并重点落实单客户故障的快速问题,提高满意度、降低业务风险。
2)标准化巡检技术
识别标准化运维场景,通过对工业化标准组件的开发,自动化巡检业务系统当前状态,作为运维监控工具的有效补充,在故障排查、定位上,能够缩短故障排查时间,第一时间发现业务影响及范围,及时发现故障点。
3)应急操作处置技术
参照标准化运维场景,设计自动化处置流程,将自动化处置工具内嵌到平台,在出现应急处置过程中,能够自动化或者人工授权方式第一时间进行处置,减少故障处置时间,提高业务系统可用率。
四、应用效果
1、五位一体化管理理念成功实施,全面提升科技管理能力借鉴ITIL 4和DEVOPS理论方法,结合商业银行传统IT管理模式,从研发、测试、运维、风险、服务五个主要环节优化科技服务管理能力。探索“开发、测试、运维一体化”在银行金融业的可行性,并整合配套的流程与工具,统一管理调度;管理在开发、测试过程中产生的软件版本,确保测试的有效性和一致性,控制标准件开发与部署;打通配置管理、构建管理、持续集成、环境管理、服务目录发布等,实现全流程可视化控制。投产成功率不断提高,产品自动化部署时间大大缩减。
1)投产成功率不断提升
按照五位一体的管理理念,有效控制了研发、测试、运维阶段的风险发生,投产成功率不断提升,减少了投产引发的事件数量,提高了科技服务管理质量。
2)产品自动化部署时间大大缩短
以手机银行自动化部署为例,将人工部署时间和自动化部署时间进行了对比,产品自动化部署时间大大缩短了10倍左右,减少了人工投产失误操作,降低了故障发生数量,提升了产品自动化部署效率。
探索“开发、测试、运维一体化”在银行金融业的可行性,并整合配套的流程与工具,统一管理调度;管理在开发、测试过程中产生的软件版本,确保测试的有效性和一致性,控制标准件开发与部署,建立标准化巡检及应急处置流程,不断提升业务系统可用率,重要业务系统可用率均在99.99%以上。
业务系统 | 可用率 |
中间业务系统 | 99.99% |
某行全流程系统 | 99.99% |
指纹系统 | 100% |
图形前端 | 99.99% |
某行综合前置 | 99.99% |
贷记卡 | 99.99% |
IC卡 | 99.99% |
二代支付 | 99.99% |
某行核心系统 | 99.99% |
1)重要业务系统事件数量降低及响应时间不断提高
对比近年来重要业务系统事件数量降低,响应时间不断提高,降低了业务响应时间,提升了科技服务能力。
2)科技服务工单线上化,缩短了故障申报时间
特别是2020年初的疫情,将科技服务下沉到业务一线下沉,将科技服务工单线上化,不断提升线上化上报工单比例,缩短了故障申报时间,提高了服务解决效率,大大提升了科技服务满意度。
3)基于产品目录,建立标准化知识库,提高科技服务解决效率
基于研发架构产品目录,将产品、产品子类、模块及功能点进行细分,建立匹配的标准化知识库,大家提高了业务一线的解决率,加强了二线解决疑难问题的能力,激发不同岗位人员解决问题动能,为业务部门提供优质科技服务。
五、总结
1、DevOps理论深入应用依据DevOps管理理论,结合银行的实际工作需求,将理论与实际工作有效融合,通过流程和工具固化落地实施。
2、IT服务工业化实施以面向客户提供优质产品及服务为目标,借鉴制造业工业化实践经验,打造研发、测试、风险、运维、服务五位一体模式
3、业务可用性不断提升通过DevOps管理体系的深入应用,借鉴人工智能和机器学习技术的优势,优化管理流程,利用智能监控管理工具,不断提升业务可用性和客户满意度。