DevOps 高手的九項隱藏技能

Adam Bertram發表於2016-02-14

程式開發也是講究文化的。團隊裡的所有成員需要像一個樂隊在演唱會中所扮演的角色一樣,為了共同的目標而努力。當然,程式開發還是和一般的文藝工作者不同,作為一個開發團隊,每個團隊成員必須要有一些相同的特點和天賦。要不然就算你是世界上最好的軟體工程師或者是系統管理員,如果你沒有“開發特質”,很快你就會發現自己和團隊格格不入,最終會被團隊一腳踢出去。

高效的開發團隊會激發起每一個團隊成員的活力,向著共同的目標前進。如果有一個團隊成員並不能全身心的投入,那麼他們很快就會感覺自己處的非常彆扭,同時也會發現自己變成了專案成功的瓶頸。

接下來,我所列出的是任何一個想要在當下從事DevOps工作的人需要具備的9種品質。這其中有一些可能並不是人所天生的,但是透過實踐和努力,所有這些都能夠變成後天的性格,幫助DevOps成為高效開發團隊的一部分,建立起一個成功的職業生涯。

1.你喜歡偷懶

這個品質聽起來太違背常理了,但是確實存在這樣的道理。當然了,懶惰本身絕對不是在辦公室裡受到歡迎的品質,但是你為了偷懶而做的事情可就大有價值了。程式開發的一個核心原則就是自動化,而這個會讓開發團隊交付出可靠的,相容性強的和帶有前瞻性的程式碼。因為只要是用人工來完成程式碼部署工作,那麼總會不斷的出現這樣那樣的錯誤。

如果你是一個天生的懶人,那麼你肯定會討厭做重複的工作。這太沒有效率了,而且完全是浪費時間。如果你真的這麼認為,那麼恭喜你已經有了第一個了不起的品質。打個比方說,如果你花了一個小時寫了一段很重要的程式碼,但是卻忘了把程式碼提交到資源池,同時你的開發工具又突然崩潰掉了。這太掃興了。沒人想把同樣的程式碼寫上兩次。這就是我的觀點,雖然看上去有些極端,但為什麼要一遍又一遍的重複做同樣的事情呢?

真正“懶惰”的技術人員絕對也會討厭把同樣的事情做上兩遍的,而這種工作態度很自然的導向了自動化。為什麼要像對待嬰兒那樣費心的呵護你的伺服器呢?為每一臺伺服器都單獨的安裝相同的軟體,然後再給它們做完全一樣的配置,這對我來說真是折磨。把這些安裝與配置管理工作都寫成指令碼自動化完成,這樣就不用再為它們操心了。

2.你樂於改變

人們總是生來就要過一成不變的生活。我們早上起床,白天工作,晚上睡覺。這就是我們的生物鐘讓我們做的事情。我們大多會欣賞規律的生活,這是出自於本能的。然而,在循規蹈矩的生活中,思考變得困難而且費力,這是因為我們將思考放到了潛意識中,而將我們的日常行為認為是自然而然的事情。這是可以理解的,但是要想成為一個開發大師,就必須要把這些本能拋到一邊,反過來對著幹。

這個世界上唯一不會變化的常量就是變化本身,這在開發工作的環境中更是顛覆不破的真理。在開發的過程中,我們查詢問題,解決問題,把補丁加到自動化的測試中,然後迭代,就這樣迴圈往復。然而,要想成為一個成功的DevOps高手,你就需要把這一套常規的思路完全拋開。要時刻意識到開發工作是一個不穩定的工作環境,變化隨時都會發生。我們不可能一年做一次計劃,而只能一小步一小步往前走,不斷獲得反饋,然後儘快迭代。不會有一天是循規蹈矩的、重複的、可以預測的——這就是一個DevOps大師的一生。

3.喜歡與人交往

在現在這個時代,作為一個DevOps,你已經不能再把午餐打包帶進辦公室,關上門,然後僅僅在放鬆的時候出門溜達幾步了。你必須要喜歡與人交往,和團隊的其他人一起工作。你要把開發當做是一項團隊運動而且並不是像高爾夫那樣的單人運動,而是籃球或者足球這樣的集體運動。團隊中的每個人都要為獲取勝利做出努力,隊友們必須要相互協作。

很久很久以前,IT工作被認為是一個業務支援部門。IT部門常常被安排在地下室,工作內容也僅僅是保證企業的電腦能夠正常運做而已。因此,在那個時候,行業選擇的是那個時代的人,那些喜歡在黑暗的環境裡埋頭敲程式碼或者管理系統的“怪人”。他們幾乎不會跟別人說話,生怕自己的思路會被別人帶亂。但是當今不同了,如果你還是習慣於處在這種完全沉默的環境中的話,那麼你就無法在現今的開發環境中生存了。

沒有人會逼你喜歡別人,但是我們必須有能力讓別人高興,和他們溝通。如果你不這樣做,很快你就會像行屍走肉一樣。換句話說,如果你對解決方案沒有貢獻,那麼你就會對解決方案帶來麻煩。

4.從大場面著想

如果你在程式開發時沒有足夠的遠見,那麼技術上累積下來的麻煩就會很快找上門來。“我們之後會解決這個問題”,“這個版本不會再出現問題了”,還有“我專門幫你調整”這些就會成為你常說的話。如果你在敲程式碼或者做系統配置時並不能預見到你的程式在每秒接受成千上萬次請求的情況下會出現什麼狀況,那麼在如今的DevOps世界中,這就是你的弱點了。

而DevOps高手們是能夠提前預見到並且規劃出解決方案的,他們所做的絕不會是僅僅針對於當前的使用者資料,一個真正的DevOps高手在做產品規劃時,就已經想好了未來新使用者大量蜂擁而入時的應對方案。

5.喜愛分享

你喜歡幫助別人嗎?就我個人而言,如果有人找到我並且我幫助了他們,那麼我會非常喜歡這種感受。因為我知道其他人分享我的經驗,這會讓我很高興。如果你想成為一個DevOps高手,你也一定要有這種分享的心態。沒有人會因此搶走你的工作,也沒有人會特意“偷竊”你的想法或是勞動成果。當你真心為了團隊工作和思考的時候,你就會把個人的問題放到一邊。

好的DevOps團隊是鼓勵分享成功與失敗的,這會幫助其他人從中學到很多。成功的團隊中不會有自大的人。任何一次失敗都會被看做一個學習的機會,而每一次成功也會獲得別人的讚揚。

你必須要把你的心態完全放開,每天都和團隊成員們進行分享。這樣你們就會發現開發的程式中哪些部分是有用的,哪些是沒有必要的。

6. 能夠做到“放手”

DevOps團隊的根基是相互信任。團隊中的任何成員都要能夠信任其他人,並且能夠相信他們也能做的和你一樣好,甚至比你做得更好。

你可能會經常碰到這樣的情況來挑戰你對隊友的信任程度。那就是當你完成了一個特定的功能,這個功能是一開始從設想、計劃到編寫部署都是你一個人完成的。而當你必須去做另一個專案的時候,你需要將你的這個寶貝孩子交到另一個開發者的手上。這時候你就需要能夠做到完全的放手。你要信任繼任者不會隨便亂改你的程式碼,或者讓它完全沒有按照你之前的設想成長。即使這樣的情況發生了,你也需要理解,因為他這樣做也是使用者和業務的需要。

你必須要能夠依靠你的團隊成員。如果你覺得你不行,那麼你就要找到他們,並且進行一次尷尬的談話。當然,如果他們擁有像第三條中所說的喜歡與人交流的品質,那麼這也會是很簡單的事情。

7.你的字典裡沒有“這不是我的工作”這樣的話

“這不是我的工作”,“這件事兒不該我幹”,像這樣的話應該從DevOps的字典裡完全抹去了。當然這並不是說你必須要為每個人做每件工作。正相反,這指的是你應該能夠適度的幫助別人,或者說告訴他們應該是找到誰去幫忙?

這項技能是關於對“工作”這個詞的重新定義。我們每個人都有自己的專長,但是真正的DevOps高手是多才多藝的。程式設計師不僅要對他們的程式碼負責,在伺服器資源需求突然出現暴漲的時也需要協助系統管理員。另一方面,系統管理員也應該能夠大體讀懂程式設計師寫的程式碼,這樣在伺服器出現問題的時候也能迅速找到相應的程式設計師來幫忙。

這意味著你要重新意識到你並不是一匹戴著眼罩在大街上行走的馬了,不是隻需要認識眼前的那條路就可以。如今的時代要求你摘下眼罩,並不僅僅關注自己的主攻方向,而且需要對團隊中其他人所處的位置都非常瞭解。

8.使用配置管理工具

無論DevOps工作的變化有多快,部署總是最終的目標。這也意味著一件事情,那就是速度。沒有合適的工具,你永遠不會跟上開發迭代的速度。這和我們所說的第六條密切相關。不具備放手能力的軟體開發者一般趨向於完美主義,有些甚至到了討厭自動化的程度。他們並不信任工具,而是自己不停的一遍一遍重新發明車輪,做著在他們自己眼中認為正確的事情。

然而要想成為一個真正的DevOps高手,你必須要意識到工具對你的成功是極其關鍵的。當然,許多強大的開發團隊會建立自己的工具,他們有很好的理由。不過,我堅持推薦使用配置管理工具。開發團隊沒有理由不選擇使用配置管理工具,作為配置管理的需要。

配置管理工具可以自動化完成許多工,讓你能夠把重點放在真正重要的地方:編寫程式碼,並且部署給使用者。

9.在程式碼層面思考

這種技能更適合於系統管理員。軟體工程師們編寫程式碼,把產品做好,然後這些產品會被打包後安置在底層架構中,為使用者提供服務。如果開發者需要對產品做更改,他們不再需要親身走到資料中心,然後在伺服器上操作了。一切都可以在遠端完成,只需要在辦公桌上敲幾下程式碼就可以了。

作為運維管理的高手,他們必須要看到“底層架構作為程式碼”這個新正規化的好處。雖然對於大多數的系統管理員來說,這還是個新的概念,但是你必須要能夠意識到將底層設施作為程式碼管理確實比物理裝置好處要多,你必須要理解“一次性伺服器”的概念。

你必須要理解伺服器本身就是主機而已,能夠快速的讓使用者從服務當機情況恢復的是程式碼本身。打比方說,如果你的房子倒塌了必須要重建,但是最初的藍圖沒有了,那麼你要有從頭開始建造一棟房子的本事。

永遠不要隱藏你的才能

實話實說,對於一個DevOps高手來說不存在什麼“隱藏”的才能。如果你不將你的才能展示出來,那麼沒有人會認為你是一個高手。我這裡所說的9項才能是所有的成功DevOps團隊中的成員都會擁有的,而且在他們的每天的日常開發工作中都會充分地展示出來。如果你也具有這些隱藏才能,那麼就把它們展示出來吧!你的企業或是團隊會注意到並且欣賞這些才能的。如果你為了待在一個並不欣賞這些技能的企業中而特意隱藏你的才能,那麼我只能說,你失去的是進入那些能夠給你提供更高薪水的企業的機會。

相關文章