Apache SkyWalking实战
从功能使用、项目设计、核心模块、工作原理、扩展实践5个维度全面讲解SkyWalking
基本信息

【插图】

编辑推荐
SkyWalking创始人和核心开发团队撰写
来自华为、百度、蚂蚁金服、京东数科、Tetrate.io的资深专家联袂推荐
从功能使用、项目设计、核心模块、工作原理、扩展实践5个维度全面讲解SkyWalking
内容简介
计算机书籍
这是一本从功能使用、项目设计、核心模块、工作原理、扩展实践5个维度全面讲解SkyWalking的著作。由SkyWalking的创始人和核心开发团队撰写,得到了来自华为、百度、蚂蚁金服、京东数科、Tetrate.io的5位资深技术专家的联袂推荐。
本书共14章,在逻辑上分为4个部分:
第一部分 SkyWalking入门(第1~3章)
详细介绍了SkyWalking的必备常识、架构设计、安装与配置,以及它在单体应用架构和微服务架构中的实战操作,能帮助读者快速上手;
第二部分 SkyWalking理论(第4~5章)
作为监控软件,SkyWalking需要考虑如何使自身对应用的影响最小化,以及如何实现分布式追踪和监控,这两章对此做了详细的技术分析。内存无堵塞队列是减小系统负载的关键,而集中分布式追踪模型是SkyWalking监控分析的灵魂。
第三部分 SkyWalking原理(第6~12章)
SkyWalking后端的OAP平台具有极强的模块化和扩展能力,本篇深入讲解了总体的模块化设计,以及OAL分析、集群和存储这三个最核心模块。此外,还介绍了探针插件开发和MQ通信模式扩展这两个热门主题。
第四部分 SkyWalking趋势(第13~14章)
SkyWalking虽然是以分布式探针为基础的分布式追踪工具,但深耕于整个APM领域。本部分从Service Mesh和基于语言探针性能剖析这两大方向,展现了SkyWalking在云原生领域更大的集成能力和运用范围。
作译者
Tetrate.io创始工程师、前华为云技术专家,专注于云原生、分布式系统监控和Service Mesh领域的技术发展。Apache基金会会员,Apache SkyWalking创始人、项目VP和PMC成员,Apache孵化器PMC成员,Apache ShardingSphere PMC成员,Apache APISIX PMC成员,Apache ECharts (incubating)和Apache DolphinScheduler (incubating)孵化器导师,Zipkin成员和贡献者,CNCF OpenTracing核心维护者。
高洪涛
Tetrate.io创始工程师、前华为云技术专家、前当当网系统架构师,拥有丰富的云原生产品设计、研发与实施经验,对分布式数据库、容器调度、微服务、Service Mesh等技术有深入了解。目前为Apache ShardingSphere和Apache SkyWalking核心贡献者,参与项目在软件开发云上的商业化进程,还曾参与Elastic-Job等知名开源项目,拥有丰富的开源项目管理、推广和社区运营经验。
赵禹光
Apache SkyWalking PMC成员、Alibaba Sentinel Committer,专注于分布式系统监控、分布式服务的流量控制和分布式作业调度领域的技术发展。贝壳找房软件工程师,贝壳找房开源作业调度平台作者。
曹奕雄
Apache SkyWalking PMC成员、专注于分布式系统监控、RPC等领域的技术发展。曾就职于贝壳找房,现就职于猿辅导。
李璨
Apache SkyWalking PMC成员,对分布式系统监控与微服务的开发和设计有深刻理解,在Kubernetes、云原生和Service Mesh的落地实践方面拥有丰富经验。
目录
第1章 全面认识Apache SkyWalking 1
1.1 SkyWalking介绍 1
1.1.1 什么是SkyWalking 1
1.1.2 SkyWalking的发展历程 2
1.1.3 SkyWalking的适用场景 3
1.1.4 SkyWalking的社区与生态 5
1.2 SkyWalking的架构设计 6
1.2.1 面向协议设计 7
1.2.2 模块化设计 8
1.2.3 轻量化设计 9
1.3 SkyWalking的优势 9
1.3.1 传统分布式架构与云原生的一致性支持 10
1.3.2 易于维护 10
1.3.3 高性能 11
1.3.4 利于二次开发和集成 11
1.4 SkyWalking开发必备知识介绍 11
1.4.1 JavaAgent介绍 12
1.4.2 远程调试介绍 18
1.4.3 Service Mesh介绍 19
前言
从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流式处理模型。
媒体评论
——周礼赞Tetrate.io创始工程师/Envoy与Istio的核心维护者/前Google工程师
Apache SkyWalking是一个针对分布式系统的应用性能监控和可观测性的开源平台,它因设计精良、实现高效而得到工业界的广泛应用。本书由SkyWalking创始人吴晟领衔撰写,内容翔实,易于上手,非常适合读者学习和参考。
——谭中意百度开源技术委员会负责人
无论是产品还是社区,SkyWalking都是Apache项目的典范,是中国十分具有国际化能力的项目。它已经广泛应用于各行各业,悄无声息地成为现代系统的底层支撑。通过此书,读者可以从零学会使用SkyWalking并掌握其内核原理和设计思路,从社区几年的积累中迅速汲取精华,收到事半功倍的效果。
——张亮京东数科数字技术中心架构专家/Apache ShardingSphere项目VP&创始人
Apache SkyWalking是Apache的顶级开源项目,提供了从数据采集、分析到可视化的完整解决方案,第一时间支持了Istio、MOSN等开源项目的可观察性功能,社区十分活跃。这本书是社区经验的结晶,推荐大家学习和研究。
——宋净超蚂蚁金服云原生布道师/ServiceMesher及云原生社区联合创始人
Apache SkyWalking是一个优秀的开源APM解决方案,深得用户青睐。本书全面介绍了它的用法及相关模块的设计原理,推荐微服务架构师、开发者、系统运维人员,以及对应用性能管理技术感兴趣的读者阅读。
——姜宁华为开源能力中心技术专家/Apache Member