
108
|
第
11
章
如果你在用户请求中获取到了更有效的探针细节,你就可以系统性地从任何角度来开始
排查,每次都可以按照自己的方式去寻找你想要的结果,而无须凭借自己的直觉或者以
前的经验猜来猜去。这就是可观测性对于监控系统的一个革命性的进步,它让运维工程
重新回到了科学的领域,而不是通过个人的经验和运气来发挥作用。
11.6 可观测性左移
测试驱动开发(
TDD
)需要确保开发的软件遵守独立的规范,而可观测性驱动开发则需
要确保软件在混乱的生产环境中工作。现阶段,软件散落在复杂的基础设施中,在任何
特定的时间点,都会经历波动的工作负载,某些用户会做出一些不可预测的事情。
在软件开发生命周期的早期就引入探针,会使工程师更容易看到一个小的更改在生产环
境中能够产生的影响。而只专注于单一的规范,团队就会无意中筑起一面墙,这面墙阻
碍了他们对混乱生产环境的可见性,在生产环境中,软件会遇到各种不可预测的问题以
及人为因素。正如你在前几章所看到的,传统的监控方法仅用来显示一些触发告警的已
知问题和相关事件的聚合视图。传统工具几乎不能准确推断现代复杂系统中到底发生了
什么。
由于无法准确推断出生产系统运行的情况,团队往往会将生产环境看成一座玻璃城
堡
—
随着时间的推移,大家集体设计了一座美丽的纪念碑,但是他们害怕变化,因为
任何未曾见过的事件都可能摧毁整个纪念碑的结构。通过持续迭代,通过部署和使用良
好的遥测和可观测性来理解生产环境中的行为,可以让团队日益加强对生产环境的掌控
度。因此,他们才有能力越来越融入软件开发的周期中,开始考虑检查和观测可能在这 ...