你好,我是倪朋飞。

不知不觉间,这门课程已经上线一个月了,第一阶段的正文更新到今天就暂告一段落了。在这里,首先恭喜你完成了这一阶段的学习,掌握了关于 eBPF 的基本知识,也获得了理解 eBPF 机制、把握 eBPF 进化方向的抓手。接下来的动态更新阶段,我会带着你持续跟进 eBPF 技术的最新进展、发展趋势,相信之后四年持续学习的你,在结课时会有更多的收获。

在准备这门课的过程中,我有了很多感想和收获,接下来就把它们分享给你。

我为什么要做这门动态更新的eBPF课程?

去年10月的时候,极客时间团队就联系到了我,商量要一起筹备平台上的第一个动态专栏。我第一时间就想到了 eBPF 这个主题。一方面,是因为我觉得 eBPF 会是我的第一季专栏中涉及的动态追踪技术的完美补充;另一方面,动态更新的形式也很适合 eBPF 这样还在快速发展、变更频繁的技术。

早在几年前开设《Linux 性能优化实战》专栏的时候,我就发现了一个问题:在讨论相对简单的单指标性能时,同学们都很热情;但在综合多个指标之后,有些同学就掉队了。特别是在涉及系统底层知识时,很多同学虽然也可以利用课程中的工具解决一些性能问题,但由于对内核原理的潜在恐惧,在分析多性能指标之间的相互关系时,还是不能利用底层知识把它们全部贯穿起来。

而有了 eBPF 之后,系统底层的运行原理就不再是一个黑盒子,内核变得完全开放了。你可以根据自己的需要,去观测或定制内核和应用底层的运行状况,这样,我们就不再需要恐惧内核的底层知识了。

并且,因为 eBPF 是一个还在快速发展中的新技术,动态更新的交付方式显然可以避免知识快速过期的问题。就这样,经过近三个月的筹备,《eBPF 核心技术与实战》专栏诞生了,也成为极客时间上第一个动态交付的专栏。

不过,如你所见,这门课并没有把所有的内容都放到动态更新的过程中交付,而是根据内容和时间划分成了常规更新和动态更新两大阶段。我之所以这样设计,是想让你通过已经更新的十多讲内容,快速掌握 eBPF 的核心原理,以及最基本的使用方法。我相信你在看到这篇内容时,已经完成了第一阶段的学习,并开始尝试把 eBPF 应用到你的工作中了。

第二阶段的课程,邀请你与我共建

在课程更新的这一个月里,我非常高兴地看到,很多同学在留言区分享了自己的学习心得和实践经验,并针对一些知识盲点提出了很有价值的问题。非常感谢同学们的积极分享和讨论,这不仅帮助我完善了课程的现有内容,还给了我很多对于后续更新内容的启发。

这门课的第一阶段侧重于 eBPF 最核心的原理,以及这些原理的基本应用方法,课程中案例的应用场景也相对简单。而在接下来的动态更新阶段,也就是“技术雷达篇”中,我不仅会带你持续追踪 eBPF 的最新发展和最新应用,也会以最有代表性的开源项目为例,给你带来 eBPF 在复杂场景中的综合应用方法。正如开篇词中向你承诺的那样,我将会在每个季度交付一篇文章,每年年末也会交付一篇年终盘点。第二阶段的正式更新将从 2022 年 4 月开始,记得到时候回来继续学习呀!

在这里,我还想说的是:虽然这门课的更新暂时告一段落了,但还是非常希望你能继续跟我保持交流,积极参与到课程之后内容的共建中来:

总之,如果你有对我们课程未来内容的建议,欢迎随时提出来。希望我们不仅是课程教与学的关系,更可以共同参与到课程内容的建设中,一起完善和构建一个最贴近实践的 eBPF 知识体系!

最后,非常感谢你对这门课,以及对动态更新这个新形式的支持。希望第一阶段的课程已经帮你掌握了 eBPF 的核心原理和基本的应用方法。在接下来的四年里,我邀请你和我一起继续深入 eBPF 的实践应用,紧跟 eBPF 的发展趋势,共赴一场技术革新之约。