作者: | Michael Hausenblas |
语言: | 英文 |
出版年份: | 2023 |
下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《Cloud Observability in Action》是由Michael Hausenblas撰写的一本专注于云原生系统可观测性的实用指南。本书由Manning Publications在2024年出版,是一本面向开发者、运维人员以及对云原生技术感兴趣的读者的权威著作。
Michael Hausenblas在云原生领域拥有超过20年的经验,曾在Red Hat、Mesosphere(现D2iQ)、MapR(现HPE)等公司担任重要技术职务,目前在Amazon Web Services(AWS)的开源可观测性服务团队工作,负责领导OpenTelemetry相关活动。他凭借深厚的技术背景和丰富的实践经验,为读者带来了这本内容丰富、深入浅出的著作。
本书共分为11章,系统地介绍了云原生环境中的可观测性概念、技术、工具以及最佳实践。内容涵盖了从信号源到数据收集、处理、存储以及可视化的全过程,旨在帮助读者构建一个完整的可观测性体系,从而更好地理解和管理云原生应用。
开篇定义了可观测性的概念,探讨了其在云原生环境中的重要性,并通过一个微服务应用案例,展示了可观测性在实际场景中的应用。同时,介绍了可观测性的常见用例、涉及的角色及其目标,以及如何应对云原生系统带来的挑战。
深入讨论了可观测性中的三种主要信号类型:日志、指标和追踪。分别阐述了它们的特性、收集方式、成本与收益,并通过一个Go语言编写的示例程序“echo服务”,展示了如何在实际代码中生成和收集这些信号。
详细介绍了云原生系统中各种信号源,包括计算相关源(如虚拟机、容器、Kubernetes、Serverless计算)、存储相关源(关系型数据库、NoSQL数据存储、文件系统和对象存储)以及网络相关源。探讨了如何根据任务需求选择合适的信号源,并讨论了代码所有权对信号收集的影响。
聚焦于如何将信号从源传输到目的地的代理工具。介绍了多种日志路由器(如Fluentd、Fluent Bit)、指标收集工具(如Prometheus)以及OpenTelemetry等通用代理工具。重点讨论了OpenTelemetry的架构、优势以及如何使用它来统一收集和处理不同类型的信号。
探讨了可观测性信号的存储和查询后端。包括日志、指标和追踪的后端选项,如云提供商的日志服务、开源日志后端(如Elasticsearch、OpenSearch)、时间序列数据库(如Prometheus、Cortex、Thanos)以及列式数据存储(如ClickHouse)。分析了选择后端时需要考虑的因素,如成本、开放标准支持、可扩展性等。
介绍了用于可视化和交互式查询可观测性数据的前端工具。包括Grafana、Kibana、OpenSearch Dashboards等开源前端,以及云提供商和商业前端产品。讨论了如何根据需求选择合适的前端工具,以及如何将不同后端的数据整合到一个统一的可视化界面中。
聚焦于云原生应用的运维实践,包括事件管理、健康和性能监控、告警以及资源使用跟踪。通过实际案例,展示了如何在云原生环境中快速检测和响应问题,以及如何通过告警和监控来预防潜在的故障。
深入探讨了分布式追踪的概念、重要性以及在微服务架构中的应用。通过一个电商应用的案例,展示了如何使用分布式追踪来诊断和优化服务间的调用链路,以及如何通过追踪数据来快速定位问题。
讨论了如何将可观测性技术应用于开发过程,以提高开发效率和代码质量。介绍了持续分析(Continuous Profiling)的概念及其工具,以及如何通过集成到IDE和命令行工具中,为开发者提供实时的性能反馈。
介绍了服务等级目标(SLO)的概念、实施方法以及如何使用可观测性数据来衡量和优化服务的可靠性。通过实际案例,展示了如何根据业务需求设定合理的SLO,并通过监控和告警来确保服务达到预期的性能水平。
探讨了如何将不同类型信号(日志、指标、追踪)进行关联分析,以获得更全面的系统洞察。介绍了OpenTelemetry在信号关联中的作用,以及如何使用Prometheus、Jaeger和Grafana等工具来实现信号的关联查询和可视化。
附录提供了一个完整的端到端示例,使用OpenTelemetry、Prometheus、Jaeger和Grafana搭建了一个可观测性平台,帮助读者更好地理解和实践书中的概念。
《Cloud Observability in Action》是一本全面、深入且实用的云原生可观测性指南。它不仅涵盖了可观测性的理论基础,还提供了丰富的实践案例和工具使用方法。无论是对于刚刚接触云原生技术的初学者,还是在该领域有一定经验的专业人士,这本书都能提供宝贵的指导和参考。通过阅读本书,读者将能够掌握如何构建一个高效、可靠的可观测性体系,从而更好地应对云原生环境中的复杂挑战。