猜你喜欢
可观测性工程

可观测性工程

书籍作者:夏丽蒂·梅杰斯 ISBN:9787111729099
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3027
创建日期:2024-04-08 发布日期:2024-04-08
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书基于作者在可观测性领域的丰富实践经验撰写而成,旨在帮助读者在工程团队内开展可观测性实践。书中深入分析了在软件交付和运营的背景下可观测性意味着什么、如何构建基础组件来实现可观测性、可观测性对团队动力的影响、可观测性规模化的考虑因素,以及在组织中建立可观测性文化的实用方法,还通过丰富的实例展示了如何利用可观测性改进现有的工作,并提供了从传统工具(如度量工具、监控工具和日志管理工具)迁移的实际注意事项。本书适合软件工程师、产品经理、软件交付和运维人员等阅读。
编辑推荐
适读人群 :软件工程师、产品经理、软件交付和运维人员
可观测性对于构建、更改和理解驱动复杂现代系统的软件至关重要。应用可观测性的团队能够快速、从容地发布代码,识别异常值和异常行为,并了解每个用户的体验。本书解释了可观测系统的价值,并向你展示了如何通过实践可观测性来驱动开发工程。
来自Honeycomb公司的三位作者解释了良好的可观测性由哪些要素构成,展示了如何利用可观测性改进现有的工作,并结合具体案例阐释了实施可观测性面临的常见挑战及有效解决方案,提供了从传统工具(如度量工具、监控工具和日志管理工具)迁移的实际注意事项,还解释了可观测性与组织文化的相互影响。
学完本书,你将了解:
? 可观测性概念如何应用于大规模软件管理。
? 在交付复杂的云原生应用和系统时实践可观测性的价值。
? 可观测性对整个软件开发生命周期的影响。
? 不同职能团队如何以及为什么在SLO(服务水平目标)中使用可观测性。
? 如何测试代码以帮助未来的工程师理解你今天编写的代码。
? 如何为上下文感知的系统调试和系统维护生成高质量的代码。
? 数据丰富的分析如何帮助你调试难以捉摸的问题。
目录
目录
序1
前言3
第一部分 可观测性的路径
第1章 什么是可观测性11
1.1 可观测性的数学定义11
1.2 把可观测性应用到软件系统12
1.3 关于软件可观测性的错误描述14
1.4 为什么现在可观测性很重要15
1.5 使用指标进行调试与使用可观测性进行调试的对比18
1.6 使用可观测性进行调试21
1.7 可观测性适用于现代系统22
1.8 结论23
第2章 可观测性和监控之间的调试实践有何不同24
2.1 监控数据如何用于调试24
2.2 可观测性如何实现更好的调试30
2.3 结论31
第3章 不通过可观测性扩展系统的经验教训32
3.1 关于Parse的介绍32
3.2 Parse的扩展实践33
3.3 向现代系统演进36
3.4 向现代化实践变革38
3.5 在Parse的转变实践39
3.6 结论42
第4章 可观测性与DevOps、SRE和云原生的关联43
4.1 云原生、DevOps和SRE简介43
4.2 可观测性:调试方式的过去与现在45
4.3 可观测性增强了DevOps和SRE的实践45
4.4 结论47
第二部分 可观测性基础
第5章 结构化事件—可观测性的构建块51
5.1 通过结构化事件进行调试51
5.2 指标作为构建块的局限性52
5.3 传统日志作为构建块的局限性54
5.4 在调试中有用的事件属性56
5.5 结论57
第6章 将事件拼接成链路58
6.1 分布式链路追踪及其重要性58
6.2 链路追踪的组件59
6.3 硬编码探针构建链路追踪61
6.4 将自定义字段添加到链路span64
6.5 将事件拼接到链路中66
6.6 结论67
第7章 遵照OpenTelemetry的探针68
7.1 探针简介68
7.2 开源探针标准69
7.3 使用基于代码的示例的探针69
7.4 结论75
第8章 通过事件分析实现可观测性77
8.1 从已有条件调试77
8.2 从第一性原理调试79
8.3 AIOps的误导性承诺84
8.4 结论85
第9章 可观测性和监控的融合86
9.1 监控适合的地方86
9.2 可观测性适合的地方87
9.3 系统与软件注意事项88
9.4 评估你的组织需求89
9.5 结论92
第三部分 团队的可观测性
第10章 在团队中应用可观测性实践95
10.1 参与社区95
10.2 从最大的痛点着手96
10.3 购买代替自建97
10.4 反复完善你的探针99
10.5 温和改进,积极复用100
10.6 全力冲刺101
10.7 结论102
第11章 可观测性驱动开发103
11.1 测试驱动开发103
11.2 软件开发生命周期中的可观测性104
11.3 从哪里开始调试105
11.4 微服务时代的调试106
11.5 探针如何提高可观测性107
11.6 可观测性左移108
11.7 利用可观测性加快软件交付108
11.8 结论110
第12章 使用SLO来提高可靠性111
12.1 传统监控方法造成危险的告警疲劳111
12.2 阈值告警只适用于“已知的未知”情况112
12.3 用户体验是一颗北极星114
12.4 什么是SLO115
12.5 结论120
第13章 处理和调试基于SLO的告警121
13.1 在错误预算消耗完之前发出告警121
13.2 将时间定义成一个滑动窗口123
13.3 预见性地创建预测消耗告警124
13.4 使用SLO与时间序列数据的可观测性数据134
13.5 结论136
第14章 可观测性与软件供应链137
14.1 为什么Slack需要可观测性139
14.2 探针:共享客户端库和维度140
14.3 案例研究:软件供应链的运营143
14.4 结论148
第四部分 大规模可观测性
第15章 自建与购买以及投资回报率151
15.1 如何分析可观测性的投资回报率151
15.2 自建的真实成本152
15.3 购买软件的真实成本156
15.4 购买与自建不是二元选择159
15.5 结论160
第16章 高效的数据存储161
16.1 可观测性的功能要求161
16.2 案例研究:Honeycomb的列式数据存储实现168
16.3 结论177
第17章 如何使采样精准且便宜179
17.1 使用采样策略来优化数据采集179
17.2 使用不同的采样策略180
17.3 将采样策略转化为代码183
17.4 结论193
第18章 使用流水线进行遥测管理195
18.1 遥测流水线的属性196
18.2 管理一个遥测流水线:解剖200
18.3 管理遥测流水线时的挑战202
18.4 用例:Slack的遥测管理204
18.5 开源替代方案207
18.6 管理遥测流水线:自建与购买208
18.7 结论208
第五部分 传播可观测性文化
第19章 可观测性的商业案例211
19.1 被动引入变更的方法211
19.2 可观测性的投资回报213
19.3 主动引入变更的方法214
19.4 将可观测性引入实践215
19.5 使用合适的工具216
19.6 知道何时你有足够的可观测性218
19.7 结论219
第20章 可观测性利益相关方和联盟   220
20.1 识别非工程可观测性需求220
20.2 在实践中创建可观测性同盟222
20.3 使用可观测性与商业智能工具225
20.4 在实践中结合使用可观测性和商业智能工具227
20.5 结论228
第21章 可观测性成熟度模型229
21.1 关于成熟度模型的说明229
21.2 为什么可观测性需要成熟度模型230
21.3 关于可观测性成熟度模型231
21.4 可观测性成熟度模型中的能力参考232
21.5 在你的组织中使用可观测性成熟度模型237
21.6 结论238
第22章 未来发展趋势239
22.1 可观测性的过去与现在239
22.2 其他资源241
22.3 可观测性发展方向的预测242
短评

可观测性工程 在当今数字化时代,信息技术的迅猛发展对各行各业产生了深远的影响。无论是云计算、人工智能还是大数据分析,所有这些技术都在不断地推动着企业和组织的创新与发展。在这样一个复杂而高速的技术环境中,可观测性工程变得至关重要。 什么是可观测性工程?简而言之,可观测性工程是一种方法和实践,旨在确保软件系统的可靠性和稳定性。它关注于通过实时监测、度量和分析来获得对系统行为的深入洞察力。通过收集、分析和解释关键的性能指标和日志数据,可观测性工程帮助开发人员和运维团队快速识别问题、解决故障,并不断改进系统的可用性和性能。 可观测性工程在构建和管理复杂的分布式系统方面发挥着关键作用。传统的调试和监控方法已经无法满足现代系统的需求。随着系统的规模和复杂性增加,传统的手动监测方法变得越来越困难和低效。可观测性工程通过自动化和智能化的方法,使得开发人员和运维团队能够更好地理解系统中发生的事情,并快速采取行动。 那么,可观测性工程具体包括哪些实践和工具呢?首先,日志管理是可观测性工程的核心组成部分之一。通过集中管理和分析日志数据,我们可以快速识别和定位潜在的问题。其次,指标监控是另一个重要的实践。通过收集和分析关键性能指标,我们可以及时发现系统的异常行为,并作出相应的调整。此外,分布式追踪、异常检测和事件响应等工具和技术也在可观测性工程中发挥着重要作用。 可观测性工程的好处是显而易见的。首先,它可以大大缩短故障排除的时间。通过实时监测和分析系统的行为,我们可以更快地发现和解决问题,从而降低停机时间和业务损失。其次,可观测性工程可以帮助我们更好地规划系统的扩展和升级。通过对系统行为的深入了解,我们可以预测未来的需求,并相应地调整架构和资源配置。最后,可观测性工程还可以提升团队的协作和沟通。通过共享实时的监控数据和日志信息,不同团队的成员可以更好地理解系统的状态,更有效地合作解决问题。 然而,要实施有效的可观测性工程,并不是一件容易的事情。它需要组织和团队的共同努力,包括培训和教育团队成员,采用合适的工具和技术,建立适当的监控和告警系统等。此外,随着系统的发展和演变,可观测性工程也需要不断地进行迭代和改进。 总的来说,可观测性工程在当今复杂而高速的技术环境中具有重要的意义。它不仅可以帮助我们更好地理解和管理系统,还可以提升团队的效率和协作能力。随着技术的不断演进,可观测性工程将继续发挥更大的作用,推动企业和组织实现更高的可靠性和创新能力。

2023-07-19 10:10:48