为什么写作本书
从2010年开始,分布式架构几乎颠覆了整个IT架构。无论是早期的SOA体系,还是后来的微服务、容器化、Kubernetes等,无一不是从分布式角度提升的容错能力和吞吐能力。然而不可避免地,监控难度也在随着分布式程度的加深而同比加大。基于日志、指标及静态部署架构的传统监控越来越难以跟上发展的步伐。
从2012年到2015年,我因为参与中国联通的全国集中,饱受分布式定位的困扰,也是在那时,我决定着手建立SkyWalking这个项目。2017年年底,SkyWalking作为中国的个人项目社区加入Apache孵化器,并于2019年年初毕业成为Apache项目。
Apache SkyWalking作为Apache项目,有着强大的化的开发者社区,被很多世界500强公司采用。由于化的需要,官方文档和交流全部采用英语。与此同时,SkyWalking在国内也有庞大的用户群体,几乎涵盖了包括互联网、ICT、银行、航空公司、保险、教育、电信、电力等在内的所有行业,而英文沟通和文档成了部分国内用户了解SkyWaling的障碍。SkyWalking的PMC团队中的中国成员,在收到机械工业出版社杨福川的邀请后,决定在百忙之中抽出时间,将自己在项目中沉淀的知识、理解梳理成书,让国内读者能比阅读官方文档更加深入地理解Apache SkyWalking,也为大家进行二次开发、参与项目贡献提供更为清晰的思路。
本书主要内容
本书将Apache SkyWalking使用方法、项目设计、架构模块和扩展实践进行了分组归纳,为大家展现了Apache SkyWalking的全貌。本书共14章,每章的主要内容如下。
第1章 全面认识Apache SkyWalking
本章概要介绍SkyWalking项目的使用场景、设计理念和设计思想。开源项目的发展往往不可预测,了解其核心理念将是与社区长久保持一致的重要基础。
第2章 SkyWalking安装与配置
本章引导大家从零起步,了解项目的安装部署过程及常用配置。
第3章 Apache SkyWalking实战
本章通过典型场景,对SkyWalking的功能进行性的展现,使读者全面认识其功能。
第4章 轻量级队列内核
本章介绍SkyWalking Java探针中的内存级消息队列,阐述它的优势、设计目的和实现。
第5章 SkyWalking追踪模型
本章介绍SkyWalking专有的追踪模型。虽然项目模型脱胎于论文“Google Dapper”,但是针对分布式APM的场景,其设计与其他分布式追踪有明显的区别。
第6章 SkyWalking OAP Server模块化架构
本章介绍模块化——SkyWalking设计中一个无处不在的理念在OAP中的落地实现。通过阅读本章,读者会对OAP的整体设计思想有清晰的认识。
第7章 Observability Analysis Language体系
本章介绍OAL这个虽简单但却是SkyWalking专有设计的编译型脚本语言。通过它,大家可以了解SkyWalking流式处理模型。
第8章 SkyWalking OAP Server集群通信模型
本章介绍SkyWalking OAP Server集群的工作方式、集群内数据通信模型、数据流向,帮助用户在进行超大规模部署时,更合理地规划网络和部署方式。
第9章 SkyWalking OAP Server存储模型
SkyWalking不同于传统的应用,它拥有强大的模型扩展能力。本章将结合抽象概念和实例,介绍数据存储模型的定义方法、模型字段及模型扩展方式。
第10章 Java探针插件开发
本章介绍SkyWalking的Java探针工程结构、开发方法及开发示例。探针插件开发是常用的二次开发扩展方式。
第11章 探针和后端消息通信模式开发
本章为动手实践环节,探针和后端消息通信模式的扩展是个经常被讨论的话题。本章会详细阐述项目设计的缘由并带领大家进行代码实践扩展。
第12章 SkyWalking OAP Server监控与指标
本章将介绍一个特性:如何对SkyWalking后端进行监控。监控也需要被监控,这是SkyWalking大规模部署的常用特性。
第13章 下一代监控体系——SkyWalking观测Service Mesh
Service Mesh目前还处在技术栈发展的早期,但SkyWalking已经身先士卒,做好准备。本章将介绍如何在这种全新的架构和技术下完成观测。
第14章 SkyWalking未来初探
SkyWalking 7于2020年3月发布,加入了很多新特性。本章将深入介绍SkyWalking 7中核心的特性——代码性能剖析。
本书读者对象
本书适合所有的Apache SkyWalking初学者、使用者和二次开发者阅读。本书涵盖了从项目入门到设计理念、核心模块的多层次内容。如果你想学习和了解Apache SkyWalking,本书是你的佳选择。如果你想了解现代的分布式监控、分布式追踪的相关知识,本书也会在理论和实践层面给你启发。如果你想动手构建自己的分布式监控,Apache SkyWalking也是值得你学习的典型案例和实现。
如何阅读本书
本书的章节按照先入门、快速上手实践,然后回顾设计理论,并逐步深入核心模块和特性的方式编排。读者不会因翻开书就读到枯燥的理论内容而打消学习的兴趣,同时,后半部分的深入讲解能让大家不局限在基本的使用上,而是更好地探究项目的实现,甚至打开参与开源贡献之门。
勘误与支持
由于作者团队的水平有限,写作时间仓促,再加上Apache SkyWalking为志愿者社区,开源项目存在多元化、开放和快