适应“十四五”布局中对于“放慢金融机构数字化转型”要求,中国人民银行印发了《金融科技倒退布局(2022-2025 年)》。近几年来,金融行业牢牢占据着国内产业数字化转型市场投入的榜首地位。IDC 考察显示,2022 上半年,中国金融云市场规模达到 34.3 亿美元,同比增长 29.3%。
光大银行在数字化转型过程中踊跃利用云原生技术对业务零碎进行了降级革新,大幅晋升了底层技术平台对下层业务的撑持能力,不过随同而来的全新的运维体系建设难题的解决也变得火烧眉毛。借助博睿数据在云原生简单环境下的可观测性能力的冲破,光大银行不仅实现了传统的全栈式数据采集与监测,同时通过多级交融形式将简单的调用链与指标及日志数据进行了交融,进而实现了高效的数据分析能力,以及以 AI 为主的智能根因定位能力。最终,该计划不仅解决了客户现有运维体系革新建设的难题,其技术的前瞻性利用也让对应的案例发表在了中国人民银行主管的《金融电子化》杂志上。
以下为原文,共计 4024 字,预计浏览工夫 9min。
随着数字化转型的逐渐深刻,如何在保障业务稳固运行的同时,又可能疾速高效地满足一直变动的业务须要,是银行行业 IT 撑持部门亟待解决的一个难题。以后,通过云原生等先进技术建设“数字化中台”,进一步晋升对业务的疾速撑持,推动业务技术深度交融,构建金融科技赋能业务的综合战略决策体系,已成为银行业 IT 技术的重要指引方向。云原生环境具备如下特点:
1、不可变基础设施
以镜像、容器为根底,通过编排零碎下载更新镜像、只更新镜像不扭转容器运行时等形式,构建基于容器化封装的云原生体系,确保根底施行的一致性与可靠性,从而实现“一次构建,到处运行”的能力。
2、弹性的服务编排
通过集中式的编排调度零碎实现对计算、存储、网络等资源的自动化对立调度,构建业务的集群治理能力,提供负载平衡、资源主动调度、动静扩缩容、主动修复等能力。
3、微服务架构
在云原生利用设计中,通常采纳微服务设计,传统单体利用的性能被拆解成大量独立、细粒度的分布式服务,实现服务的互相解耦。通过利用编排调度组装,进而实现等价于传统的单体利用,但却更加灵便、易于保护。
4、可管理性和可观测性
除了长处之外,云原生环境也存在利用调度可视化简单,难以疾速定位故障等艰难。因容器漂移、主动扩缩容等个性,利用的调用关系通常难以清晰展现与剖析,故障现场难以还原,为业务零碎运维及故障排查带来了极大的挑战,因而须要有业余组件或工具晋升监控治理能力。
光大银行十分重视金融科技翻新工作,在各级工作会议中,团体与银行领导屡次提到“要保持把科技翻新摆在倒退全局的重要地位”,“要以科技翻新为驱动,减速推动数字化转型”。光大银行金融科技部保持贯彻科技引领的战略目标,以科技翻新为驱动,打造自主可控的光大技术中台,并实现了全栈云平台建设,全面反对云原生技术,并遵循 CNCF(云原生计算基金会)OpenTelemetry 理念,构建全面的 Trace(调用链)、Metric(指标)、Log(日志)数据分析维度,全面晋升云原生环境下的可观测性,并交融稳态 / 敏态运维管理体系,为行内数字化转型策略护航,实现由大型主机运维向分布式架构运维的转型。
光大“全栈云”监控背景
图 1:全栈云架构示意图
图 2:运维监控体系架构图
光大银行通过开发测试云、生产云、金融生态云三朵云的全栈云体系建设,全面反对业务的麻利开发、继续交付和稳固运行,技术栈全面兼容 X86 架构与国产化 ARM 架构,全面反对混合云架构,提供两地三核心及异地多活能力,逐步推进行内利用云原生革新步调,实现以云原生利用为主,传统利用为辅的全栈云技术支撑体系,如图 1 所示。与此同时,光大还构建了残缺的云原生监控体系,实现了从基础架构监控(ITIM)、到利用性能监控(APM)、网络性能监控(NPM)以及用户体验监控(DEM)的全链路监控体系,全面监控云原生环境以及稳态零碎中业务运行的稳定性,如图 2 所示。
云原生利用监控实际
图 3:APM 技术架构图
光大银行在全栈云平台构建利用性能监控(APM)解决方案,通过智能探针技术(SmartAgent),实现对平台利用零碎的主动装置与监控。探针监控应用字节码等相干技术,无需对程序代码进行批改,即可实现对应用程序的执行过程进行全面监控与追踪。APM 平台服务端采纳大数据处理架构,次要技术框架如图 3 所示。
通过 APM 产品中全栈(Full-Stack)探针的能力和平台的数据分析能力,实现了利用性能评分体系、调用链路追踪、代码级故障定位以及指标 / 日志关联剖析等能力。
一、利用评分体系
通过对利用性能体验相干指标的综合评分,构建利用评分体系。评分体系通过对利用的 Apdex 评估、响应速度及错误率作为评估根据,通过 100 分制的权重计算,得出利用零碎的性能评分。
Apdex 为 Application Performance Index 的缩写,是 Apdex 联盟凋谢的用于评估利用性能的工业规范,通过利用响应工夫评估用户称心水平,并量化为 0~1 的满意度评估(数值越趋近于 1 代表用户越称心,利用的最终评分也就越高)。
响应速度为该利用业务申请的均匀响应速度,响应速度越快,评分越高。
错误率是指利用调用过程中呈现各类谬误样本占总样本数的比率。谬误蕴含常见的网络谬误、程序执行报错、数据库谬误等,这些谬误都有可能会影响到用户应用业务的成果及性能体验。因而,错误率越低,最终评分越高。
通过把握利用零碎的横向评分比照以及历史得分参考,通过评分疾速把握以后利用零碎的总体运行状况,由原来对利用运行好坏的主观评估,变为量化评估。
二、调用链路追踪
通过 TraceID 主动写入技术,实现对利用从程序入口到执行全链路进行监控与追踪,主动绘制程序调用拓扑。APM 探针在利用调用的入口办法的 Header 中,主动注入惟一的 TraceID 及调用层级,随着利用的一直调用,将 TraceID 在不同调用的 Header 中进行传递,并记录每一个调用层级数据,通过探针将上述数据及性能监控数据进行回传,基于有向无环图(DAG)的原理,构建利用的调用链追踪拓扑。
在同步中,基于利用性能好坏,通过不同色彩标注,绿色示意优良 / 失常,黄色示意迟缓,应用红色的圆环示意错误率的占比。从而直观发现利用性能问题,晋升云原生环境下的可观测性,实现利用故障的疾速定位及影响范畴剖析。
三、代码级故障定位
通过字节码、自研 SuperTrace 等技术,实现对应用程序在内存执行过程的全面监控。
以 Java 利用举例,字节码技术是指当被监控对象的类加载时,通过 java.lang.instrument 包提供的字节码加强技术,对所加载类进行动静批改,以获取各个办法执行开始工夫、完结工夫、返回状态等相干数据,可实现对常见数据库调用、消息中间件调用、近程 RPC 调用以及自定义办法调用等各种程序执行过程的全面监控,从而把握应用程序迟缓根因,疾速定位利用故障或迟缓是由哪个或者 Class(类)、Method(办法)的问题所导致的,并可定位到故障 / 问题所在代码行号。
自研的 SuperTrace 技术则是通过 JDK 所提供的 JVM 监控技术,对内存堆栈中各办法的入栈、出栈工夫进行实时扫描,并通过出入栈工夫和各个办法互相拜访调用关系,通过本地 Agent 进行数据上报。为节约探针端内存扫描的资源开销,探针会从服务端获取数据采集策略。平台可配置数据采集的触发阈值,只有当办法执行工夫≥100ms 时,才会对相干办法的明细数据进行采集,从而大幅升高了 JVM 扫描频次和系统资源占用。
上述相干形式抓取到的数据,反对以单次申请(以 TraceID 为惟一标识)维度进行查看,以快照模式进行存储与展现,在平台以程序调用瀑布图的形式进行展现,能够直观发现慢申请的产生地位以及各个办法的调用秩序。
四、关联剖析能力
通过将故障产生时的基础架构相干指标,如 CPU、内存、JVM 等数据进行联动剖析,疾速定位故障成因是基础设施资源问题导致还是程序自身问题导致。
以后探针在采集 APM 利用性能相干数据的同时,还会通过 JNI 接口(Java native interface,Java 本地接口)中的相干 API,同步获取操作系统的底层数据信息,如 CPU、内存、磁盘 IO、网络流量开销、零碎 IO、过程数据、内存数据等一系列基础架构监控的指标数据。
再通过基于事件、工夫戳和节点信息的关联剖析,将 APM 数据与基础架构指标数据进行联动,同步剖析该利用产生性能问题时的基础架构监控指标变动状况,从而实现问题关联剖析的能力。
五、智能探针技术
通过 SmartAgent 技术,全面兼容非容器 / 容器环境的各类利用,反对独立过程、DaemonSet、Image 等多种形式进行探针装置,全面兼容 K8S,从而实现了探针的繁难部署、主动监控。
智能探针可反对通过守护过程对容器的调度状况进行监控,当发现有被监控容器生成时,将先判断该容器环境应适配哪个类型的探针(如 Java、Python、Node.js 等),而后主动将匹配好的探针进行主动装载和配置信息批改,实现探针的主动发现、主动注入的能力。
同时,在 APM 平台还可配置不同的监控策略和批量进行探针启停治理。可应用过程名称、镜像名称、环境变量、正则表达式等多种形式,进行服务过程的命名与合并,定义服务与利用的逻辑层级关系。
通过上述主动发现能力主动注入、探针对立调度策略管理等能力,实现了容器漂移或重启时主动监控的相干性能。
端到端监控实际
光大银行除了在利用服务端进行性能监控实际之外,还针对利用零碎如网上银行、手机银行等前端利用进行了用户体验监控(DEM)实际。通过 DEM 的产品建设,把握用户实在业务应用过程中的性能体验及问题,并通过端到端买通的形式,构建从用户到代码的全链路监控体系。
通过前后端关联剖析的能力,能够通过平台疾速理解以后零碎的整体运行状态,剖析次要问题是产生在网页端、手机 APP 端还是 H5 页面端。从数据中心外部看,问题是在哪个集群、哪一类利用上,次要问题是利用自身问题,还是近程调用,或是数据库问题导致。
前端监控别离通过被动模仿监控形式和 JS/SDK 注入形式,获取用户应用业务过程中的网络申请性能数据、页面加载性能数据及应用中遇到的慢卡顿等各类问题,全面掌握业务在各个区域、各类网络、各个机型和重要业务流程中的可用性与连续性。
平台具备端到端的关联剖析能力,基于 TraceID 在 Header 中传导的原理,将前后端的性能数据进行关联,实现针对繁多调用前后端关联剖析的能力。举例来说,一个用户申请较慢,发现服务端解决用时偏高:点击进入到快照剖析中,找到相干快照记录,通过点击服务端快照的形式,以后端利用发现性能问题,定位为后端服务响应速度慢时,能够通过快照跳转的形式,跳转到 APM 平台进行关联剖析,直至定位到问题的故障代码。
收益与瞻望
通过本期我的项目建设,构建了利用零碎前后端的性能监测能力,全面兼容光大全栈云平台,实现对云原生业务的 Trace、Metric 和日志数据的收集剖析,并通过前后端关联的形式,理解了利用可用性指标与运行状态,实现了问题代码级根因定位的能力。
依照 Gartner 对于 IT 运维零碎建设步骤的倡议,将 IT 建设过程分为 5 个阶段,从低到高可分为可用性监控阶段、指标体系建设阶段、故障根因定位阶段、业务洞察阶段和流程自动化阶段。以后光大银行零碎建设曾经实现了第一到三阶段中可用性监控、指标体系建设和事务追踪的初步监控能力,实现了故障的根因定位与诊断能力,根本实现了第三阶段的建设指标。后续我的项目建设将在现有根底上,实现以下内容:首先,进一步欠缺指标体系和性能监控范畴与规范,构建对立主观的评估体系。其次,基于现有监控指标数据,实现业务的商业洞察,理解用户的应用流程和轨迹,从性能和支出角度综合剖析 IT 服务撑持成果和用户应用习惯,真正从运维动手,来促成和晋升业务经营。第三,实现多维度数据的一直积攒,为全面的自动化运维奠定良好的数据根底和实际根底,构建不同维度的 AIOps 落地场景,在奠定根底的同时晋升运维及业务收益。
博睿数据作为中国当先的智能可观测平台代表厂商,目前也是对应产品计划可能落地四大行生产环境的重要厂商。博睿数据将近年优良实际整顿为《金融行业精选客户案例集》,在上一版收录建设银行、农业银行、泰康保险等客户的根底上,本次新增光大银行、安全银行、中银证券等优良的行业案例,心愿通过抛砖引玉,为行业提供一批可复制可操作的先进经验,同时心愿可能促成更多业界的单干与交换。
扫描海报下方二维码,收费获取博睿数据最新版《金融行业精选客户案例集》。