DeepFlow助力银行全栈云构筑云原生可观测性 保障系统稳定安全运行
背景
应用云化、云原生化是企业全面数字化转型的必要技术基础,光大银行2019年开始建设新一代全栈 金融 混合云平台,在引入了多种云计算核心技术的同时,也开始采用云原生集群架构为应用架构服务化改造提供平台支撑,随着全行应用系统的逐步上云,全栈云的可观测性成为信息 科技 部关注的重点。
随着云原生技术的应用,网络、系统、应用运维均发生了革命性的变化,应用软件向微服务架构发展,微服务调用关系复杂,开发迭代速度加快,系统资源实时动态变化,云网黑盒化严重,应用迁移上云之后的系统稳定性、业务可靠性保障面临巨大挑战。
图1 云原生应用的复杂度(示例)
同时云原生基础设施与云原生应用的监控运维手段也面临很多新问题,具体包括:
1. 微服务架构下多语言、多网络协议带来应用的埋点成本高;
2. 微服务化导致业务调用链过程复杂,全链路追踪难;
3. 应用交互跨容器、虚拟机、宿主机多层,故障定界难;
4. 网络路径交织复杂、动态多变,逐段抓包难,故障定位难;
5. 应用、系统、云网的指标数据、日志数据、追踪数据、标签数据存在高基多维的特点,数据关联、分析、呈现处理技术复杂;
6. 云原生应用与云原生基础设施之间的数据存在鸿沟,缺乏统一的运维能力,导致应用监控运维与基础设施运维协同难度高,故障处理效率低;
7. 应用从分布式架构向云原生迁移过程中,缺乏有效的工具支撑云原生应用的开发、测试、迁移。
这些变化和挑战给光大银行的IT运维、业务保障带来巨大的困难,传统监控运维手段难以满足云技术变革背景下的运维需求,构建云原生统一可观测性平台就成为解决这类问题的必然技术选择。
DeepFlow云原生可观测性平台
在光大银行新一代全栈金融混合云平台的规划初期,技术团队即结合此前工作中的经验总结,将全栈云和云原生业务的全面可观测性列入到云平台的重要能力中,同步规划、同步验证、同步建设DeepFlow云原生可观测性平台。
整体方案中包括了DeepFlow云原生轻量级采集探针和DeepFlow云原生可观测性分析平台。
DeepFlow轻量级采集探针实现了对云原生可观测性数据的低成本、全面采集,具体包括:
1. 通过BPF技术对IAAS层、PAAS层及NFV网元(LB、NAT Gateway、分布式路由等)的虚拟网络的全链路全流量采集能力,实现业务端到端的网络指标数据、追踪数据、日志数据的统一采集;
2. 通过eBPF技术构建对云原生应用无开发语言依赖、无开发框架依赖、无计算平台依赖的无侵入采集能力,实现云原生应用指标数据、追踪数据、日志数据统一采集;
3. 通过采集探针的开放接口,无缝汇聚Skywalking Agent的OpenTelemetry数据,实现云原生应用进程级的指标数据、追踪数据、日志数据的统一采集;
4. 通过容器平台的API能力,实时感知容器资源的动态变化,实现云原生资源、业务标签数据的统一采集。
DeepFlow云原生可观测性平台的核心技术和实现包括:
1. 通过Autotag技术自动为所有观测数据注入统一的属性标签,消除数据孤岛问题,以释放数据的下钻切分能力;
2. 通过SmartEncoding技术将属性标签编码为整型值,在标签注入阶段直接注入整型标签,以10倍的效率提升可观测性数据的存储、处理性能;
3. 通过高性能数据分析引擎,对海量、高基、多维、异构的可观测性数据进行统一的标记、关联、分析;
4. 通过应用调用链可视化追踪功能,实现对任意一次云原生应用请求从业务代码到框架代码、应用进程、代理进程、容器网络、云网络、NFV网元、物理网络的全链路追踪、指标观测、日志分析能力;
5. 通过网络可视化分析功能,实现了对云网络、容器网络的从宏观到微观的拓扑可视化分析、指标可视化分析、云网流量追踪、网络日志回溯等全方位的洞察能力;
6. 通过NAT追踪功能,实现了面向NFV网元运维的可观测分析能力。
图2 云原生应用调用链追踪
同时DeepFlow云原生可观测性平台实现了开放的可观测性数据共享接口,包括:
1. 通过HTTP等标准接口实现告警事件与公司统一告警平台的对接;
2. 通过API接口实现了Grafana对可观测性数据的全自动调阅,从而通过Grafana构建跨平台的数据查询、呈现能力;
3. SQL查询接口实现了与Skywalking数据共享对接;
4. 通过云原生采集探针的原始流量分发功能,为交易分析、安全分析提供容器网络流量的获取能力。
DeepFlow云原生可观测性平台实现了灵活的视图定制化能力,运维人员构建面向业务的运维监测视图,将云原生业务的服务质量映射为8~10个黄金指标(负载类指标、时延类指标、性能/异常类指标),通过主动的性能指标监测实现了面向云原生应用稳定性、可靠性的主动保障能力。
创新性实战经验
随着DeepFlow云原生可观测性平台的深入应用,在光大银行的全栈云及云原生应用运维中,通过大量的运维实战案例,充分说明了可观测性对于企业IT开发、运维、运营的巨大价值,真正实现了云原生业务的洞察能力和稳定性保障能力的,在实际运维中云原生可观测性平台发挥了直接有效的作用:
1. 在某应用从传统分布式环境向容器平台迁移工作中,开发测试环节发现该应用遇到性能压测明显受限的问题,通过传统的测试工具、APM工具在数周的定位过程中均无法找到问题根因,导致该应用的云原生迁移进度严重受阻,因此DeepFlow云原生可观测性平台紧急增加对该环境的采集覆盖和分析,在1分钟后完成了对该应用访问关系的绘制和应用调用追踪,在5分钟内通过指标分析发现了微服务中的性能瓶颈点和性能瓶颈根因。
2. 在云上某次***业务异常的故障定位中,需要消耗2名中级运维工程师数十个小时的工作量,进行Pcap抓包、读包定位,改用DeepFlow可观测平台提供的手段,通过1步绘制拓扑,8个指标观测,3端日志的关联分析,在30分钟内确定服务端软件异常,进而指导业务运维人员定位发现
3. RabbitMQ消息队列未及时处理,队列积压导致的应用同步状态异常问题。
4. 在某次云上数据库偶发性故障定位中,通过1步绘制拓扑,5个指标观测,3分钟内的日志分析,快速界定出故障源为数据库应用异常。
5. 在某次云上虚拟机访问不通的故障定位中,通过1步绘制拓扑,3个指标观测,1分钟内的日志分析,确定是由于虚拟机路由配置缺失导致。
实现价值
通过DeepFlow云原生观测性平台的构建,在光大银行的运维实践中,产生了巨大的实战价值,包括:
开云、网、应用“黑盒”
通过DeepFlow云原生观测性平台,打开了云网黑盒,打开了云原生平台的系统黑盒,打开了云原生微服务调用的黑盒。
闪速故障定责定界定位
DeepFlow云原生观测性平台的数据关联分析、极简高效的数据呈现,实现了分钟级时延故障定界,分钟级丢包故障定位,分钟级业务异常故障定界,疑难杂症的定位周期由数天缩短至30分钟内。
加速云原生迁移
在实践中,我们还发现通过可观测性不仅仅能加速光大银行线上生产故障定位,提升在线业务可靠性,还能够助力光大银行开发、测试阶段的异常发现、异常定位,缩短开发周期,提高上线代码质量。
而且通过DeepFlow可观测性的快速定界能力,能够厘清故障界面,提升光大银行内部对云、容器平台的可靠性认可,提升应用向云原生重构、迁移的信心。
打破组织边界,构建融合统一运维能力
随着云原生的发展,IT开发组织、运维组织的形态也正在快速变革中,通过DeepFlow可观测性构建光大银行跨云、容器、网络、应用的统一可观测能力,打通了光大网络团队、云技术团队、应用运维团队三个组织的运维边界,通过统一、客观的可观测数据,为跨组织协作提供客观依据,提升沟通效率,减少运维矛盾。
总结
在可观测性平台的建设过程中,我们也遇到很多挑战和困难,比如可观测性概念推广普及难,可观测性建设缺乏指导方法论和建设标准,用户组织架构与观测数据融合的矛盾。首先,对于可观测性概念用户普及难的问题,我们发现真实的原因是可观测性概念抽象、对象宽泛、与监控区分不清、缺乏衡量标准。如果要高效率的推广可观测性,首先要站在用户的角度,结合场景,合理阐述和布道可观测性。通过大量的技术通过与交流,我们总结了简单易接受的可观测性定义:
可观测性定义1:源于监控,又不止于监控;源于运维,又不局限于运维。
可观测性定义2:通过海量、多源、异构数据(指标、追踪、日志)的获取、关联、分析,最大化发掘IT系统数据资产的价值(IT系统大数据分析、数据挖掘)。
其次,对于可观测性建设缺乏指导方法论和建设标准的问题,经过在可观测性平台建设的过程中,我们认识到可观测性的建设不是一朝一夕、一蹴而就的,可观性平台的建设更要关注持续性、成长性,更要关注平台的如下几点能力:
1. 持续提升,不断增加新数据源的能力
2. 持续提升,不断扩充新标签关联的能力
3. 持续提升,不断发掘新的数据价值的能力
最后,对于用户组织架构与观测数据融合的矛盾,核心在于可观测性对于组织中各个团队的价值和收益,我们在DeepFlow可观测性平台的建设中,以价值为锚点,不断地推广、宣传运维数据打通、运维数据关联、运维数据融合的巨大潜力和价值,从而不断争取更多的团队和角色对可观测性的建设提供支持,从而构筑数据更加丰富,使用功能更加强大,数据价值更打的可观测性。