读书笔记

花了几个星期的地铁时间把《凤凰项目·一个IT运维的传奇故事》读完了,这本书非常有趣,跌宕起伏,有时候读着读着也会让人想到自己的工作经历,虽然没有比尔(主人公)这般精彩,不过也想记录下的,毕竟好记性不如烂笔头,主要是现在脑子越来越不好了,昨天和女朋友开视频,自己身份证后四位都记错了…

这个读书笔记不是严格意义上的围绕读书内容,而是结合自己工作经历和书中 DevOps 理念的记录,不保证精彩,但一定真实。

公司一

笔者算算工作也有 8 个年头了,待过三家公司,不算多,也不算少。

最有感情当属第一家,一家外企,把人当人的公司。笔者不是个有大进取心的人,也没什么大目标,毕业就来这样的公司,真是如鱼得水,一待就是六年半,直到它退出中国。

笔者虽然没有什么大目标,但是对待工作还是认真负责的,我们当时主要做部署相关的工作,初期在 OpenStack 上做应用的部署,后来在 Kubernetes 上做应用的部署。

在 OpenStack 上我们编写 Heat template,在 Kubernetes 上我们编写 Helm chart。我们的应用是非常复杂的,需要多个组件的部署和配置。

当时我们已经在用敏捷和 DevOps 的方法论了。每天站会,Jira 看板同步追踪进步等等都是日常。很感谢这样的平台,在职业生涯初期,给我无形的形成了一个良好的工作习惯。

不过还是有需要改进的地方,主要是技术上的。我们用 Jenkins 来做ci/cd。Jenkins 相对较重,配置较多,团队里有专人来维护这块的流程,遇到问题我们就知道该摇她了。

从《凤凰项目》这本书我想她应该是一个约束点了。

加上 robot case 对并发的支持并不友好,往往从提代码到发包要经历一个小时,中间如果出错那就更漫长了。虽然用的是敏捷和 DevOps 的方法论,但是这个流程还是比较长,体验不太好。

当时 kubernetes ArgoCD 和 tekton 这些正开始流行,笔者想搞一搞,也因为工作的一些变动等等因素,最终没学习,而是转头去啃 Kubernetes 源码去了。

由于俄乌战争等等政策/经济原因,公司退出中国,笔者也离开了这家公司。

笔者在这家公司,遇到一批很好的尊重你,关心你的同事。有些离职之后还有交流,偶尔还会吃饭聊聊现在的 AI 技术等等。
笔者在这家公司也买了房,有了一个落脚的地。
笔者在这家公司获得了公司非常重量级的奖项·蓝鼎奖。
笔者在这家公司被带着参加马拉松,爱上了跑步。
……

离职的时候,提前三个月通知,不安排工作,让你专心学习找下家。公司的同事,领导,格局和文化让人敬佩,永远发自内心的感谢,每次提到都有点热泪盈眶,当时只道是寻常。

飘风不终朝,骤雨不终日的道理我懂,马上笔者迎来了自己的地狱中局。

公司二

来到第二家公司,每天上班前都要祈祷,祈祷今天不要有人找我,祈祷今天不要出事。从宿舍到公司五公里,感觉开了五个世纪,压抑痛苦。

这是一家国企,范围在小一点的话,这是一家央企。国企不是曾经的国企,向华为看齐,用狼性文化来管理员工,却让员工吃糟糠。

从上到下都是传声筒,员工没有自己的想法,不需要提出自己的意见。

在前司大家就问题展开讨论,目的是解决问题。在这里遇到问题,先想着锅给谁,谁来担责?

领导说的特虚,指标定的特严,职级观念特重,PPT 做的很好看,术语一套一套。

可以说大部分国企有的毛病这里都有,笔者并不想吐槽,也无意和谁结仇,网上关于这家公司的负面消息多如牛毛,并不想多说。

主要结合《凤凰项目·一个IT运维的传奇故事》的 DevOps 理念,说一说在这里的工作经历。

这里没有敏捷,看着像瀑布又不像,看着像敏捷又不敏,不知道跟哪家公司学的,不伦不类。

你的任务不是来自产品经理,产品经理在这里是干杂活的,领导就是产品经理,产品经理给领导做 PPT。
不知道领导通过什么形式把任务给组长的,可能是中午吃饭的时候,在笔者工作期间没有一个正儿八经的会议传递,笔者也不知道。

反正任务是拿到了,然后估计任务不是开发估,是开发的师傅(这里是有师傅帮带的,但是师傅可能是压榨你最狠的一个)。开发的师傅对任务负责,而不是开发的人。

负责是师傅负责,干活是开发。这有什么问题吗?
有人可能想到了,问题在于活干好了,是师傅领导的好,活干坏了,是开发的锅,逻辑自洽,闭环了。

无形当中,开发/测试/运维这些真干活的人反而成了最底层,最没有思想的牛马(这其中的逻辑大家应该能理解吧)。

反正任务是估完了,活也排到了。然后没有敏捷,定一个大致的时间点作为截止日期,但是最底层的牛马并不知道这个截止日期。没错,牛马知道的信息少的可怜…

这里不透明,藏着掖着防着,完全和 DevOps 背道而驰。

笔者的师傅隐藏代码仓库,吃饭的时候和我说要保持竞争力。我以为这是师傅的生存之道,后来才知道师傅是团队里最大的毒瘤。

说回来,任务估完了,活发下来了,截止日期定下来了。下面就是干活了。

干活是有站会的,每天站会,更新进度,没有看板,只有 excel。没错,这里 excel/ppt/word 满天飞。 你的组长并不是对任务负责的那个,有一说一笔者的组长还是不错的。幸运的是,自笔者离职之后不久他也转去其他组了。

组长和师傅不和,导致笔者处境也挺尴尬,一头是组长,一头是师傅。笔者的任务是师傅负责,组长也管不了,师傅站会又不去…

所以严格意义来说,笔者的站会就是中午和师傅吃饭的时间。虽然笔者每个细胞都在抗拒和他吃饭(当然还有领导,笔者的师傅舔技特好),碍于碎银无奈接受,但是笔者每个细胞都在鄙视他,笔者很争气的离职之后把这个人删了(笔者不想说太多师傅给我带来的心理压力,只能说他不是我一个人的师傅,我更心疼那些人,有些还在那个环境里,而且还是刚毕业不久的大学生)。

前面说了这种不论不类的敏捷,DevOps 就更不伦不类了。

团队里有一个专人负责流水线打包发布,笔者有什么问题也请教他。有意思的是,在这里牛马之间的关系还挺好的,基本都会互相帮助,也不防着什么。

但是这个人同样也是约束点。

而且这里的流水线用的第三方的工具,不是 Jenkins,ArgoCD 等等,并不好用,要写不少 shell,难用的很。然后编包编出来了,这个包不是发到镜像仓库,是从内网拷出来,通过公司的社交工具发给其他组交接的人,这个人可能是几线对接客户的人。

听着很麻烦,做起来就更麻烦,一个 1G 左右的包从内网拷贝,如果有网络断线(断线是经常的),还要重新下。笔者在尝试数次失败后,把包分割成小份,每个小份 10M 左右,成功了。

然后在本地把这些小份的包合成完整包,通过公司的社交工具发给其他组交接的人。

顺便一提公司的社交工具。真是烂的出奇,如果传文件占用带宽,笔者的电脑就啥也干不了了,只能卡死等着,只到传完。
这个社交工具是公司的电脑(没错,公司还做电脑)的配套工具,这样的工具,这样的电脑还在往外卖(卖的是自家人,左手倒右手,这么烂的东西,个人用户是打死都不会用的),笔者也不知道怎么好意思的。

大部分不是这个体系里的人肯定没听过公司这款电脑,就像大部分人没听过公司的其他 AI/GPU/服务器/大模型产品一样。

终于手动把包发布出去了,其实发布出去笔者也不知道发给谁了,师傅把你拉到一个群,让你把包发到这个群的谁。这就算 ci/cd 里的 cd 了。

这一套流程很容易出错,特别脆弱,跑通之后,半条命没了。

笔者也不是想改变什么的人,记得有次开会,大领导说办公室门口的意见箱大家可以提意见。我问别人,可以提吗?别人说,不要。可能提了针对的就是你了,可能大领导真不是这意思,但是在那样的环境下,小心还是使得万年船,这个道理我懂。

我是吃过精粮的人,看到这个环境两天就决定了要走,于是没过试用期就主动离职了。
也算是开了眼界,对国企,笔者是祛魅了。

笔者没有任何留恋的地方,只是觉得有点可惜。
这里有很多人才,来自阿里,来自字节等等(部分是降薪过来的),大部分是研究生起步,条件很好,却在这里活成了人精,活成了牛马。笔者感到心痛。 更心痛的是,刚毕业的大学生来到这里,他们没经历过社会,在这样的环境下很容易觉得社会就是这样的,没吃过好的,很容易在心理上/职业道路上被影响。

笔者在公司期间,曾数次劝过有些大学生赶紧走(这么做是有一定风险的),年轻反而经验没那么重要,大学生秉性纯良可能都想攒攒经验吧。有意思的是,自笔者离职之后(笔者是这个团队第一个走的),后面陆陆续续走了好几个中流砥柱型员工。

公司三

这家公司是云计算的专业型公司,笔者在这里感受到前所未有的流畅,ArgoCD + Tekton 混着用,生产/测试/开发分的很清,流程一致,效率极高,开发对自己的代码负责,ci/cd 流程都掌握,真正做到了无约束点。也算是过上好日子了。