[ 杂谈 ] 三年后
三年前,鄙人刚毕业之际写了一个对自己职业发展规划的帖子,如今已经整整三年了,三年真的可以改变很多人,改变很多事情,且来回顾下鄙人这三年的经历、成长以及不足罢。
开发
成长
受益于转岗Tars的经历,鄙人的代码功力上升了一个层面,对Python的理解也不仅仅只是以前的脚本语言,开始理解元类、读懂Django的整个web处理过程,并学会参考像Sentry这样的高星项目实现一些项目需求;
在这个阶段,鄙人也开始调整自己的代码风格,开始学会把握产品需求;
来到B站后,这块也是小有突破,开始编写不仅仅只是运维自动化的工具系统,也涉及到了端对端的错误上报和舆情监控系统,也因此开始尝试使用Go语言来实现一些系统,包括正在实现的一个基于Mesos/K8S的容器混合调度平台
值得高兴的是,鄙人今年在开源社区方面终于有所突破,至少有做成下面这些PR贡献:
主要贡献的是Prometheus、Cadvisor等系统。
不足
鄙人编写的代码,自我感觉仍然是junk code,单从每次Github上PR,大佬们反复提Comment做修改便可窥一二;
另外,少有涉及高性能、发布式系统的开发,代码也多是粗浅的实现逻辑(即便如此还是bug频出,囧);
再者,对语言本身的挖掘仍然较少,至少没有进阶到Dr.King和峰云的水准
下一个三年的期望
鄙人希望能最终有所突破,量化的话,可以是:
独立设计或者参与设计实现一个分布式系统或调度平台;
对K8S、Docker这样的顶级项目的源码做进一步的深入,能够根据问题进行PR或者fork修复;
能够对web Framework有进一步的了解,尝试实现或者至少清晰了解一个web Framework的实现原理;
能够对一到两门语言做到掌握和精通程度(期望是Golang)
运维
成长
运维这块的话:
在Linux团队和大佬们一起实现了Saltstack高可用架构,这可以说是一个里程碑,代表鄙人对架构设计方面至少有了一个初步的经验积累;
在Tars团队积累了发布系统、CI/CD乃至于容器平台的一些经验,开始了解如何通过平台和流程来驱动DevOPS的具体落地;
来到B站后,开始对整个网站架构有一些模糊的了解,从端到CDN,再到四层负载均衡、七层负载均衡,应用服务网关等等,并跟着组长一起实现第一代的容器PaaS平台(架构方面都是大佬在操刀);
学到一些新的排障手段和思路,包括
dropwatch
、tcpflow
,perf
,也开始实际接触到分布式系统,如Mesos、Consul这样的系统故障时的处理(尽管仍然无法完全hold住..);见识到一些黑科技,也开始理解CGroup、Namespace、FUSE等一些内核特性,开始明白外在的架子的本质,仍然是夯实的底层基石在支撑;
开始认识和学习TSDB、监控告警、SLB\gateway(nginx甚至liknerd)等等全面的运维架构相关的基础组件
不足
运维方面的不足之处也很多,主要是:
运维架构方面仍然无法根据现有情况作出最优的设计,包括组件的选型、实现方案、迁移和改造思路等等;
运维能力和学习能力也有所减弱,失去了很多把握一个开源方案落地到组织的具体思路(这也和不再在一线运维搬砖有一些关联);
产品化方面对于需求的接收和处理仍然有一个gap,没有以前做运维时候的细心和sense;
下一个三年的期望
鄙人希望对运维架构的设计和改造方面达到一个新的里程碑,量化一下的话,需要是独立设计实现一个从无到有或是改造性质的架构调整(希望是微服务架构方面);
鄙人希望对监控、PaaS有更深刻的理解,对如何实现和怎么实现有更多的沉淀和经验积累,也包括对TSDB,集群方案的实现,量化的话,希望能至少做出一个成熟的架构交付出来;
鄙人希望在troubleshooting方面能有更多建树,不仅在于排障技能,也在于思路和经验沉淀,以及工具自动化的实现;
时间规划
鄙人这块一直是个短板,很喜欢说的多,做的少,也容易出现效率偶尔非常低的情况,总的来说这三年下来有些调整,包括对work life balance的把握,希望接下来能调整好这个度,好好工作,好好生活。
阅读
这块的话,鄙人这三年里,技术书读的不算太多,《Python for Unix and Linux System Administration》、《Fluent Python》、《Docker容器与容器云》、《Google SRE运维解密》、《Linux系统编程手册》等,而闲书就太多了,哈哈,东野圭吾系列、大刘系列、《一九八四》、《生而贫穷》等等,这里就不一一列举了。
交流
这三年里,鄙人加入了DockOne社区,贡献了一些文章,完成了《Docker生产环境实践指南》的书籍翻译,也有类似从头编写一款时间序列数据库、easy you life by using the snmp exporter generator 等和社区互动的内容输出,鄙人也有幸参加数人云沙龙有过一次容器PaaS平台建设的分享。
总的来说,三年前列下的目标:
系统掌握Django前端开发;
形成自己的一套自动化运维理念;
成为至少中等水平的运维人员;
应该可以打上及格分60分,接下来,鄙人的发展目标的话会是:
做到产品及运维架构的设计者、实现者、维护者的高度;
对于Web Framework、Service gateway、分布式系统、程序语言达到高级工程师乃至于架构师的水准;
开拓视野,加强交流,不再局限于技术;
等到合适的时间,再回过头来看看自己是否达成目标!
—— 2017.08.24,Colstuwjx