Skip to content

结束语:学习APM,从工具视角看性能管理

经历了三个月的学习,我们《应用性能分析实战》课程就告一段落了。在这里,我首先要感谢各位同学的支持,以及拉勾教育雨芯与昊坤同学的辛苦付出。

20 多节的课程,包括了 APM 工具各个方面的核心技术。课程虽不长,但我希望通过这种提纲挈领的方式,让你抓住基础核心理论与实战技能,进而快速入门。

但想要通过 APM 工具去完全驾驭线上问题,进行应用性能分析,你还需要花大量时间去练习,去深入探讨。

专栏课程回顾

接下来,我们再回顾下《应用性能分析实战》这个课程,帮你再次梳理下整体的知识架构和思路,该专栏课程分为了以下五个部分。

第一部分,讲述了各个 APM 领域 TOP 1 的开源产品。

如一站式 APM SkyWalking、在线诊断工具 Arthas、稳定性工具 Sentinel 等,课程讲述了它们的产品特色、学习路径、落地方法。这部分知识会方便你做技术选型,遇到问题时能挑选合适的工具进行问题定位。

希望你掌握 APM 工具的同时,更能对每一个线上案例进行深入剖析,定期浏览用户案例。例如 Arthas 的用户案例,你可以点击链接了解详情。这里面有大量优秀的实战内容值得去学习借鉴,同时使用脑图,对每个 APM 工具的知识体系进行归纳总结。

比如:用 Arthas 诊断了哪些线上案例?这个案例属于什么类型的应用性能问题的分类?CPU 耗尽,内存泄漏?

这个过程中,你肯定会对 APM 知识体系有更多思考,最终做到融会贯通。

第二部分和第三部分,讲述了 APM 工具的关键理论。

如监控视角的线程模型、OpenTracing 设计、数据存储模型标准等。当然,七个课时的理论学习只是带你梳理方法,对更多理论知识的探索,我建议你从官方文档入手。

比如 Java 官方字节码技术的文档、SkyWalking 的用户手册、Sentinel 的技术文档等等。这些文档不仅仅全面完善,且成体系,无论是部署示例还是 API 参考手册,都是非常全面的。

边看文档、边做练习可以非常快地掌握基本使用方法;与此同时,多读社区的用户案例,以及参与分享会,这会让你大大增加实践理论,也是文档所不具备的。

第四部分,讲述了 APM 工具典型案例的二次打造过程。

包括采样设计、BI 监控、链路学习和故障系统的建设。APM 工具落地过程中,有水土不服是非常正常的,正所谓"工欲善其事必先利其器",通过二次打造适合自身的工具,让分析问题的效率得到进一步的提升。

课程中所挑选的场景,都是我和社区伙伴讨论时发现企业落地 APM 必经之路。如果落地不好,便会影响到所有的一线开发。所以想避免被吐槽,这部分内容还需要在学习之余,多多在社区内进行相应训练,给自己二次加餐。

第五部分,我以分享软技能为课程收尾。

为什么会用这个方式作为收尾呢?因为我看到很多同学学了很多课程,但是知识没有发挥出来,没有发挥出自身的价值,就像积累了很多,就差临门一脚的感觉。

这个现象很让人感到遗憾,究其原因就是缺少提升软素质,APM相关的软素质无出其右,可以通过独立思考,总结自己的方法论和灵活实践进行加强。

APM 学习复盘

学习 APM 工具,对应用的性能分析有非常大的帮助,而且它也是企业提效必要的建设方向,所以 APM 非常值得我们去深耕。

你会发现 APM 工具是一门比较容易上手的技术。它既没有深奥的理论,也没有特别难懂的细节,基本上通过显示引入 Jar 包或启动命令加入探针就可以完成。

尽管对其他技术没有什么依赖,但还是需要你有扎实的基础知识,比如 Java 的线程模型、框架的拦截器设计等。而性能监控的本质,就是通过这些必备的基础知识去实现的。这样的基础知识好比内功心法,APM 系统就好比外功招式,越是深入学习 APM 技术,就越是要不断巩固基本功。

学习完本课程后,如果你还想继续深入 APM 的学习,建议你参与开源社区的建设。

如果你之前已经有一些分析定位线上问题的经验,可以结合所学的知识,对已知的问题进行一次回顾。比如,当时某个故障在定位问题上花费了很长时间。如果回到过去,凭借现在的能力,你能做什么改变?以及改进措施是否还存在优化方案?现有的集群是否存在潜在的问题?如何去解决这些潜在问题?

在我录制课程的几个月时间里,APM 工具相关的设计理论和设计标准也发生了很多变化。从同学在评论区的反馈就知道,比如有学员问 SkyWalking 链路监控在用于串联上游链路 Refs 属性怎么发生了变化等问题。很多问题也是对我也是新的"输入"和"学习",只有不断地自我迭代,才能追寻开源的步伐,毕竟开源才是技术提升的上限。

学习寄语

在学习过程中,我们要保持对技术好奇与敬畏之心。任何技术的学习都不是一蹴而就的,都要你不断地投入时间和精力,才能不断进步。我个人是终身学习的践行者,我希望你和我一样,在技术的道路上不断探索。

最后,你对课程还有什么想法和建议?欢迎在评论区反馈给我们,最后再次感谢你的支持和陪伴。