灌水 测试开发之路 -- 一个小小工程师的再回首

孙高飞 · 2018年01月02日 · 最后由 sun 回复于 2019年01月02日 · 5141 次阅读
本帖已被设为精华帖!

前言

2017,而立之年。突然强烈的感觉到任性和自由已经离自己远去,责任和重担慢慢袭来。过节的时候朋友圈里都是一派喜气洋洋的气氛。有的人去了日本,有的人去了美国,大家在圈里跟男票女票雪月风花。我在老家陪着老婆孩子恬静度日,陪女王大人做一切她喜欢做的事以弥补我不在身边的缺失。元旦的晚上惜别了老婆孩子,独自踏上了回北京的火车。 这又将会是一段时间不短的分离。自从我们两个认识以来就没分开过,直到小家伙的到来带走了我们的一切任性和孩子气。 看着怀里小家伙的笑脸,我们守护这份幸福的同时不得不选择暂时分开,不得不对生活妥协。希望 2018 年我们不再分离并且有机会能再任性一把。

当初立的 flag

刚才说的好像都太伤感了哈哈。不扯那么多了,我们聊聊工作上的事。刚才看了一遍去年写的总结。感受着当时的想法和心态。也慢慢的察觉到了这一年的成长和变化,这种看着自己变化的感觉还满有意思的。去年的时候立过一个 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 的大军中来。

17 年的成果

也说说这一年做的一些主要的事情吧。

  • 基础 k8s 集群的内部 paas 平台瓜熟落地,自动化编译,出包,部署,测试,流程已通。高峰期抗过 60 套测试环境 ,这个刚才都说过了。
  • 深入产品,学习深度学习原理,终于能更深入的测试机器学习的各种场景了。发现了以前我们无法发现的 bug,测试了以前我们无法测试的场景
  • 分布式 UI 自动化体系也已经成熟,浏览器集群 k8s 部署,多节点分担压力,自动化健康检查和运维能力都已完善。架构横向扩展,数十个浏览器的并发测试让测试效率提高数十倍。
  • 新规划的质量管理平台进入明年的计划列表,架构已搭建好,基于 k8s,python,angular 实现。整合 jira,jenkins,k8s APIserver,bamboo 等平台的 API。 目前已写完 2.x 系列的环境部署部分。
  • 跟随了先知 2.x 系列产品的完整生命周期,进入先知 3.x 系列。 最后一个版本我们发现了 500+ 的 bug,很多 bug 其实是以前就存在的,但我们当时能力不足,测试不出来。现在大家表示测试人员比以前更会测了,测出了不少底层的问题。团队也从 4 个人扩展到了 7 个人,人数的增加分担了不少压力,也让我们可以更加的 focus 到某一个点上。
  • 参加了一些大会和分享,有社区举办的,有全国软件测试大赛的。
  • 这一年学了好多技术:k8s,python, flask, salt, angular, es6, spark, deep learning. 希望 18 年能在这些技术上走的更深更远。

下面是跟工作无关的:

  • 儿子顺利出生,小家伙现在满地乱爬的
  • 亲手给孩子搭建围栏,滑梯,小床,安全座椅,陪孩子玩耍,带孩子看病,履行一个父亲的责任
  • 每周健身 4~5 天,坚持了整一年了,中间因为生病断过几次
  • 拿 10 万块给父母在老家买房子,希望他们能选到自己喜欢的房子,二老现在的房子太旧了,下雨还漏水,看着我再北京住的房子,我觉得挺过意不去的。
  • 看了不少书,其中有一本叫《丑陋的中国人》,在上面看到很多自己的影子,要引以为鉴。
  • 跟朋友们相聚的时间越来越少了,应了那句话,人的圈子就那么大,精力放在这上面,就得放下那方面。

这一年懂得先有用处再有机会

我很迷琅琊榜,这些日子琅琊榜 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

2018,请你对这个傻逼好一点。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 19 条回复 时间 点赞

看了高飞大佬很多帖子,最近的帖子渐渐跟不上了,看到了大佬技术的进展,希望 2018 ,能看到更多大佬的技术基础帖(学到并应用了 selenide,allure,docker 等),感谢 2017 大佬的帖子,确实学到了很多很多~

白纸 回复

好快~

孙高飞 回复

正好在整理自己的 2017,其实自己 2018 的目标不高,搞懂你 2017 前半年的帖子内的技术就行~

最后一句亮了

这些技术怎么应用到普通的互联网企业

最后一句堵住了大部分喷子的嘴啊😂

赞,向楼主学习

像飞哥学习了

—— 来自 TesterHome 官方 安卓客户端

思寒_seveniruby 将本帖设为了精华贴 01月02日 21:40

"踩了才知道是坑"

👍,很多时候,我们都在纠结到底踩不踩,踩哪一个。

daolao,虽然有很多看不懂,但还是觉得你很厉害哈哈哈,学习了~~

受益颇深,感谢分享

写得好好啊
dalao 是一个有智慧的人

喜欢看你的文章

写的好学习了。一个新的榜样,一个新的学习对象

少一点主义,多一点技术。少一点讨论,多一点实践。大神都是从坑里面爬出来的,少说多做,收益颇深。

最近开始被你圈粉了,向你学习,当深入研究某一个领域的时候,不管是不是人工智能,竞争力都足够了,因为深入两个字,做起来不难,但是能做到的人不多(向浪费了两年时间玩表面的自己抽两巴掌)

在路上 回复

其实我也浪费了好几年。 我是最近这 3 年补回来的~

孙高飞 回复

嗯嗯,现在我也开始学着深入,向你学习

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44

最后一句, 飞哥太谦虚了,向你看齐

simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08
ABEE ycwdaaaa (孙高飞) 在 TesterHome 的发帖整理 中提及了此贴 01月12日 13:47
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册