2021 年年鉴

今年没有在跨年的时候及时写完年终总结,是因为那天还在西安隔离。2021 年一整年依然是疫情肆虐,下半年在新加坡尤其严重。所以在这一年的最后回想起来,还是比较无聊的。

所幸这一年经过的所有的事情都还算顺利,没有什么大起大落。

就先说说工作吧。其实今年的大部分时间都花在了工作上。从 6 月以来,新加坡的防疫政策从清零变成了与病毒共存,病例数量一直居高不下,一直到年末的时候才开始下降。所以下半年我们几乎都是在家办公的。在家办公就导致了很多问题,比如有同事在 town hall 上提出的 endless working hours,就成了我最大的问题。

以前想,居家办公可以让我们有更多的时间去安排自己的工作。但实际上实行起来,却发现工作时长不可避免的延长了。一方面,大家一起没有了通勤这个工作和生活的分割,所以有时候会在 IM 上在工作时间之外去沟通一些问题。很多时候虽然说不急,可以回头再回复。但是我看到了不回复就会难受,只好去帮人家解决;另一方面,下半年的大促一个接着一个,每个月至少一次。大促之前有事情要忙,大促之后又有因为大促而 block 的事情要忙,也导致工作时间延长。居家办公也导致工作设备的质量下降,没有一把合适的椅子,没有像样的办公的桌子(当初租房子的时候也没想到自己会在家工作这么长时间),导致开始腰疼了。

抱怨就说这么多吧,希望可以尽快恢复办公室办公,也希望这波疫情赶紧过去吧(这篇文章在 2月底捡起来继续写,发现第三波疫情又开始了,真的是烦)。

好在,今年做的工作都比较有意思,所以也没有感觉到多累。

今年工作上做的事情主要有两个,一个是公司的 service mesh 系统的维护。另一个是从零开始一个的 SRE Chaos Engineering 项目,我起的名字的叫做 Chaolab.

Service mesh 方面,其实没有什么特别大的项目或者改动,只不过是在各种部署结构和部署流程上修修补补,没有什么值得特别骄傲的,但是不知不觉,这个项目也越来越稳定了。比如:目前在升级的时候是无法保持住长链接的,通过发布的算法可以分批发布,每次不影响某一个服务 20% 的 instance,降低发布的影响;删除了大量不再使用的资源,归还了很多机器;下线了很多私有部署的 Nginx,迁移到公司的网关上去;将服务部署到了越来越多的机房,等等。

还有一个很有意思的事情,就是完全重构了部署使用的脚本,这个项目以及所有的依赖可以在一台笔记本上跑起来,一共涉及十多个组件,以及 20 多个 docker instance。算是去年一整年的工作成果的总结吧,之前下线了一些不必要的依赖,整理很多次部署结构,才能使它成为可能。

关于 Chaoslab 项目。这个算是比较有成就感的项目。一个人从头写了前端,后端,部署,agent 等组件,算是一个比较完整的项目了。主要实现的功能就是,你可以在页面上去创建一个实验,然后给物理机,或者容器等去实现注入 chaos,然后写 probe 去验证软件是否在注入故障之后依然工作正常。支持 crontab,权限控制,自动 rollback 等功能,大部分会使用到的注入选项都使用到了。

除此之外,就是一些杂七杂八的工作了。比如日常值班,回答别人的问题啥的。今年的感受就是,之前不被承认的工作在 Shopee 都是被认可的。还做了一个平台组件的 status page,这个是之前就想尝试的,一直依赖都有一个观点,就是应该通过公开的信息和用户信任感,用户需要知道你的组件的状态,在什么时间遇到过什么问题。虽然只是一些 CURD 的工作,没有什么技术含量。但是最后做出来非常满足。我一开始的设计有很多问题,但是很多人都给我提了建议,修改之后,就好很多了。

工作方面想到的就这么多吧。在开源方面,其实今年做的不够多,iredis 基本上是修修补补。目前的补全实现是基于每一个命令的,也就是说,redis-server 的改动,我都必须做出相应的适配,否则,一些新的命令或者老的命令修改了语法,都不会有很好的自动补全。然而 redis 6.0 新加入的改动都还没有支持完全。主要是没时间去做。

今年开了一个新坑,lobbyboy. 是一个可以自动帮你开新的虚拟机的 ssh server。一开始是满足自己的需求,后来看到其他人也有需求,也有很多贡献者来提交代码。甚至在这个项目上写的代码比我都多了。后来把这个项目迁移到了一个 org 下面,而不是只有我自己有权限。虽然后面在实现了基本的功能之后也没有花很多时间在上面了。

今年学会了什么?

新学的东西不算多,感觉自己在啃老本。倒是接触了 Prometheus,读了 Up&Running 那本书,感觉对于使用算是比较了解了。

另外看了一些 golang 的教程,目前算是能看懂 golang 的代码,但是写的话还是差点火候。今天还是继续学习一下 golang 这门语言,多看一些代码和书。

另外感觉自己的沟通能力有了很明显的提升。能够在别人描述不清楚自己的问题的时候帮别人解答问题。:)

明年计划学习什么?

除了 Golang 之外,Kubernetes 打算多花点时间学习一下,因为工作中要用的到。

工作和学习的事情就说这么多吧。去年也发生了很多有意义的事情,很多也是一时半会说不完的。年的时候从新加坡回国过年,疫情之下的回国程序真的是复杂呀,交了数不清的文件,终于拿到大使馆发的绿码了。但是偏偏不巧选择的落地地点是西安,落地的第二天西安宣布封城。终于在隔离结束的时候,回到了上海,上海又说你是从西安回来的,作为重点人群需要隔离14天。虽然我极力解释我是在隔离结束之后完全闭环转移到上海的,没有接触过西安的人,也是无济于事。最后还是被拉倒隔离酒店隔离了14天。这28天应该是我在这一年里面最郁闷的。

今年年初的时候和老婆一起去拍了婚纱照,寒冷的冬天在外滩懂的瑟瑟发抖,辛苦老婆了。

今天的首要任务之一就是将婚礼举办好,嘻嘻。

年后经过香港转机返回新加坡,正巧第三波 Omicron 疫情又开始,香港和新加坡又是疫情比较严重的地方(怎么我这段时间去哪哪严重的?!)。经过了道道审核,最后还算是顺利地回到了新加坡。

路上还见了多年未见的老朋友,一起吃了快乐小羊。他吃羊间隙还得拿出来电脑工作,我感叹大家都成社畜了。

回到新加坡之后,很快安顿了下来,换了一个房子,也很快进入了工作状态。

好像也没什么好说的了。2021 年是过的比较平静的一年,2022 年也没有什么特殊的计划。老婆的计划倒是比较重要,今年除了婚礼要办,老婆也在努力朝着一些会改变人生轨迹的大事上面付出努力,我只有默默地支持,提供帮助,希望一切顺利。总之,希望2022年能够多付出一些,过的也更多姿多彩一些吧。


往年的总结:

  1. 2013年
  2. 2014年
  3. 2015年
  4. 2016年
  5. 2017年
  6. 2018年
  7. 2019年
  8. 2020年


2021 年年鉴”已经有9条评论

Leave a comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注