2022年在我写这句话时,再过数小时就结束了。这是相当不平凡的一年。所以我觉得值得写个回顾。
回顾回顾
开始前,我翻了翻自己的博客。才发现,我只在 2020 年结尾写过年度回顾:《2020年的回顾;2021年的一些想法》。2021 年结尾,只写了《2022年书目推荐 —— 来自 GOTO podcast》。我想,是因为当年做的事情和设想相差太大了,就直接不写回顾了,毕竟不能太难为自己。今年的设想和执行还算比较对得上,所以想写个回顾。
《2020年的回顾;2021年的一些想法》 中,说过要 “坚持写好自己的 Blog” 这点还真是坚持下来了。老实说,还是有点意外的。因为按我之前的作为,在无直接压力的情况下,很容易就被眼前的苟且说服了而放弃。长期、不紧急的事,最后大都被生活的柴米油盐冲到脑后。
或者是年纪渐长的原因,自控力和克制力反而上去了。而最让人“老来安慰”的是,学习的能力,暂时未有太大的减退。以前坐不定,静不下心来学习的东西,现在开始可能静心去学习。而当我开始细心品味这些“老技术”时,它又可以给我惊喜。如,2022 年公司的系统上云,而这过程中,帮助我解决最多现实问题的,不是什么新技术和新手段和工具。反而,是那些不起眼,觉得重要但直到近期才系统学习的网络知识
和内核知识
。
心路
2021 和 2022,我都吹过自己要写一本书。不为出名,也不为简历。只为热爱和为之燃烧过的职业(与爱好)生涯。回头看看人生路,很多时候,对自己改变最大的,不是那些细心思量后的完全的功利决定;而是听从内心召唤的长期行为。而在事情的执行过程中,听从自己的想法,不要过早地去理会评论。今年用得最多的封面图,就是 Mr. Bean。最有共鸣的一句话是:
Mr. Bean taught me one thing in life:
Enjoy your own company instead of expecting someone else to make you happy.
这句话,适合职场、家庭生活、与疫情影响下的社会变化。不要为其它人如何对待而患得患失,保持内心的平常,把时间和精神花在对自己重要的事上。
博客与书
今年大概写了 20~30 篇的博客文章。更让我感到兴奋的是,写书终于不是一个空谈了。已经有一定规模了:
遗憾的是,这些托管在 read the docs 的书,国内由于地球人都知道的原因不能访问。后面再想想办法了。
2023 展望
2023 继续写作
之前浏览了一本书,叫《Technical Blogging - Amplify Your Influence》- 作者 Antonio Cangiano 。
这本书陈述了,在 Web 2.0/3.0 信息严重碎片化的年代,坚持写博客的意义何在。在成年人的世界,研究一个东西的意义比研究如何实现这东西更有意义。因为大家的时间都有限,只有让内心明白事情的重要性,才可能坚持执行。
由于暂时我不靠文章和书糊口,所以写书和文章均无太大心理负担,不必赶稿凑字数。
2023 年最希望是:
-
基本完稿 《Istio & Envoy 内幕》 一书。
同时也尽量保证书中内容的独特性、可靠性与深度。以设计实现为主线,以运行时跟踪(gdb/BPF)为证明去完成这本书内容。用我能想到最直观的图示法去展现给读者。
-
把之前杂乱的知识点,分类整理到 《Mark’s DevOps 雜碎》
BTW,写作还有有个好处。多年在一个专业上太过专注,反而人的基本的语言表达能力,文字表达能力衰退得比较厉害。写作可以倒逼自己保持甚至发展这方面的能力。毕竟,有技术才华的技术人非常多,但能把复杂的技术用简单的语言表达清楚的人却很少。
非技术类的写作
诗和远方
技术类的书架上,有几本书是可以在上架后 10 年不更新,还有读者的?不多,可能分类为:
- 软件工程类 —— 如《人月神话》
- 开源文化类 —— 如《Open Sources: Voices from the Open Source Revolution》《Just for Fun: The Story of an Accidental Revolutionary —— Linus Torvalds》
- 职业生涯类 —— 如一些国内技术长者的写给年轻人的职场生存指南类的书。
- 通用技术类 —— 如 《Clean Code: A Handbook of Agile Software Craftsmanship》
有时候我会思考一个问题。10 年后自己做不动技术活,或者 HR 们已经以年龄为标准,放弃了我时,在业界还能留下点什么。我也想完成一本这样的书,写一写一些不容易过时的经验。谈谈诗和远方的东西。
知识体系
这是我觉得自己最应该做,也做得有点迟的事情:建立自己的 知识体系
。
从 1990 年左右在磁带机上写第一行 Basic 代码,到现在从业快 20 年。学习了很多知识,也亲眼目睹了业界的变化。知识是个边学习边忘记的过程。如,我学习了 Cloud native 后,发现 Java 的东西、JVM GC 的东西开始大量失忆。最近听一些关于大脑科学的书,觉得有一点非常有道理:人的记忆并不是和计算机一样,是一个 1/0 的问题。它更多是一个量变的过程。而如果我们对学习过的知识按自己的大脑认识模式记录下来,以后哪怕我们忘记了一部分,也可以通过这个知识体系快速补回丢失的一部分,而不需要又重新学习一遍。
整理一本: 《Mark’s DevOps 雜碎》 书,是我能想到对以上问题的解决方案。除了解决上面问题,用 sphinx-docs + Read The Docs 平台写作还有两个好处:
-
即时的公开可访问
世界的华人,可以在搜索引擎上找到我的内容,并访问。带来分享的快乐。我已经忘记,有多少次,人们直接加我微信去问我技术问题。他们是各个年龄的人都有,但一个共同特点是,爱好学习。
-
回忆的线索
不知道多少次,我觉得这东西自己学习过,但失忆了大部分。于是还得从搜索引擎开始,重新学习一次。这时如果已经有上次的学习笔记,这个
“回忆”
的过程就简单快速多了。如果用消化来比喻学习,那么学习的资料就是原始食物
,笔记
就是经过初步消化后的食物
。如果在每次需要使用一个知识点时,都因 “失忆” 而从原始食物
开始学习,那么会很浪费时间,学习过程的体验也相当差,总在抱怨自己的记忆力。但如果有之前的 “学习笔记”,事情就大不同了。用这些大脑的线索,可以让人快速找回部分你以为自己已经 “忘记” 的东西。这时你会发现,你并不是忘记了它,而只是把它放在一个大脑比较难进入的储物间。 -
书中内置 ES 搜索引擎。等于一个公开的印象笔记了。
计算机类图书的表现形式
在编写 《Istio & Envoy 内幕》 时,我一直在思考一个问题。现代的程序逻辑和运行环境,特别是 Cloud Native / Service Mesh,到底是越来越简单,还是变复杂了? 暂时的回答是:设计初冲是让使用者简单,让使用者方便地实现更多功能和非功能。实现上当然是更复杂了。但如果是深度使用者,其实迟早是要面对其复杂性的。而如果用旧的 A4 大小篇幅图去表达这种复杂的关系,往往需要脑补内容。同时图片内容又不能查找,也不能链接。而如果用 drawio 等工具,这些问题都得到解决。因为我的图书本身就是开源,所以直接浏览原图效果还是不错的。
2023 最想应用的技术
我从 2020 年开始学习 BPF 技术。现在 BPF 技术已经从巷子深、门槛高到了 BPF CO-RE (Compile Once – Run Everywhere) 的时代。而我对它的使用还只是留在各种性能/测试环境中。最多是写写 bpftrace 脚本去定位问题。我一直认为,不能为应用一个技术而去应用一个技术,更不能因为这个技术大热就去生搬硬套使用。不应该把技术过度话题化和眼球经济化。而是应该在实际的场景中看到技术的价值。
2022 年的经历的老系统上云过程,让我们看到旧的系统监控系统在复杂的 k8s + service mesh(Istio) 网络环境下的无力感。东西不出事没人觉得监控有变化的必要。东西一出事就两眼一抹黑。于是,我写了《世事洞明皆學問 - tcpdump 抓取 Istio 流量真心话》 。
对于 IP/TCP 层的监控,我觉得暂时没有技术比 eBPF 更适合了。这也是我 2023 年最希望能应用到的一个方向。
最后的话
好像写几千字的文章不写点结语不太对头。我不是个懂计划的人,也不是个执行力强者。但正如我最近在看的 Linus Torvalds 的书 [Just for Fun] 一样。保持好奇心,比什么计划和执行力都重要。