Please enable Javascript to view the contents

2020年的回顾;2021年的一些想法

 ·  ☕ 4 分钟

i

2020年回顾

2020让我受益最大的资料 📚

翻开印象笔记,我回顾了一下最有价值的资料:

Service Mesh

Container

Linux

GraphQL

学到的技术⛷

  • Docker/Container 实现原理和架构的入门

  • Kubernetes 环境下应用性能问题 Troubleshooting 基本思路和方法。做了一些小工具。

  • Kubernetes + Prometheus 的基本知识和应用

  • 应用了 BCC/eBPF

  • Jaeger Distributed Tracing 后端数据处理流程和简单的 tracing 数据程 spark 分析方法

  • Golang 上手

    实作了一个 SMS/SMPP 模拟器,应用于公司压测环境中。运用 Kubernetes 的 go-client,在 kubectl-debug 基础上定制开发了一个公司环境适用的 pod debug 工具

  • 启动了 Distributed Tracing 分析 + Neo4j 图数据库,做 API 依赖分析和性能分析的实践

技术负债😥

在工作或学习过程中,总有一些东西有书到用时方恨少的感觉。

  • Linux 的性能指标相关的原理和意义

    故事是这样的:TLDR;

    在 Cassandra 数据库则优化过程中有以下情况:

    • Disk IO 一直奇高
    • BCC/eBPF 查看到的 PageCache 命中率基本为0
    • major page faults 一直高

    当时只觉这个指标是不正常,但为知道为何。调整数据库参数,不使用mmap方法读文件后,问题得以解决。但原理直到后面在网上找到关于mmap文件预读的资料,才有个方向。

    整个过程用时数周,不知道搜索了多少零散的文章。回想起来,还是 Linux 基本功不好,Tracing 方法不系统。

    Linux 的性能指标很多,一个性能指标意味着什么,什么范围是合理的,我缺乏认识。

  • Kubernetes/cadvisor 的性能指标原理和意义

  • Istio/Envoy 的深入认识

    这里也是一个故事。一段时间以来,一个 Service 的多 POD 的响应时长不均,慢POD的响应时间表,是快POD 的一倍。因为这个 Server 的 POD Spec 配置了 cpu limit。一直认为原因是 POD 所在的 worknode 的整体 CPU 压力不同做成的。但问题一直解决不了。后来发现,load blancer 的策略从 ROUND_ROBIN 调整为 LEAST_CONN 后,症状解决了。但还是基础知识不过关,一直没定位出根本原因,只是大大减轻了症状。归根到底,还是对用到的东西的认识不足。

  • Spark/Python 的数据分析能力。在分析压测的 distributed tracing 数据时,明白到这个技能的重要性。

非技术的东西⛪

  • 不能public地写

2021年想法🏃

想学习的技术🤹

对未来技术方向的想法☁

  • 基于 eBPF 的网络组织方法,会大部分取代现在基于 iptables/netfilter 的方法

  • Distributed Tracing 和 应用的 profile 与 OS 层的 eBPF tracing 有机整合,成为下一个 Cloud Native 全链路监控的主力。基于拓扑思想的监控会更广泛使用。

  • 当我们说 Kubernetes 时,将会更多认为它是一个 Cloud Native 的规范和思想,而非现在的实现。Cloud Native 世界,迎来更多的分裂。

  • Cloud Native 的开发者体验会更好

    之前,Cloud Native 走得太快。开发者们的开发知识门槛,环境门槛,Troubleshooting 门槛等越来越高。技术的大众化,最后一定需要降低这些门槛的。

  • Cloud Native Computing Foundation (CNCF) 可能会成为下一个 J2EE/JEE 。官僚与腐败。

保质期长的基础知识

每个后端开发,都有一个研究操作系统的情结。Me Too。从 1993 年小学二年级,我写下第一 Basic 代码到现在。很遗憾,赢在起跑线,输在了半路。对电脑程式是如何跑起来的,数据是如何流转的,还只是一知半解。在后浪打前浪,前浪死在沙滩上的IT界,一个转不了管理的人,还是学点保质期和经验要求比较高的基础知识,才可以保住不被 Fired。

今年要有个深入了解的书:

  • Understanding The Linux Kernel 3rd Edition
  • BPF Performance Tools
  • OReilly Programming Kubernetes

坚持写好自己的 Blog

我应该算是国内第二批建个人主页的人。从1998年有自己的人个主面,域名。但还是那句,赢在起跑线,输在起跑后。放弃了技术沉淀、积累、传播,只把技术作为一个拿来即用,用完即弃的工具的话,认识深度,行业的影响力是建立不起来的。这样最后可能只有放弃技术专家线,转到业务分析线或管理线,但本人的确没这个天赋。所以,一直以来,我都在想,如何在50岁时,还能保住现在的研发饭碗。

在50岁前,花10年时间,重新学习、积累一个良好的知识体系,可能是唯一我能选择的出路了。而要坚持这条路,可能唯一的驱动力,就是每周写下自己的学习积累,也锻炼自己的语言组织,技术PUSH 的能力。也先多谢大家的支持。2021到2030。谢谢。🍻

分享

Mark Zhu
作者
Mark Zhu
An old developer