在云原生时代,可观测性覆盖了应用的全生命周期,是云原生应用必备的工具之一。
《云原生时代的可观测系统最佳实战》基于笔者多年的云原生可观测性实践经验,从可观测系统的演进和基础理论开始介绍,结合案例对可观测系统的开源架构、日志、链路、监控、事件和诊断等关键要素的系统设计方案及问题解决思路进行阐述,帮助读者了解在业务实践中可观测性对云原生应用有哪些巨大助力。
《云原生时代的可观测系统最佳实战》适合云原生应用开发人员、架构师、运维人员、测试人员,以及云计算相关从业人员阅读。
系统全面讲解云原生时代下可观测系统知识,开源架构、日志、链路、监控、事件、诊断,核心内容一网打尽!理论联系实战,技术智慧尽显!
罗梦婷,毕业于广东海洋大学电子信息工程专业,先后任职于九联、华润、腾讯等大型企业,参与腾讯云微服务平台的核心研发工作,担任可观测系统技术负责人,在云原生、物联网及AI等技术领域具有成熟的架构设计经验,先后主导过多个大型产业数字化项目的落地。
蒲实,毕业于复旦大学软件学院,目前就职于腾讯,负责腾讯云微服务平台TSF可观测性相关产品功能的研发,在可观测性、微服务等技术领域具有丰富的实战经验,致力于打造高稳定性、高可用性的云原生可观测性产品。
“可观测性”是一个新名词,但它的前身“监控”是计算机从业人员耳熟能详的名词。
那么,脱胎于“监控”的“可观测性”带来了哪些新技术呢?
在云原生时代,微服务架构与容器技术占据了业务头条,可观测性是如何将各个系统分裂的日志、指标等集为一体的呢?
使用链路追踪、事件、诊断是如何加速异常定位,以及帮助业务人员平稳度过流量波峰的呢?
相信这些问题也是很多云计算从业人员的疑问。云计算从业人员从来不怕实践新技术,只怕在错误的引导下使新技术的实践之路困难重重。基于此,笔者想撰写一本书,详细讲解云原生时代的可观测性技术,给出上述问题的答案。
然而,本书中的知识只能是知识,只有融于实践的知识才能创造价值。笔者从自身经历的多个可观测系统实战中提炼出了可观测系统各个模块的一体式解决方案,希望能以这些实践经验引导读者搭建自己的可观测系统(不仅包括适合业务系统的可观测系统,还包括能支撑大规模流量的高性能稳定的可观测系统)。
希望读者通过阅读本书不仅可以收获可观测性方面的知识,还能在每次实战中将知识沉淀为实践方法与经验。
本书内容
本书包括8章,主要介绍可观测性整体解决方案与业务实战案例。
第1章 可观测性概述
本章粗略地介绍可观测性,以期向读者展示可观测性的全貌。本章从分析系统架构的演进开始,带领读者了解可观测性的起源和可观测性技术的发展及现状。同时基于团队不同职责成员的视角介绍可观测性数据的类型、价值和作用,以及可观测性技术在实际应用中的价值。
第2章 系统架构
本章主要介绍可观测系统架构的设计和实战。首先分析可观测系统架构设计的基本原则,指导读者如何设计可观测系统;然后基于Grafana和Elastic技术栈搭建可观测平台;最后介绍如何基于开源架构解决大规模数据计算问题。
第3章 日志系统实战
本章主要介绍可观测系统中常见的日志系统。首先基于OpenTelemetry的规范介绍日志模型的设计,然后搭建Elasticsearch和ClickHouse两种日志系统,同时介绍如何建立集群并读/写日志。本章还介绍了5个典型的Elasticsearch调优实战,尤其是PB级别数据量下的Elasticsearch调优,以期帮助开发人员构建承载亿万级数据的日志系统。
第4章 链路追踪系统实战
本章直观地展现了系统运行情况,并还原了异常请求的链路追踪系统。首先介绍基于OpenTelemetry的链路追踪模型,然后对系统选型进行详细的实战分析。本章讨论了笔者在日均百亿级调用量的链路追踪系统上遇到的实际问题并展开分析,以期帮助读者搭建自己的链路追踪系统。
第5章 指标系统实战
本章主要介绍可观测系统中非常普遍的指标系统。构建完善的指标系统对于了解系统运行状态、保障系统健康运行具有至关重要的意义。本章先分析指标采集模型的设计,再对业界常见的指标监控系统进行实战分析。本章基于笔者在海量指标系统中遇到的实际问题展开介绍,以期帮助读者解决指标系统中常见的问题。
第6章 事件中心实战
本章主要介绍可观测系统中不可忽视的事件中心。可观测系统天然契合事件驱动架构。首先介绍事件驱动架构和事件模型设计,然后针对笔者在大规模事件场景中遇到的实际问题展开介绍,以期帮助读者搭建适合业务的事件中心。
第7章 Profile诊断实战
本章主要介绍可观测系统中定位复杂问题根因的Profile诊断。首先介绍线上分析工具,包括JDK原生工具、Arthas和Wireshark;然后介绍在各类指标出现异常时如何定位与解决问题;最后介绍线上问题事后分析的方法,这对云原生应用的长期稳定运行具有重要作用。
第8章 可观测性的探索
本章主要介绍可观测性在DevOps与AIOps中的重要作用。首先介绍在DevOps中可观测性的作用,以及可观测性在全链路压力测试和混沌工程中的用处;然后介绍在AIOps中应用可观测性数据来实现智能化运维,以及企业级场景下AIOps落地的难点与经验。
阅读准备
要想阅读本书,读者需要具备一定的Java编程基础,并且对Linux环境和容器技术有一定的了解。要想正确运行本书中的示例代码,需要提前安装如下操作系统及软件。
操作系统:Windows、macOS、Linux均可。
Java环境:推荐使用JDK 8及以上版本。
容器环境:在操作系统中运行Docker。