我當 DevOps 的一年

2020-10-28 14:01:16

從小白到小白

這個世界少了個小白,多了個菜鳥

2019年夏,我正式結束了我的大學生涯,並於同年8月19日進入ThoughtWorks,正式成為了一名光榮的程式猿。
而成為程式猿後的日子,說實話,並不輕鬆,反而非常辛苦!最起碼入職培訓的兩個月期間是非常辛苦的,幾乎每天都會熬夜到兩點左右,只為完成當天佈置的作業。
但是,辛苦是有回報的,兩個月的入職培訓結束,我學到了非常多的知識:前端的 HTML、CSS、JS、React、Redux…後端的 Java、MySQL、Spring Boot…還有一些其他的相關技能,包括 TDD、重構、敏捷等。
可以說,從一個什麼也不懂的小白一下子蛻變成了一個稍微知道一些東西的菜鳥(嗯,最起碼當時是這麼覺得的😂)。
而且,最重要的,或者說印象最深刻的,還要數培訓期間認識的一群小夥伴以及一群非常 Nice 的 Trainer 們了。
那段時光,雖然辛苦,但很充實,也很開心!

當一個菜鳥 Dev 知道自己要上一個 DevOps 專案

入職培訓結束,隨之而來的便是第一個正式專案的分配!還記得當時心裡的忐忑,真的是應了那句諺語:十五個吊桶打水——七上八下!
但是,當我真的接到通知並知道了自己接下來將要上的一個專案後,我一下子就不忐忑了,而是換了一種新的情緒(姑且當是情緒吧)——迷茫!
是的,就是迷茫!
因為我入職的時候是以 Dev 的身份入職的,而且入職培訓也培訓的都是 Dev 的一些開發技能,但是,接下來我要上的這個專案,居然是一個 DevOps 的專案!
DevOps 是什麼?和 Dev 有什麼關係?主要做些什麼工作?
各種疑惑接踵而來!
而最終,經過一番Google,也經過向 Trainer 的諮詢,以及一些思考,我留在了這個專案,一個 DevOps 的專案,以一個菜鳥 Dev 的身份!

從菜鳥到小白

進入專案後,說實話,非常地 Nice!
我本身的性格比較內向,不太喜歡說話,但是 Team 內的成員們都非常好,對我也很耐心,不管我向他們中的任何一人請教問題,他們都毫無保留,非常認真負責地給我講解,而這,也在之後的一段時間裡,讓我的話漸漸多了起來。
當然了,Team 裡的大家都很好,但是壓力也是非常地大,不光是對專案中所用的技術棧不懂的壓力,還有當時試用期的壓力!
那段時間,幾乎沒有在十二點前睡過!
由於培訓期間,包括自己在大學期間學習的方向一直都是 Java Web 方向,所以對專案上用到的技術棧(TS、Ruby、AWS、K8S、Docker)完全不懂(當然了,也是自己菜的緣故😂),而且也對專案所做的內容有著一些疑惑(當時覺得和開發做的東西完全不一樣),那段時間,感覺自己重新從一個菜鳥(自封的)變成了一個什麼也不懂的真·小白!

即使是小白,也要當一個努力學習的小白

當小白的日子,很苦,也很不爽,好多東西都不會,於是就只能努力去學!我記得特別深刻的是當時第一次見到 GHE 這個縮寫的時候一臉迷茫,根本不知道這是個什麼東西,還以為是個技術,結果最後發現就是 GitHub Enterprise 的縮寫😂!
不過說實話,正是因為有這麼多的不懂,不明白,才使得我去努力地學習,去進步,去求知,去求索!

從 Java 到指令碼語言

作為一個 Java 程式猿,那時候可是認為 Java 天下第一(PHP 也不行)!
但是,當我在專案上接觸到 TS、Ruby、Shell 等後,我才體會到一句話:沒有最好的語言,只有最合適的語言!
每個語言都有自己的優勢以及自己所擅長的領域,正是有這麼多程式語言的通力合作,才構成了現在我們這個精彩紛呈的世界!

Shell 指令碼

嚴格意義上來說,Shell 並不能作為一門正式的程式語言,因為它是在 Linux 的 shell 中執行的,所以被稱為 Shell 指令碼。事實上,Shell 指令碼就是一些命令的集合。
但,正是因為這一點,Shell 才易會難精,Linux 中大量的命令以及一些第三方的命令,使得每次編寫 Shell 指令碼都得 Google,都得去查資料。
但是,即便如此,在這一年裡,我對 Shell 指令碼的認識與瞭解也有了很大的進步。當然,不能說所有的語法都會,但是最起碼在一邊查資料,一邊寫的情況下還是可以寫出指令碼的。這一點,我覺得還是很有意義的,最起碼,之前的我連什麼是 Shell 指令碼都不知道,甚至什麼是指令碼都不知道。

TS

都說 TS 是 JS 的超集,在我看來,最通俗的一個解釋就是:在 JS 的基礎上加入了型別檢查。
而也正是這一點,讓我對 TS 倍感親切,因為在加入了型別檢查後,一定程度上,和 Java 還是有一些相像之處的😂!
還記得當時每天都去看 TS 的官方檔案,很多的特性都去自己實驗,然後講給 Team 裡其他人聽,當時真的進步非常快,非常大,還發現了很多非常有意思的特性!(而且也是在那時候深刻體會到,程式語言也是很多人一點點寫出來的,不是一蹴而就的)
而且另一個我覺得 TS 很方便的地方在於,作為 JS 的超集,在需要驗證一些東西的時候,可以直接在瀏覽器控制檯去嘗試,還有程式碼提示,簡直不要太舒服!

Ruby

說實話,在這幾門指令碼語言中,我對 Ruby 可能是最不熟悉的,因為 Ruby 實在是太靈活了!而這其中最讓我難以接受的就是我老是看不懂程式碼。
如果方法呼叫沒有引數,那就可以不帶括號,這在我最開始接觸 Ruby 的時候,簡直讓我三觀盡毀!這怎麼可以?方法居然還可以不帶括號?什麼奇葩設定?
當然了,最終我還是接受了這一設定!但是,縱然接受了這一點,但總是將變數和方法搞混,還是讓我一度想抓狂!
而且,moduleend 實在是太煩了,就像幾個世紀前的老古董一般!
歪歪斜斜的每頁上都寫著‘仁義道德’(靈活)幾個字。我橫豎睡不著,仔細看了半夜,才從字縫裡看出字來,滿本都寫著兩個字是‘吃人’(module-end)!」
花括號它不香嗎?🙄🙄
當然了,也是一部分歷史原因造成的,但是 Ruby 的強大也是無法掩蓋的!

Python

Python 是後來才接觸的,大概在專案上半年後才新加的技術棧!但,這並不是我第一次接觸Python,第一次接觸 Python 還要追溯到我的大學畢設!那時候畢設的題目是影象處理,是用 Python 實現的,但是如今看來,當時寫的那些程式碼,簡直就是一坨坨的💩💩!
太TM醜了!🤢🤢
而在專案上接觸Python的這段時間,每一行程式碼都要寫到最簡,最漂亮,一次次地挖掘最簡潔的寫法,最漂亮的寫法,最漂亮的設計,才深刻體會到了 Python 的強大,而我也覺得,Python 在一定程度上比 Ruby 還要更靈活些(個人感受)!
而且,Python 上升的勢頭很猛啊,都快要把我大 Java 幹趴了😂!

AWS SAA

AWS!最開始對這個詞的瞭解僅限於亞馬遜雲(Amazon Web Services)!
但是,隨著在專案上每天(不是幾乎,而是就是)對AWS的使用,對AWS也是越來越熟悉(僅限於進步,不是指熟練度)。
而且,在 Team 成員們的鼓勵下,經過了幾個月的學習,我也成功考過了ASS(AWS Certified Solutions Architect - Associate)的考試。而在學習期間,對一個又一個的 AWS 服務的認識,可以說是重新整理了我對 Ops 的一些認知,也是因此,我才真正認識到了 DevOps 的魅力所在。
還有一件更加讓我對 AWS 倍感欽佩的是:有一段時間我想著自己做個網站出來,於是就想著在國內的幾個雲平臺上挑一個部署個網站,但是,實在是太難用了!沒有自動化,檔案跟坨💩一樣,用得我那叫一個尷尬啊!
言歸正傳,在備考 SAA 期間以及之後學到的關於 AWS 的知識,讓我對雲端計算這個概念有了一個更加深刻地認識,如果這是一條路,那就是不虛此行!
正如李白所云:蜀道難,難於上青天!
但,青天之上有云樓,萬般美景盡入眸!
歷得一番辛苦,方體會到一個「妙」字了得!

Docker & Git

Docker,最初在我的記憶裡是一個很高大上的名詞,後來,隨著慢慢地學習,這個「仙女」就好像食了人間的煙火,從拉一下子變成了時光雞,渴了喝露水,餓了吃螞蚱,一下子變得平易近人,變得平凡了!
當然,說平凡並不恰當,但就和會使用GIt一樣,學會了最簡單的使用,就好像自己一下子會了一樣,沒有了對神明的敬畏之心!
但,在我看來,這是一件好事!
正如《牧神記》中所言:打破心中的神!
只有將神拉到與你一樣的高度,你才能打敗他,戰勝他!
在我看來,Docker和Git就是這樣的兩個存在,把它們拉下凡塵,把它們貶為凡人,只有這樣,它們那一個個隱藏的祕密,才會被洞悉,才會被解開,最終,為我所用!
記得最開始學習Git,當時想要rebase幾個commit,想要把第一個commit和第3個commit合併到一起,死活就是不會,後來發現,直接可以換commit的順序,當時簡直委屈🥺到爆!
在這裡插入圖片描述

K8S 的遺憾

K8S,主要用於容器編排。而且這幾年K8S一年比一年火,越來越流行,越來越有成為一個事實上的標準的趨勢。
這個技術,直到現在我還不是很清晰,僅會一些比較淺顯的命令對其進行使用,可以說,這個是我這一年裡最大的一個遺憾了!
唉!
只能是在之後的日子裡繼續去找時間學習了,畢竟得趕上潮流不是?

小白的成長

Linux、Shell、TS、Ruby、Python、AWS、Docker、Git、K8S,還有TDD、重構、敏捷、CI/CD…等等很多多的技術,知識!
一項項的技術,一個個的知識,在這一年裡,通通進入了我的腦子裡,有的記憶深刻,有的還很淺顯,但是,無論什麼東西都不是一蹴而就的,正是因為有著日復一日,年復一年的積累,才能走到更高處,不是嗎?
君不見,大儒也是從秀才走過來的!
現在過去了一年,我學到了這些技術與知識,我相信,再來一年,我還會學到更多的技術,更多的知識…

小白和哥哥姐姐們

最後,當了一年的 DevOps,也在這個 DevOps 的專案上待了一年,雖然現在要開始一個新的專案,去當一個 Dev 了,但是,最不捨的還是這一年裡遇到的朋友們!
運哥、玥姐、曦宇、成清、馮煒、夢茹!
每一個哥哥姐姐,都是那麼地親切,不捨!
還有Cos,Dan,雖然和他們直接對話的不多(英語太爛),但是這一年下來,也都像家人一樣!
海記憶體知己,天涯若比鄰!反正離得也不遠😂😂
總之,這一年,收穫頗豐!
當鏤骨銘肌!