适读人群 :??软件工程师、产品经理、软件交付和运维人员。 ??SRE和DevOps。 ??所有从事软件开发、运维、测试等领域的专业人士,以及对系统可观测性感兴趣的人士。 可观测性对于构建、更改和理解驱动复杂现代系统的软件至关重要。应用可观测性的团队能够快速、从容地发布代码,识别异常值和异常行为,并了解每个用户的体验。本书基于最新的可观测性理论和实践,全面介绍了可观测性的概念、原理和技术方法。同时,本书还深入探讨了可观测性工程的设计、实施和优化过程,包括监控、日志管理、故障排查等方面。本书的内容权威性强,具有很高的参考价值和实用性。
来自Honeycomb公司的三位作者解释了良好的可观测性由哪些要素构成,展示了如何利用可观测性改进现有的工作,并结合具体案例阐释了实施可观测性面临的常见挑战及有效解决方案,提供了从传统工具(如度量工具、监控工具和日志管理工具)迁移的实际注意事项,还解释了可观测性与组织文化的相互影响。
学完本书,你将了解:
*可观测性概念如何应用于大规模软件管理。
* 在交付复杂的云原生应用和系统时实践可观测性的价值。
*可观测性对整个软件开发生命周期的影响。
* 不同职能团队如何以及为什么在SLO(服务水平目标)中使用可观测性。
*如何测试代码以帮助未来的工程师理解你今天编写的代码。
*如何为上下文感知的系统调试和系统维护生成高质量的代码。
*数据丰富的分析如何帮助你调试难以捉摸的问题。
【前言】
感谢你阅读我们就现代软件系统可观测性工程所写的这本书。我们的目标是帮助你在工程团队内开展可观测性实践。本书融合了我们在可观测性实践和工具(这些工具可以提升用户的可观测性实践)开发方面的经验。
作为在软件工程中推动可观测性实践的倡导者,我们希望本书能够清晰地阐明可观测性在现代软件系统背景下的含义—“可观测性”一词最近在软件开发生态系统中得到了广泛应用。本书旨在通过对以下内容进行深入分析,帮助你将事实与炒作区分开来:
?? 在软件交付和运营的背景下,可观测性的含义。
?? 构建基础组件来实现可观测性。
?? 可观测性对团队动力的影响。
?? 可观测性规模化的考虑因素。
?? 在组织中建立可观测性文化的实用方法。
【目标读者】
可观测性主要关注如何更好地理解现实世界软件的运行方式。因此,本书对负责开发生产应用程序的软件工程师非常有用。当然,任何支持在生产中运行软件的人都会从本书中受益。
此外,对于想了解可观测性实践如何为组织带来好处的软件交付和运营团队经理,本书(特别是侧重于团队动力、文化和规模的章节)将为他们提供有益参考。
任何帮助团队交付和运营生产软件的人(例如产品经理、支持工程师和利益相关者),以及对“可观测性”这一新事物感到好奇和存疑的人,都会从本书受益。
【为什么写这本书】
可观测性已成为一个热门话题,并广受关注。随着它的普及,“可观测性”不幸被误作“监控”或“系统遥测”的同义词。可观测性是软件系统的一个特征。而且,只有当团队采用新的实践进行持续开发时,才能在生产软件系统中有效利用这一特征。因此,将可观测性引入系统既是一个技术挑战,也是一个文化挑战。
我们对可观测性话题充满热情,而且直言不讳。我们对它如此热衷,以至于成立了一家公司,致力于将可观测性力量带给所有管理生产软件的团队。我们率先推出了一类新的可观测性工具,其他供应商也纷纷效仿。
虽然我们都为 Honeycomb 工作,但写这本书并不是为了向你出售工具,而是为了解释我们如何以及为什么将可观测性的原始概念应用于管理现代软件系统。你可以使用不同的工具以不同的方式实现可观测性。然而,我们相信依据我们在软件行业推进可观测性实践所做出的贡献和积累的经验,我们可以编写一份详细描述常见挑战和有效解决方案的实践指南。无论你选择何种工具,你都可以应用本书中的概念来动手构建具有可观测性的生产软件系统。
本书旨在让你了解使用可观测性管理生产软件系统的团队所面临的各种考虑因素和挑战。有时,我们可能会以 Honeycomb 为例来说明如何应对共同的挑战。这些不是对Honeycomb 的认可,而是对抽象概念的实际说明。我们的目标是向你介绍工作原则,不管你使用什么工具都可以在其他环境中应用这些原则。
【你将学到什么】
首先,你将了解什么是可观测性、如何识别可观测系统,以及为什么可观测性最适合管理现代软件系统。你还将了解可观测性与监控之间的区别,以及为什么和何时需要不同的方法。你还将了解为什么行业趋势有助于普及对可观测性的需求,以及它如何适应新兴生态系统,如云原生生态系统。
然后,我们将介绍可观测性的基本原理。我们将研究为什么结构化事件是可观测系统的构建块,以及如何将这些事件拼接成链路(trace)。事件是由内置在软件中的遥测技术生成的,你将了解开源计划,如 OpenTelemetry,这些计划有助于启动探测过程。你将了解基于数据的调查过程(用于定位可观测系统中的问题来源),以及它与传统监控中使用的基于直觉的调查过程有何实质性差异。你还将了解可观测性和监控如何共存。
在了解了这些基本的技术概念之后,你将了解随着可观测性的采用而出现的社会和文化因素。在生产环境中管理软件是一项团队运动,你将了解如何使用可观测性来更好地塑造团队动力。你还将了解可观测性如何融入业务流程、如何影响软件供应链,以及如何揭示隐藏的风险。当我们研究如何使用服务水平目标(SLO)来实现更有效的告警时,你还会了解如何将这些技术和社会概念付诸实践,并深入了解为什么在使用可观测性数据时,告警既可操作又可调试。
接着,你将了解大规模实施可观测性解决方案时面临的固有挑战。我们将首先介绍你在决定是否购买或构建可观测性解决方案时应考虑的因素。可观测性解决方案的一个基本性质是,它们必须在迭代研究期间提供快速答案。因此,我们将向你展示如何在管理超大数据集时解决高效数据存储和检索的固有挑战。你还将了解何时引入事件采样等解决方案,以及如何在权衡中找到适合你的需求的正确方法。你还将学习如何使用遥测流水线管理大量数据。
最后,我们将探讨采用可观测性文化的组织方法。除了向团队介绍可观测性之外,你还将学习跨整个组织扩展可观测性实践的实用方法。你将学习如何识别关键利益相关者并与之合作,如何使用技术方法赢得合作伙伴,并为采用可观测性实践提供商业案例。
我们大约 3 年前就开始写这本书,之所以花了这么长时间才出版,部分是因为可观测性领域正在迅速变化,实践也在不断进步。
原书作者:
*Charity Majors是Honeycomb公司(美国一家领先的可观测性平台提供商)的联合创始人和CTO,也是Database Reliability Engineering一书的合著者。此前,她在Parse、Facebook和Linden实验室等担任系统工程师和工程主管。
*Liz Fong-Jones是Honeycomb公司的Field CTO、可观测性社区的倡导者和可观测性的国际演讲者。她曾是一名拥有超过17年经验的开发者顾问和SRE(站点可靠性工程师)。
*George Miranda是Google的SRE,曾是Honeycomb公司的系统工程师、产品营销员和GTM负责人。此前,他在金融和视频游戏行业拥有超过15年的构建大型分布式系统的经验。
翻译+审校团队:
*观测云团队 观测云团队成员由来自不同领域的资深技术专家组成,包括云计算、大数据、物联网、人工智能、研发效能等。其首发的国内全链路可观测产品「观测云」,首批获得中国信通院颁发的「可观测性平台技术能力」先进级认证,并已被国内外客户所广泛认可。同时,观测云团队也积极投入对可观测性理念的实践与布道,希望这本《可观测性工程》,能为国内广大工程师开启一个全新的技术视角。
*中国信息通信研究院云计算与大数据研究所 中国信息通信研究院云计算与大数据研究所是中国信息通信研究院的核心业务单元,专注互联网新技术、新产业、新模式和新业态的持续发展。云大所长期关注可观测性的技术价值,并通过制定标准、技术研究和能力评估等方式,推动可观测性在国内的认知和落地。