2017,而立之年。突然强烈的感觉到任性和自由已经离自己远去,责任和重担慢慢袭来。过节的时候朋友圈里都是一派喜气洋洋的气氛。有的人去了日本,有的人去了美国,大家在圈里跟男票女票雪月风花。我在老家陪着老婆孩子恬静度日,陪女王大人做一切她喜欢做的事以弥补我不在身边的缺失。元旦的晚上惜别了老婆孩子,独自踏上了回北京的火车。 这又将会是一段时间不短的分离。自从我们两个认识以来就没分开过,直到小家伙的到来带走了我们的一切任性和孩子气。 看着怀里小家伙的笑脸,我们守护这份幸福的同时不得不选择暂时分开,不得不对生活妥协。希望 2018 年我们不再分离并且有机会能再任性一把。
刚才说的好像都太伤感了哈哈。不扯那么多了,我们聊聊工作上的事。刚才看了一遍去年写的总结。感受着当时的想法和心态。也慢慢的察觉到了这一年的成长和变化,这种看着自己变化的感觉还满有意思的。去年的时候立过一个 flag 说自己要转型去搞 devops,想想当时有点天真了,不过好在总算没怎么打自己的脸,这一年在 docker,k8s,salt 等技术上倒是有了一些成果。先知 2.x 系列的产品成功的自动化部署在 k8s 上。我维护的 k8s 集群专门给开发和测试使用。高峰期的时候扛住 60 套环境的并行使用。同时也围绕着 k8s 做了一些比较有意思的事。例如 UI 自动化的浏览器集群虚拟化在 k8s 里,Jenkins slave 也虚拟化在 k8s 里。封装 k8s 的 api server 在平台上做了一些事情等等。当初要做这些事的目的就是为了提升环境管理的效率,但现在算是超出自己的预想了吧,k8s 现在变成了测试体系的根基。变成了我们内部的 paas 平台。各种测试实践在 k8s 上开花结果。
我是社区第 7606 个会员,不算老人了吧。 16 年 5 月份写下了测试开发之路的第一篇文章,迄今为止有 80 篇了。算算差不多平均一周一篇, 一开始的时候其实就是想写一下自己的测试框架是怎么设计的,但后来就收不住了,涉及的东西越来越多。 docker,spark,flask,k8s,salt 等等还有很多我想写但没有时间写的。深度学习基础系列也已经写到第十篇了。我一直想保持着一周一篇的频率更新文章 (虽然中间因为生孩子断过几次更),因为我喜欢技术,喜欢分享,也是给自己立个 flag,逼着自己学习,因为第一篇写了,就得接着写下去吧, 写不出来了多没面子啊。同时保持高频度的更新也是向所有人阐明我的态度-- 我是个实干派,我是个持续学习的人,我是个喜欢手底下见真章的人,虽然我不是大牛但我永不气馁,我不会因为别人的诋毁和攻击就停止我自己的道路,我会用越来越多的文章和分享来坚持我的立场。
17 年对我而言也是重要的一年,这一年头一次参加了一些大会演讲,让我从幕后走向前台,讲过 docker,讲过机器学习产品的测试。尤其是社区举办的大会,让我认识了很多朋友,也让自己的表现欲达到了满足。我算是个 docker 和 k8s 的粉丝,所以其实就算不参加大会,我走到哪也都说 docker 好,k8s 好,测试的小伙伴们赶紧搞起吧。这种由衷的喜爱一门技术的热情被我带到了各种分享和日常沟通中来。有时候聊天的时候一提到 docker,我就滔滔不绝,感觉自己像个推销员。 又感觉自己像是来个现场的即兴演讲。2018 年,我希望自己能说服更多的小伙伴们加入到 docker 的大军中来。
也说说这一年做的一些主要的事情吧。
下面是跟工作无关的:
我很迷琅琊榜,这些日子琅琊榜 2 上映后我也加入到了追剧大军中,剧里面郭京飞饰演的濮阳缨要利用萧元启的时候对着他的母亲莱阳太夫人说:人总要先有用处,才会有机会,所以有时候利用二字,并没有你想象的可怕。这句台词我揣摩了很久,建议大家多看几遍这一集,我已被郭京飞圈粉。
17 年,我懂得了一定要让自己有用处,机会不会平白无故的砸在你脑袋上。当你证明了自己用处之后,机会就会自己找上门来。我深深的感到了以前跪求一伯乐而不得,而现在机会纷纷而至的落差感。
17 年特别能体会到一件事,那就是机会是留给有准备的人的。在机会没有到来之前要蛰伏着,准备着,当机会出现的时候要以雷霆之势拿下它。虽然当时拿到机会的时候并没感觉到,但事后想想,也确实是这个道理。
17 年年初的时候测试环境和线上环境引入了 k8s。但其实早在 16 年我就发出了引入容器编排机制的声音了。 但是在当时不论是 sre 的同学还是老大都不太同意我这么做。 现在想想也是对的,一个是当时团队中没有人有这方面的经验。贸然就开始使用是会被坑死的,尤其我还是个测试人员,确实很少有让测试人员去搞这种级别的基础架构的先例,大家还是希望专业的 sre 来做这些事情。第二个是团队当时的业务压力也很大,大家都很忙,这件事想等招到人了以后,压力小一点之后再做。 但我内心是真的特别想做这件事,这是个一个技术人打从心底的欲望。 所以我在自己的一个机器里开始用空余的时间偷偷试验。自己学习是比较坑,我花了很长时间才写好了 k8s 部署环境的工具。自己慢慢地使用,慢慢的踩坑。 所以这也就是为什么 17 年初的时候我能够把测试环境迁移到 k8s 的原因了,因为在他们辐射到测试环境之前我就把事情给做了。事情顺理成章的交给我负责,我很开心,我终于有了实践一定规模的 k8s 的机会。sre 们也很开心,因为他们不用管测试环境的这些破事了。 这件事表面是我得到了一个机会历练并证明了自己。但我为了这个机会准备了近半年的时间。机会不会砸到你脑袋上,你要主动把脑袋凑过去
在公司的群里胡大大说过一段话,我觉得特别有道理。意思大概是我们要少一点主义,多一点技术。少一点讨论,多一点实践。多从技术角度找一找解决方案。 当然这句话是有语境的,当时我们陷入了理想很丰满现实很骨感的怪圈。
有些时候,我们好像就是想的太好,做的太少。我们推崇着各种思维主义。敏捷,极限编程,devops,测试开发一体化,测试思维质量化,质量体系自动化等等等等,我们总是构想着各种美丽的蓝图,宏伟的目标。我们穿梭在各种会议和演讲中推行自己的想法。讨论着引入这个这个机制会怎么样怎么样,引入那个做法会怎么样怎么样。 但最后到头来我们讨论的特别好,做起来特别差。
我信奉路是走出来的,不是瞎想出来的,走在路上根据路况不停的改变策略最终才会到达终点,而不是一开始就要设计出一个完美的路线。完美的路线是不存在的,是会被各种现实打败的。我们设计的完美路线是一条直线,直达终点,但是现实的路线是山路十八弯,而且路面上坑坑洼洼甚至还有 N 个狼群挡着。所以我们得把山炸了,把坑填了,把狼群都宰了再选造一条新路线,在这种中间要保证自己不被吃了,炸了,坑了。 没有这份工程化的本事想再多也是枉然。所以,有时候说一千道一万都不如写出个工具来的有用,把路先修好了,路线自然就明朗了。
这也同样适用在学习上,我这两年总纠结是学这个好,还是用那个好。 玩 docker 的时候我纠结是学 k8s 好啊,还是 mesos 和 swarm。 学前端的时候我纠结是 angular 好啊,还是 react 和 vue。 学 python 的时候我纠结是 flask 好啊还是 django 好。我找了各种文献来参考,后来是越看越纠结。于是索性老子不纠结了,随便找个看着靠谱的先搞,搞了就知道好不好了。所以现在我玩上了 k8s,angular 和 flask,而不是继续纠结而浪费人生。 我就没踩过坑么? 当然不是,我很不幸的在 mesos,swarm,k8s 中最后选的 k8s,我是先踩了 mesos 和 swarm 的坑以后才转向的 k8s。我们是要避免坑的,但是不踩一下,怎么知道这是坑呢?
以前总想着有一身的技术去哪都不怕,我有一身的测开技能,去哪个公司混不下去。今年明白了自己以前有多天真,技术要结合所处的领域场景才能绽放出价值, 而在某一个领域的积累决定了这个价值有多大。不同的领域有不同的技术栈和使用方式。 我再这里玩的风生水起但把我放到移动领域去我基本就是个菜鸟一枚,越是特别通用的方式在企业中的价值可能越小,因为通用就代表了它放弃了很多的特性。我们才要根据所处的领域做很多定制化和垂直化的东西。这就是领域经验,领域经验的深度决定了技术能力的深度。所以大家看我开始学习深度学习,因为这是我所处的行业。我写的文章从一开始都是通用的测试框架和技术,但到现在都是一些 docker,k8s,salt,deep learning 等等这些技术的原理,这是因为我终于开始慢慢的深入下去了,慢慢的往底层转移了。同时,文章的受众越来越小了,我也感觉到越来越孤独了。因为毕竟没有那么多人跟我处在一个行业上。 但我却被这些技术迷住了,有一种茅塞顿开的感觉,在学习 deep learning 的时候,对比着自家产品来操作,理解的更深,从前想不明白的东西现在想明白了,从前不知道怎么调的参数现在知道怎么调了。 到现在为止,我终于有了一种做产品用户的感觉。 之前的自己,就好像是一个不懂写代码人再测试一款 IDE 一样无力。希望 18 年的建模比赛能拿到好一点成绩~。 现在团队把 k8s 融入到了产品中,之前学习的 k8s 相关的东西不仅仅用在了环境部署上,也用在了产品测试中,这也让我能更容易的理解产品的架构,更好的进行部署测试。
2018,请你对这个傻逼好一点。