1.监控
监控是在线监测、处理IT对象运行状况的工具与过程管理。监控相当于给运维团队分配了成千上万的机器人,这些机器人驻扎在硬件、平台软件、应用系统等对象中,7*24不间断的采集指标数据,并将指标的异常情况,甚至故障点信息实时触达到正确的人,确保异常信息得到响应。监控是运维组织发现潜在风险与异常的主要手段,推动监控发现的覆盖面、准确率、告警触达能力的提升,是缩短故障发现时长的关键举措。
监控的目标是“不漏报、少误报、高响应”。“不漏报”主要来源于工具能力不足与工具应用不到位,前者关注平台能力建设,重点是选择一个可扩展性的监控技术平台、监控生态,以及持续完善的监控研发能力;后者重点是建立最小监控覆盖面基面、主动式的监控覆盖面治理,以及围绕监控覆盖面治理的流程机制的完善。“少误报”主要解决大量反复误报告警让运维人员麻木、消极,进而忽视监控告警,错过了真正的监控告警的处理的问题,主要从从报警策略与报警管理入手,前者关注源端监控工具策略的精准度、统一告警对告警的收敛与抑制,后者关注告警处置涉及的维护管理、告警数据治理。“高响应”指监控告警出现后的处理时效性管理,关注告警分级、触达、升级、治理,以及响应管理要求。
从工具角度看,监控工具是一个能力集合,行业主要的解决方案包括涉及基础设施、平台软件、应用软件、应用功能、客户体验等层面的源端监控工具,以及集中式的统一告警管理组成。如果组织监控工具投入资源可以得到保证,还会建立监控性能指标数据的集中管理,这个解决方案目前越来越受一些中大型运维组织的青睐。
2.拨测
拨测是一种主动性的监控测试方式,主要利用跨区域的监控网络,以真实终端用户使用场景为视角,对目标应用进行功能可用性、性能管理、网络性能角度的监控,先于最终用户挖掘故障隐患。拨测通常是模拟用户访问域名、URL、API等方式,监测网络链路质量,监控web的事务可用性,主动感知用户端应用访问体验,先于客户发现问题。
拨测的目标是“模拟客户行为,先于客户发现风险”。这个风险可能是业务与服务可用性,也可能是客户体验问题。在技术手段上,借助一些传统对于页面、接口的拨测工具一个广泛使用的方法,也可以考虑以下思路扩展:一是借鉴全链路的思路,从用户旅程角度建立端到端的拨测方案。二是将自动化拨测的方案转为即时质检的思路,落地运行健康度切面信息。当然,对于海量的实时交易,真实客户行为本身也是拨测源头,如何在第一拨少量用户遇到问题时快速发现,并进行处理是实现拨测目标的扩展要求。由于拨测涉及模拟客户行为操作,组织可以根据政策、风险、成本等维度考虑选择不同的解决方案。
3.可观测
可观测性概念并非源于计算机软件领域,在控制理论中可观测是指系统可以由其外部输出推断其内部状态的程度。要理解可观测最近两年火热的背景,要理解复杂,即IT运行环境与技术架构复杂性,以及IT对生产对象掌握能力加深诉求两个因素导致。尤其是在云原生环境下,企业大规模地部署容器,应用节点呈指数级增长,故障可能发生在任意节点,无法感知与预测的因素越来越多,而传统监控、日志、可视化等工具只能看到单个环节、整体性问题,无法建立更细化的评估、分析运维掌控能力。可观测理念的提出,是运维需要从原来只负责可用性被动保障的角色跳出来,站在白盒角度看系统运行状况,剖析应用层面的运行信息。
因为复杂,运维组织对于IT系统的掌控力越来越小,传统监控的思路对IT对象风险点的发现,在复杂架构下,只能回答当前发现了问题,但是运维的目标是恢复连续性。可观测的目标是“发现风险并协助排障”,至少应达到故障定界。下面一图很好的解释可观测与监控的区别,自上而下看代表:告警、概况、排错、剖析、依赖分析,可以理解为处理监控告警的几个步骤:系统异常引发监控告警;受理监控告警,查看告警丰富后概述、关键系统运行指标,了解系统整体运行状态,根据专家意见做出故障识别与诊断;识别异常后,逐层下钻,进行运行分析,调取日志、数据库流水、报文等详细信息对异常进行进一步的分析排错;进一步深入到接口、方法、功能、性能层面进行异常分析诊断;调取模块与模块间的交互状态,通过链路追踪,建立生产对象上下游关系进行分析,建立关联分析能力,辅助判断问题根因。
“可观测性”能力是结合云原生架构下对故障发现与排障需求的一个最佳实践,并在工具层面提出围绕在日志(logs)、指标(metrics)、链路(trace)三个要素。分别代表的意义是:
日志记录(logs),软件在执行过程中产出的信息。日志数据很丰富,包含正常程序处理过程、异常报错等信息,详细解释系统的运行状况,但由于日志格式不统一,通常需要先进行加工处理以更好的消费。
追踪链路(trace),处理请求范围内的信息,可以包括从终端到服务端、到上游关联系统服务节点,甚至细化到接口、方法、函数等多个维度的链路关系。链路关系能够帮助更全面的了解请求生命周期中系统各个组件的健康情况等。
指标信息(metrics)。指标是反映某个主题的量化、聚合性数据,是一个可度量数值,监控策略就是建立在一个个评价系统健康情况的指标之上,智能异常检测、系统感知、效能评估、IT服务管理等也同样是基于指标构建。
构建可观测系统,是为了让运维在复杂架构下具备深入剖析问题的能力。相比传统监控平台,可观测是一项综合整合多种数据的、解决“未知”问题的解决方案,监控是针对“已知”故障的监控,传统监控数据是可观测系统应用的一部分。监控需要提前了解系统数据,建立针对运行数据的监控策略,而可观测是从全局角度分析数据,良好的可观测能力需要在设计阶段进行非功能性前移,当系统异常时能够让运维快速了解问题的现状和影响,并能够深入探索、跟踪问题的根因。
另外,可观测与以往的运行可视化也有一些区别。可观测系统不是一个简单整合数据可视化或落地好看的仪表板,而是要在异常发现、诊断、定位过程中发挥作用。相比以往构建的可视化,可观测系统不仅需要整合更丰富的链路、日志、指标数据,还需要更加标准的数据内容才能达成整合效果。要得到满足条件的数据,需要运维、研发通力协作,在软件设计过程中考虑相关数据埋点。所以,在构建可观测之前务必要分别调动研发、测试、管理决策层的兴趣,挖掘各方的痛点与期望,即不仅仅要考虑运维工程师希望实现的快速故障定界、诊断的作用,还要考虑可观测如何解决研发、测试工程师的架构失控、性能管理、变更后验证、了解生产运行环境、基础设施、了解程序上线后运行状况等问题。以及,如何解决管理决策层建立穿透式的量化运行状况掌控力,并进行指挥决策。4.巡检
巡检是主动对IT运行风险的评估发现,包括常规巡检与深度巡检,前者是高频、例行的分析,通常融入到常规运维流程;后者主要从成本角度区别于常规巡检,比如加大评估分析面、分析深度、预测分析、协同范围、问题跟踪等,通常深度巡检带有一定的风险分析主题。
巡检的目标是“主动评估风险”,强调的是一种主动发现风险的数字化思维模式与组织协同文化。在数字化运维阶段,巡检需在操作上要进行升级,将巡检从常规操作性例行工作与监控管理区别开,不断鼓励、促进运维专家转变被动工作方式,建立巡检的管理机制,不断的固化巡检规则、任务、报告、数据感知等解决方案,是主动运营的一个转变表现方式。比如:围绕业务连续性保障相关的重要系统性能&容量&质量管理主题的数据运营、平台软件性能&容量&质量管理主题的数据运营、重系统运行状态感知、重要系统上下游看板、交易终端交易分布、客户订单感知、功能号运行感知、业务品种分析、清算过程管理等主题分析,以及扩展到IT服务管理相关的监控告警处置效率、生产变更发布风险、应急处置效率、生产已知缺陷看板、故障应急过程管理、配置管理等主题分析。
5.风险感知
百度百科对“感知”的定义是“对内外界信息的觉察、感觉、注意、知觉的一系列过程”。风险感知包括对客观风险信息的“知觉”,与运维专家经验知识的“感觉”。我对“感知”一词的认识来源于几年前《全数字化赋能》一书。书中定义了数字化的感知力,是指通过收集数据与见解,察觉企业所处环境的重要变化,感知力包括行为感知与情景感知,行为感知是指深入了解员工、客户的行为与想法,情景感知是对商业环境与运营环境的感知。“感知”与“决策、执行”共同组成了我对数据智能思维框架的三要素,打造数字化IT风险管理的风险感知场景将是数字化运维体系的重要方向。风险感知场景关键的三点是:影响风险的客观信息组合、专家知识的融入、扩展到决策与执行的闭环。
风险感知是场景,将整合上述监控、拨测、可观测、巡检的一些基本能力,并基于场景需要构建工具需要具备的功能、流程机制,配套组织角色。风险感知之所以能成为场景,在于风险感知在运维体系中是一个既能独立运作,又能与其他场景相结合产生更全面与深度的效能。在组织、流程、平台、场景四位一体的体系方案中,场景接近用户工作,包括“人、事、时间、协同、环境”5要素,提升场景价值不是重复造轮子,要善用、组合已有的平台能力。总结一下前面提到的监控、拨测、可观测、巡检四项能力的目标:
监控:目标是“不漏报、少误报、高响应”,从风险角度重点关注即时发现风险,包括众多风险监测的“点”,偏被动。
拨测:目标是“模拟客户行为,先于客户发现风险”,从风险角度重点关注业务层面的风险发现,是以终为始的风险发现,由业务风险带动其他风险的发现,专注业务层面风险的“点”,偏主动。
可观测:目标是“发现风险并协助排障”,从风险角度重点关注发现风险与辅助风险解决的赋能,包括多个“点”组合的“面”,但基于“指标、链路、日志”形成一个最佳实践的方法,偏被动。
巡检:目标是“主动评估风险”,从风险角度重点关注健康质检,或更深度或广度风险评估,包括多个“点”组合的“面”,偏主动。
结尾:有想做拨测技术交流的朋友可以+vx:awczj0110进群