2019年,“Kentik公司的一项调查表明,如今40%的组织认为自己是多云用户,他们的组织拥有两个或多个云服务提供商提供的云服务。三分之一的组织拥有混合云环境,其中至少有一个云计算服务提供商提供的云服务和内部部署数据中心或第三方的数据中心基础设施。 在此发展趋势下,IT运维管理工作进入了“运维最好的时代”,同时也是“运维最坏的时代”。企业在越来越重视IT运维对业务发展的价值的同时,发现IT架构发生了巨大变化。
着眼于运维领域,面临如下困局亟待解决:
由此,也引发了IT运维领域新的探索与实践,出现了不同以往的“SRE”、“可观测性”、“AIOps”等理念。为了解决新一代IT架构下上述难题,首先要解决系统运行状态数据化表征的问题,业界提出了“可观测性(Observability)”概念。
2017年,Peter Bourgon 提出的可观察性三大支柱——指标(Metrics)、调用链(Tracing)和 日志(Logging),这三个维度几乎涵盖了应用程序的各种表征行为,开发人员通过收集并查看这三个维度的数据(Telemetry Data)就可以做各种各样的事情,时刻掌握应用程序的运行情况。这已经成为当今可观测领域的标准,也是体系建设的地基。
落实可观测性的举措往小了说就是生产+收集+处理+消费观测数据。收集应用环境的观测数据并不是什么新鲜事。然而,从一个应用程序到另一个应用程序,收集机制和格式很少是一致的。
对于开发人员和SRE来说,这种不一致性可能是一场噩梦。在全球范围提供可观测性解决方案中,不得不提及以下协议/工具,在支撑观测数据生产、收集、处理方面带来极大的便利,而全链路追踪则是运维领域实践可观测性消费的重要举措:
从链路层、数据层、应用层分别来看,要完成全链路追踪仍需要解决众多问题。链路层遇到的问题和挑战包括有云原生/虚拟化环境内外部流量数据的汇聚、复制、分流、过滤技术手段不完备,云原生/虚拟化环境与物理交换机环境流量数据建链困难;缺乏基于完整链路的性能监控分析。
数据层遇到的问题和挑战包括:不规范的日志(Logging)、调用链(Tracing)数据难以准确刻画出业务端到端拓扑,造成观测目标数据的不完整;不够精准的指标体系(Metrics)引起的信息干扰或分析失效。
应用层遇到的问题和挑战包括:传统的应用性能监控技术理念对于云原生/虚拟化环境下IT组件的观测能力要求不匹配。例如:多组件间异步交互的关联与排序、基于时间切片的调用链回溯等。 同时,从业务场景总体来看各层级内、层级间缺乏完整的端到端贯穿,无法完整描绘的被观测系统。
云智慧经过10多年持续实践、积累、探索、创新,构建并落地了完整的面向新一代IT架构的全链路追踪解决方案,下面我们将体系化的介绍一下该方案的技术理念及落地举措。
目前处于手工运维。 随着业务发展,容器化应用,人工运维无法满足相对复杂业务的监控和业务链路追踪需求,快速响应业务,运维发展跟不上业务发展。
有少量的监控工具。如基础监控,网管监控工具,开源工具Zabbix等。但工具分散无法基于业务全链路追踪体系。
有比较全的监控工具,有一些可以形成链路的工具,如商业化应用性能监控,开源的ELK日志监控,同时也在探索Pinpoint、SkyWalking、OpenTracing标准等。但应用较传统,改造日志需要规划,无配置管理辅助形成全链路追踪。
规划统一运维管理,目标是利用AIOps的能力提升调用链追踪,借助智能运维能力达到初步智能运维水平。工具层建设比较全,开源的、商业的,CMDB等。但对于调用链无法全面的展示和灵活使用全链路追踪数据。工具分散无法基于业务全链路追踪体系。链路不完整,链路和监控工具,监控数据无法形成合力,配置管理无法应用到全链路追踪场景。
全链路业务追踪整体解决方案整体依托监控工具和智能运维平台,主要包含以下四个解决方案,日志链路追踪解决方案、应用链路解决方案、网络链路解决方案、基于融合数据的全链路追踪解决方案。 前三种解决方案依托监控工具,第四种基于融合数据的解决方案,融合各种运维数据,基于智能运维中台和算法能力。实现最终全链路最终目标。
全链路业务追踪基本目标,显著缩短平均故障恢复时间。在运维过程的各个关键环节进行保障
通过以上过程,主要是故障发现阶段尤其是分析与解决阶段的效率提高,显著缩短平均故障恢复时间MTTR 整个过程中智能算法的作用
回顾全链路追踪领域面临的问题和挑战,通过落地实践本方案内容,得到有效解决。