笔者从 12 年开始入行,从事 DevOps 研发工作,做过部署系统、监控系统、可观测性相关产品,也做过 SRE 一线和管理工作,对于可观测性的理解和实践,有一些小小的见解,利用本文和大家做一个探讨分享。本文主要内容包括:

可观测性在整个商业体系中的位置和价值

做一个事,首先得有价值,如果价值太小不值得投入。可观测性也不例外,我们首先分析一下可观测性在整个商业体系中的位置和价值。思考第一个问题:作为在线类产品,我们希望客户/用户有一个好的产品体验,那怎么算一个好的产品体验?

很明显,产品体验包括功能体验和可靠性体验。功能体验依赖产品设计和迭代速度,跟今天的话题关系不大暂且按下不表。可靠性体验呢?可靠性体验核心就是追求高可用、低延迟,通俗讲就是每次打开站点或app,都不报错,速度嗖嗖的。那如何才能具有好的可靠性体验呢?

其实如果一切正常,就应该是可用且速度快的,除非哪里出了问题,也就是发生了故障,才会报错或者延迟大增。那技术团队要做的,除了持续优化架构和性能,就是不断和故障做斗争了。降低故障发生的频率,降低故障的影响范围,降低故障的恢复时间。归纳为 6 个字:降发生、降影响!

怎么做?有没有方法论来指导?我们可以从故障的生命周期着手,来优化生命周期的各个环节,每个环节都做好了,理论上结果就是好的。故障生命周期的梗概图如下:

从大面上,可以分成事前、事中、事后三个大的阶段:

看起来寥寥数语,没有特殊的东西,但实际上每个环节要做好,都不容易。那可观测性,在这整个过程的职能是什么?在哪个环节发挥价值?

显然,可观测性,是在故障发现、定位环节发挥作用的,核心价值就是帮我们快速发现故障、快速定位故障,进而降低故障的影响。如此,可观测性的位置和价值就很明确了,用一张图概括: