关于后端:可观测性工程为软件系统开启第三只眼

18次阅读

共计 3214 个字符,预计需要花费 9 分钟才能阅读完成。

「可观测性工程」(Observability Engineering) 是一个近年来在软件工程和系统管理畛域中逐步受到关注的概念。 它次要关注的是:如何更好地了解、监控和调试简单的分布式系统。

DevOps 浪潮曾经给「软件工程」相干的实际带来了极大的影响。首先体现在各个职能团队越来越严密的合作和沟通,开发、测试、运维等交融在一起独立公布产品。其次软件流水线的工艺也更加自动化。

然而,不论咱们如何娴熟的应用云平台、容器平台和微服务所带来的高可靠性、自愈能力和稳定性等等劣势,当咱们在生产环境中 Debug 故障时,咱们仍然是凭教训猜想,还是不得不在多种监控工具之间解读着七长八段的数据,MTTR 故障修复工夫依然长的忍气吞声。咱们应该能逐步意识到: 利用零碎的现代化所带来的也不是益处,还有更多的是「复杂度」。

软件应用零碎自身和其运行环境的复杂度在逐步攀升,支离破碎的运维治理的工具正在迅速蔓延。

简略的信号量数据的叠加和关联就足够了么?监控工具伎俩的更新换代是否就能够实现可观测性?在继续没有找到答案的时候,《observability engineering》这本书出版了。

观测云团队译 - 中文版可至各大电商平台购买

本书是第一本只探讨「可观测性」主题的书籍,围绕这个主题做了相当深度和广度的探讨,上面是对于核心内容的脑图。

「可观测性」应该成为软件在交付生命周期中的不容忽视的一个重要属性。

加强可观测性的次要益处是进步零碎的可靠性、性能和安全性。 当零碎呈现问题时,领有良好的可观测性意味着能够更快地发现、定位和解决问题。随着古代软件系统变得越来越简单, 可观测性工程成为了确保高可用性、性能和用户满意度的要害因素。

《可观测性工程》这本书分为五个局部,从历史到将来,从实践到落地,从团队到组织,从商业到文化,内容十分全面。对不同角色和职位的人都有不同的意义:

● 运维:能够晋升眼界和实际能力,你会更好的辨认和反思以后所处的困局,会从分门别类的监控工具集利用,转向「聚焦生产环境问题的疾速辨认和解决」。
● SRE:使得对基于 SLO 的监控更加有信念,特地是降级对遥测数据采集、数据结构、后盾存储和在团队中推广等方面的认知。你将会更无效的和产品团队单干。
● 开发:能够把握可观测性驱动开发的概念,当前就会对利用零碎的运行状态一目了然,它是 DevOps 和 SRE 技能组合中不可短少的一个局部。
● 经理和管理者:这是在产品团队中,在整个组织里大范畴落地可观测性左移的必备常识,散布在各个章节里的实在案例剖析也是不可错过的内容。
● CXO:轻易理解到投资可观测性的技术要点,用于后期的投资和收益的评判,用于中后期治理的成熟度模型。

《可观测性工程》书籍中的亮点和翻新之处在于: 将可观测性的基础知识局部,用开发一种全新的可观测性程序的形式进行形容。首先解释:这个程序最底层的构建因素的角度、剖析可观测性的最底层数据结构。而后,咱们能够很容易的将这些数据利用到用它们来形容:利用零碎在生产环境中的状态的变动过程。同时还提到了如何对接开源的 OpenTelemetry 数据;心愿开发的同学能对此种形容办法倍感亲切,同时让运维和 SRE 同学也能领有一个全新的视角。

《可观测性工程》一书的另外一个独特之处,是引入的「用第一性原理调试利用故障」。

尽管可观测性治理的根本流程也是收集、存储和剖析应用数据的过程,这看起来和其它单点的监控性能类似。然而,有没有一个对立的思路能够贯通这个过程始终,并且推动这个过程一直的循环起来?本书中所形容的「外围剖析循环」是会令你耳目一新。在生产环境排错的过程中,所有人都将关注点和焦虑点都放在「谁?什么时候?能够在零碎中定位到哪个最精确的惟一(假想)的根因(root cause)」。这种过分关注的后果想法,让咱们曾经疏忽了在 Debug 过程中,咱们应该应用什么思路,去摸索未知景象中暗藏的未知利用运行的多重故障起因。

本图源于 Honeycomb 文档网站

「外围剖析循环」并不是零碎宕机后的救命稻草,而是一种感性沉着的思考办法,咱们能够在事变的前中后任何时刻想到它。它能领导咱们进行更加深度的剖析思考,在一个理智的摸索过程中,你会更加有条理的得出一连串假如,并一一求证,在评判各种已知数据的时候,你同样须要不停的狐疑所有,颠覆所有论断的勇气。切勿让单点工具的全面察看角度、对历史教训数据的依懒性,限度了咱们 debug 生产零碎的想象力,限度了人脑更适宜做网状的简单关联剖析的能力。

上面是本书中的一些精彩片段。

■【序言 – Cindy Sridharan】:本书没有关注协定或规范,甚至各种遥测信号的低级示意,而是将可观测性的三大支柱构想为结构化事件、假如的迭代验证以及「外围剖析循环」的三位一体。依据第一性原理对可观测性的构建因素进行整体重构,有助于强调仅通过遥测信号(或简略应用获取这些信号的工具)并不能最大限度地践行观测零碎的所有行为。
■【11.6 章 – 可观测性左移】:可观测性驱动开发容许工程团队将他们的玻璃城堡变成能够互动的游乐场。生产环境不是变化无穷的,而是充斥了生机。工程师应该有能力和自信来应答任何异样并且取得胜利。
■【14.4 章 – Slack 案例钻研论断】:我分享了 Slack 如何探测 CI 流水线以及如何调试分布式系统的示例。开发人员理解生产环境中的代码状况,首先要思考的应该是调试分布式系统的复杂性。然而,在公布到生产环境之前,如何正确理解和调试分布式系统同样具备挑战性。

小编集体认为:本书残缺地答复了大量的问题,可观测性是什么?如何构建?如何左移?实现可观测性治理平台中的重要技术要点?如何在团队和组织中落地和规模化可观测性?怎么构建可观测性文化?等等。

总的来说:这是一本在「可观测性」主题上用心良苦的作品,意在疏导大家走上构建利用零碎可观测性的正确路线。

Amazon 上对于本书的评论总结:

  1. 可观测性在大型公司外部的推广是社会问题,须要压服管理层,书中提供了这方面的领导。
  2. 书中蕴含了一些行业领导者的案例钻研,介绍了他们如何利用可观测性办法监控生产环境。
  3. 书中探讨了可观测性的基本概念,它是社会技术零碎,可能促成开发人员和业务人员之间的沟通。
  4. 强烈推荐本书,它实用于任何心愿为客户构建零碎的人,并具备理论利用价值。

最初,小编认为一个软件系统应该领有三只眼:

1. 稳固之眼: 从 SRE 站点稳定性工程的角度讲,零碎的稳定性是最重要的 feature,没有之一。稳定性蕴含了服务必须具备的可用性和足够的性能。只有运行在生产环境中,被用户能失常拜访和应用的代码能力施展出它应有的价值。在运行的过程中,利用零碎会宕机、运行环境可能会出问题,这都会导致利用零碎的无法访问和应用;或者零碎的 Bug 导致的高错误率,让零碎处于半死不活的状态,用户也能从界面上看到千奇百怪的谬误。零碎是否进入了非正常的不可用状态?零碎是否正在经验着性能抖动的过程?错误率是否低落到行将溃坝?这些景象实质是产品的稳定性有余导致的,而这些景象是否可见,故障本源是否能疾速定位?咱们就须要用到第三只眼。
2. 混沌之眼: 它是混沌工程,旨在对生产环境中注入人为的故障,在云环境中能够应用的伎俩很多:随机的敞开虚拟机、随机的杀死正在运行的过程、在网络中注入导致网络拥塞的数据包等等。在谬误注入的过程中,咱们关注于利用零碎还是否能失常应用;利用零碎如果宕机了的话,它的故障模式是怎么的。然而,可视化这个过程,可视化利用宕机现场的细节,都须要用到第三只眼。对于混沌工程的复盘和数据分析能帮忙利用零碎进步稳定性,打消单点故障,晋升故障容忍度和自动化迁徙等等。
3. 可观测之眼: 可观测性是利用零碎自身的一种属性,可观测性的出现不仅须要在利用程序代码中进行埋点加强(充分条件),还须要不便的采集遥测数据,这些都须要用到可观测性治理平台:可观测信号量的收集、上报、存储和展示剖析等性能。可观测性治理平台是「可观测性」浮现 / 体现进去的必要条件。

正文完
 0