2019年還是發(fā)生挺多事的,一直在想該如何寫八拱,拖到現(xiàn)在,這是病涯塔,得治肌稻。
西南飛東南
2019年初辭去成都的工作,來到了一家能源出行企業(yè)匕荸,從4年后端開發(fā)轉(zhuǎn)變成為了一名“資深測試開發(fā)”爹谭,口味從無辣不歡到清新寡淡,變化讓人驚喜每聪,也帶著些淡淡不適旦棉。
手機自動化測試
頭三個月,從沒接觸過手機端開發(fā)的我接到做自動化測試平臺任務(wù)药薯,于是自備的錘子绑洛、蘋果手機派上了用場,從領(lǐng)導的推薦開源項目UICrawler到自己發(fā)現(xiàn)的AppCrawler童本,拿來主義終歸是沒有找到滿意的答案真屯,又開始研究Appium自己寫遍歷代碼,使用阿里的Macaca測試方案穷娱,還提了自己pr绑蔫,研究Fastmonkey运沦、Maxim等第三方解決方案,始終還是不夠滿意配深,最后以為Airtest是銀彈携添,結(jié)果發(fā)現(xiàn)并不滿足于自動化的要求,發(fā)現(xiàn)目的有一些迷失篓叶、不清晰烈掠,最后也是以調(diào)研解決方案的demo形式完成了入職答辯,感覺很潦草缸托,但是領(lǐng)導覺得還行左敌,走出了從0到1這一步。
服務(wù)容器化
因項目需要終止了手機自動化測試的工作俐镐,加入到了服務(wù)容器化小組矫限,說是小組,也就是我跟另外一位同事罷了佩抹。內(nèi)心還是挺興奮的叼风,對手機自動化已經(jīng)沒啥興趣了,服務(wù)容器化呢匹摇,因為開發(fā)經(jīng)歷的原因咬扇,是容器化的重度使用者,但從沒有參與容器化的建設(shè)與設(shè)計廊勃。
rancher vs kubeadm
從加入容器化項目伊始,因如何安裝k8s集群產(chǎn)生了分歧经窖,由于經(jīng)驗的關(guān)系坡垫,我強烈推薦Rancher,原因是這是一套開源的k8s管理平臺画侣,很適合我們這種小團隊冰悠,人手也不夠。不過我沒想到遇到了強大的阻力配乱,另外一位同事覺得就應(yīng)該用k8s原生的安裝方式溉卓,原因是可以更好的“研究”k8s。后來我后現(xiàn)所謂的研究也只是安裝k8s集群而已搬泥,并沒有深入代碼及k8s架構(gòu)及其原理桑寨,我果斷強推了一把rancher,先用rke搭建k8s用起來忿檩,讓大家能看到rancher的易用性尉尾,雖然那位同事由于習慣的原因,依舊固執(zhí)的要再安裝一個k8s自帶的dashboard, 但我總算是將rancher用起來了燥透,由此這一爭論算是告一段落了
centos vs alpine
容器項目的基礎(chǔ)鏡像用的centos沙咏,最終打包出來的鏡像竟然有600M之多辨图,我感覺很震驚,于是問為什么這么做肢藐,答曰:因為生產(chǎn)環(huán)境用的centos故河,為了穩(wěn)定性,要保持一致吆豹。于是我開始了爭取使用alpine做基礎(chǔ)鏡像之路鱼的,本機下載服務(wù)源碼,自己打鏡像瞻讽,推到鏡像倉庫鸳吸,又折騰了一番java服務(wù),真是一言難盡速勇。為此我仔細想了下為什么要用alpine晌砾,用幾個考量:輕量化、下載快速烦磁、標準化养匈。但是推行的過程同樣很艱辛,作為項目的后來參與者都伪,要跟前輩們爭取呕乎,最后卻被認為是激進。
模板 vs helm
服務(wù)部署在k8s里面初始形態(tài)就是各種資源文件陨晶,比如Service猬仁、Deployment、Ingress等等先誉,可以自己模板湿刽,然后參數(shù)渲染,我剛進容器化團隊的時候發(fā)現(xiàn)他們以前也是這么做的褐耳,但是寫的過于丑陋诈闺。隨著對k8s生態(tài)的了解,我在社區(qū)發(fā)現(xiàn)了Helm這一軟件包工具铃芦,覺得很棒雅镊,為此還專門在團隊內(nèi)部做了一個分享,想推廣使用Helm刃滓,以節(jié)省工作量仁烹,沒想到依賴遭遇了強烈的反對,后來我才想明白注盈,因為先期已經(jīng)做了一個“容器平臺”專門做模板渲染晃危,Helm難免有搶功之嫌,此時我對人性有了新的理解,不過我依然熱忠于做技術(shù)僚饭。
Jenkins vs gitlab
公司沒有CI/CD基礎(chǔ)設(shè)施震叮,本著實踐基礎(chǔ)設(shè)施即代碼的原則以及過往的工作經(jīng)驗,我用gitlab做了一個CI/CD流水線的demo演示鳍鸵,還向運維部門申請安裝gitlab runner苇瓣,得到的反饋:我們已經(jīng)有了Jenkins,不用安裝gitlab runner偿乖,CI/CD跟當前項目推進方案差別過大击罪,連我們領(lǐng)導也沒有經(jīng)歷這種自動化的開發(fā)部署方式,自然也難以獲得支持贪薪,問題是沒有CI/CD的支持媳禁,如果做容器化?沒有辦法画切,只有靠手動人力來做了
化整為零
公司是Java技術(shù)棧竣稽,Dockerfile不知什么原因用的是同一個,容器里面再套上腳本以作區(qū)分處理霍弹,這個做法幾乎沿用了當前部署的模式毫别,當時我覺既復雜又丑陋,自己花了點心思典格,將服務(wù)按類型整理成4種不同的Dockerfile岛宦,找不同的服務(wù)做測試,費了點工夫耍缴,也沒有多少人反對砾肺,畢竟這是個吃力不討好的活,不過直至離職時防嗡,這一方案才勉強被采用债沮。
容器化的理解
服務(wù)容器化的初始目標是提高測試環(huán)境的運行效率,減少機器使用量本鸣,在初期,只是將原有的服務(wù)打包扔進容器中而已硅蹦,這種機械的做法并不能實現(xiàn)服務(wù)容器化這件事荣德,沒有代碼配置書寫規(guī)范,沒有DevOps使用文化童芹,沒有基礎(chǔ)設(shè)施涮瞻,沒有架構(gòu)的調(diào)整,是沒法做成容器化的假褪,不能讓k8s來適應(yīng)公司的服務(wù)架構(gòu)署咽,要想清楚為什么要容器化,為了節(jié)省機器?坦白講宁否,我沒發(fā)現(xiàn)能省機器窒升;流量染色?僅憑概念也沒法做慕匠,合作推進受到了比較大的阻力饱须,領(lǐng)導也不看好這個項目,一個字台谊,難蓉媳。(ps:容易的話還要你做?)
自下而上 vs 自上而下
作為資深測開锅铅,做著運維開發(fā)的活酪呻,卻身在質(zhì)量團隊,在軟件研發(fā)體系里面盐须,處于較下的位置玩荠,沒有多少人會認為質(zhì)量團隊有多少技術(shù)含量,甚至于一些自己人也覺得技術(shù)上是不如開發(fā)的丰歌,這就造成了自下而上推廣的困難:信任姨蟋。說實話,以前呆在開發(fā)團隊立帖,并沒有覺得會有這種上上下下的問題眼溶,直至自己真實的遇到才后知后覺。如果領(lǐng)導一錘定音晓勇,是否容器化這件事就能更容易落地堂飞?
心生去意
容器化推進困難,沒有多少成效绑咱,小組受到一些非議绰筛,不得已竟然要接業(yè)務(wù)測試的活夕玩,領(lǐng)導也打算放棄容器化項目了爹袁,而我對k8s這一生態(tài)非常感興趣,所以尷尬的是是想做的無法落地泪喊,不感興趣的卻要做窿克,怎么辦骏庸,其實內(nèi)心已有答案:做技術(shù)。坦白講年叮,公司從來不是技術(shù)優(yōu)先的具被,背靠傳統(tǒng)企業(yè),自然政治意味比較濃只损。
辭職
裸辭
做出這一決定的原因一是不想給自已留后路一姿,二是確實也沒有想好做什么方向,三是單純想嘗試一下
方向
開發(fā)再加半年的k8s使用經(jīng)驗,對方向又迷茫了叮叹,思索再三艾栋,定了幾個:1. k8s開發(fā);2. 人工智能 3. 區(qū)塊鏈 4. 物聯(lián)網(wǎng)衬横。這是自己想做的方向裹粤,并非優(yōu)勢所在
求職
面試第一家就拿到了offer, 做golang框架開發(fā),寫煩的純業(yè)務(wù)的我蜂林,有點心動遥诉,不過因為公司較小,當時我竟然拒絕了
第二家做區(qū)塊鏈噪叙,有筆試題矮锈,毫無準備的情況下,竟然連基本的SQL都寫錯了睁蕾,結(jié)局自己是敗了苞笨;
第三家面某為,一面還算輕松子眶,二面算法題竟然沒做對瀑凝,現(xiàn)在想想還是準備不足,非吵艚埽可惜粤咪,工作內(nèi)容偏底層,做編程語言及編譯器相關(guān)開發(fā)渴杆,只恨自己當時不夠用心寥枝。
經(jīng)歷兩周無試可面的情況下,在保證信息準備的情況下磁奖,對簡歷進行了潤色囊拜,開始接連面試海康威視的容器平臺開發(fā)比搭,我有k8s使用經(jīng)歷冠跷,但無開發(fā)實踐,全程尬聊身诺,不歡而散蔽莱;面西子聯(lián)合旗下的工業(yè)互聯(lián)網(wǎng),跟技術(shù)與hr都聊的很high戚长,最終竟然沒有合到offer;小象教育怠苔,因為有所準備同廉,筆試做的很好,一面挺不錯,二面面試架構(gòu)設(shè)計:筆記類應(yīng)用設(shè)計迫肖,還有點帶壓力面锅劝,全線崩潰,深知自己架構(gòu)能力的不足蟆湖;面中控藍卓故爵,一面很輕松,二面覺得我做過的東西沒啥難度隅津,尤其聽說我最近一段工作經(jīng)歷是測開诬垂,立馬開始敷衍,雖自知結(jié)果伦仍,但面完也沒有主動給通知结窘;威佩網(wǎng)絡(luò)面試有嘗試,也有廣度充蓝,有架構(gòu)設(shè)計隧枫,但是最后給的offer實在是讓覺得不快,工資沒漲谓苟,所以也沒接受官脓;后面拿到兩家區(qū)塊鏈企業(yè),都不是自己想去的涝焙,不過授受了其中一家的offer卑笨, 在入職前幾天,面試了另一家做k8s開發(fā)的崗位纱皆,相談甚歡湾趾,也算是一拍即合,果斷放棄區(qū)塊鏈offer派草。
總結(jié)
這一年搀缠,在容器化推進的過程中,積累了很多負能量近迁,歸根到底艺普,還是能力不足,想做的事又很大很多鉴竭,找工作的過程更是發(fā)現(xiàn)自己知識積累泛而不深歧譬,廣而不精,焦慮的同時也比較迷茫搏存,最終工作的方向還是滿足找工作的期望瑰步,只是深知以后進大廠會更難了,不過這也更能激勵自己璧眠,做好技術(shù)冷板凳缩焦,人若無名读虏,便可專心練劍。2020年:把小事做好袁滥,把技術(shù)做精盖桥,少一些無用的焦慮,多一些實在的積累题翻,量變終將引起質(zhì)變揩徊,加油。