DevOps高手的九項(xiàng)隱藏技能
譯文【51CTO.com快譯】程序開發(fā)也是講究文化的。團(tuán)隊(duì)里的所有成員需要像一個(gè)樂隊(duì)在演唱會(huì)中所扮演的角色一樣,為了共同的目標(biāo)而努力。當(dāng)然,程序開發(fā)還是和一般的文藝工作者不同,作為一個(gè)開發(fā)團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)成員必須要有一些相同的特點(diǎn)和天賦。要不然就算你是世界上最好的軟件工程師或者是系統(tǒng)管理員,如果你沒有“開發(fā)特質(zhì)”,很快你就會(huì)發(fā)現(xiàn)自己和團(tuán)隊(duì)格格不入,最終會(huì)被團(tuán)隊(duì)一腳踢出去。
高效的開發(fā)團(tuán)隊(duì)會(huì)激發(fā)起每一個(gè)團(tuán)隊(duì)成員的活力,向著共同的目標(biāo)前進(jìn)。如果有一個(gè)團(tuán)隊(duì)成員并不能全身心的投入,那么他們很快就會(huì)感覺自己處的非常別扭,同時(shí)也會(huì)發(fā)現(xiàn)自己變成了項(xiàng)目成功的瓶頸。
接下來,我所列出的是任何一個(gè)想要在當(dāng)下從事DevOps工作的人需要具備的9種品質(zhì)。這其中有一些可能并不是人所天生的,但是通過實(shí)踐和努力,所有這些都能夠變成后天的性格,幫助DevOps成為高效開發(fā)團(tuán)隊(duì)的一部分,建立起一個(gè)成功的職業(yè)生涯。
1.你喜歡偷懶
這個(gè)品質(zhì)聽起來太違背常理了,但是確實(shí)存在這樣的道理。當(dāng)然了,懶惰本身絕對(duì)不是在辦公室里受到歡迎的品質(zhì),但是你為了偷懶而做的事情可就大有價(jià)值了。程序開發(fā)的一個(gè)核心原則就是自動(dòng)化,而這個(gè)會(huì)讓開發(fā)團(tuán)隊(duì)交付出可靠的,兼容性強(qiáng)的和帶有前瞻性的代碼。因?yàn)橹灰怯萌斯硗瓿纱a部署工作,那么總會(huì)不斷的出現(xiàn)這樣那樣的錯(cuò)誤。
如果你是一個(gè)天生的懶人,那么你肯定會(huì)討厭做重復(fù)的工作。這太沒有效率了,而且完全是浪費(fèi)時(shí)間。如果你真的這么認(rèn)為,那么恭喜你已經(jīng)有了第一個(gè)了不起的品質(zhì)。打個(gè)比方說,如果你花了一個(gè)小時(shí)寫了一段很重要的代碼,但是卻忘了把代碼提交到資源池,同時(shí)你的開發(fā)工具又突然崩潰掉了。這太掃興了。沒人想把同樣的代碼寫上兩次。這就是我的觀點(diǎn),雖然看上去有些極端,但為什么要一遍又一遍的重復(fù)做同樣的事情呢?
真正“懶惰”的技術(shù)人員絕對(duì)也會(huì)討厭把同樣的事情做上兩遍的,而這種工作態(tài)度很自然的導(dǎo)向了自動(dòng)化。為什么要像對(duì)待嬰兒那樣費(fèi)心的呵護(hù)你的服務(wù)器呢?為每一臺(tái)服務(wù)器都單獨(dú)的安裝相同的軟件,然后再給它們做完全一樣的配置,這對(duì)我來說真是折磨。把這些安裝與配置管理工作都寫成腳本自動(dòng)化完成,這樣就不用再為它們操心了。
2.你樂于改變
人們總是生來就要過一成不變的生活。我們?cè)缟掀鸫玻滋旃ぷ?,晚上睡覺。這就是我們的生物鐘讓我們做的事情。我們大多會(huì)欣賞規(guī)律的生活,這是出自于本能的。然而,在循規(guī)蹈矩的生活中,思考變得困難而且費(fèi)力,這是因?yàn)槲覀儗⑺伎挤诺搅藵撘庾R(shí)中,而將我們的日常行為認(rèn)為是自然而然的事情。這是可以理解的,但是要想成為一個(gè)開發(fā)大師,就必須要把這些本能拋到一邊,反過來對(duì)著干。
這個(gè)世界上唯一不會(huì)變化的常量就是變化本身,這在開發(fā)工作的環(huán)境中更是顛覆不破的真理。在開發(fā)的過程中,我們查找問題,解決問題,把補(bǔ)丁加到自動(dòng)化的測(cè)試中,然后迭代,就這樣循環(huán)往復(fù)。然而,要想成為一個(gè)成功的DevOps高手,你就需要把這一套常規(guī)的思路完全拋開。要時(shí)刻意識(shí)到開發(fā)工作是一個(gè)不穩(wěn)定的工作環(huán)境,變化隨時(shí)都會(huì)發(fā)生。我們不可能一年做一次計(jì)劃,而只能一小步一小步往前走,不斷獲得反饋,然后盡快迭代。不會(huì)有一天是循規(guī)蹈矩的、重復(fù)的、可以預(yù)測(cè)的——這就是一個(gè)DevOps大師的一生。
3.喜歡與人交往
在現(xiàn)在這個(gè)時(shí)代,作為一個(gè)DevOps,你已經(jīng)不能再把午餐打包帶進(jìn)辦公室,關(guān)上門,然后僅僅在放松的時(shí)候出門溜達(dá)幾步了。你必須要喜歡與人交往,和團(tuán)隊(duì)的其他人一起工作。你要把開發(fā)當(dāng)做是一項(xiàng)團(tuán)隊(duì)運(yùn)動(dòng)而且并不是像高爾夫那樣的單人運(yùn)動(dòng),而是籃球或者足球這樣的集體運(yùn)動(dòng)。團(tuán)隊(duì)中的每個(gè)人都要為獲取勝利做出努力,隊(duì)友們必須要相互協(xié)作。
很久很久以前,IT工作被認(rèn)為是一個(gè)業(yè)務(wù)支持部門。IT部門常常被安排在地下室,工作內(nèi)容也僅僅是保證企業(yè)的電腦能夠正常運(yùn)做而已。因此,在那個(gè)時(shí)候,行業(yè)選擇的是那個(gè)時(shí)代的人,那些喜歡在黑暗的環(huán)境里埋頭敲代碼或者管理系統(tǒng)的“怪人”。他們幾乎不會(huì)跟別人說話,生怕自己的思路會(huì)被別人帶亂。但是當(dāng)今不同了,如果你還是習(xí)慣于處在這種完全沉默的環(huán)境中的話,那么你就無法在現(xiàn)今的開發(fā)環(huán)境中生存了。
沒有人會(huì)逼你喜歡別人,但是我們必須有能力讓別人高興,和他們溝通。如果你不這樣做,很快你就會(huì)像行尸走肉一樣。換句話說,如果你對(duì)解決方案沒有貢獻(xiàn),那么你就會(huì)對(duì)解決方案帶來麻煩。
4.從大場(chǎng)面著想
如果你在程序開發(fā)時(shí)沒有足夠的遠(yuǎn)見,那么技術(shù)上累積下來的麻煩就會(huì)很快找上門來。“我們之后會(huì)解決這個(gè)問題”,“這個(gè)版本不會(huì)再出現(xiàn)問題了”,還有“我專門幫你調(diào)整”這些就會(huì)成為你常說的話。如果你在敲代碼或者做系統(tǒng)配置時(shí)并不能預(yù)見到你的程序在每秒接受成千上萬次請(qǐng)求的情況下會(huì)出現(xiàn)什么狀況,那么在如今的DevOps世界中,這就是你的弱點(diǎn)了。
而DevOps高手們是能夠提前預(yù)見到并且規(guī)劃出解決方案的,他們所做的絕不會(huì)是僅僅針對(duì)于當(dāng)前的用戶數(shù)據(jù),一個(gè)真正的DevOps高手在做產(chǎn)品規(guī)劃時(shí),就已經(jīng)想好了未來新用戶大量蜂擁而入時(shí)的應(yīng)對(duì)方案。
5.喜愛分享
你喜歡幫助別人嗎?就我個(gè)人而言,如果有人找到我并且我?guī)椭怂麄儯敲次視?huì)非常喜歡這種感受。因?yàn)槲抑榔渌朔窒砦业慕?jīng)驗(yàn),這會(huì)讓我很高興。如果你想成為一個(gè)DevOps高手,你也一定要有這種分享的心態(tài)。沒有人會(huì)因此搶走你的工作,也沒有人會(huì)特意“偷竊”你的想法或是勞動(dòng)成果。當(dāng)你真心為了團(tuán)隊(duì)工作和思考的時(shí)候,你就會(huì)把個(gè)人的問題放到一邊。
好的DevOps團(tuán)隊(duì)是鼓勵(lì)分享成功與失敗的,這會(huì)幫助其他人從中學(xué)到很多。成功的團(tuán)隊(duì)中不會(huì)有自大的人。任何一次失敗都會(huì)被看做一個(gè)學(xué)習(xí)的機(jī)會(huì),而每一次成功也會(huì)獲得別人的贊揚(yáng)。
你必須要把你的心態(tài)完全放開,每天都和團(tuán)隊(duì)成員們進(jìn)行分享。這樣你們就會(huì)發(fā)現(xiàn)開發(fā)的程序中哪些部分是有用的,哪些是沒有必要的。
6. 能夠做到“放手”
DevOps團(tuán)隊(duì)的根基是相互信任。團(tuán)隊(duì)中的任何成員都要能夠信任其他人,并且能夠相信他們也能做的和你一樣好,甚至比你做得更好。
你可能會(huì)經(jīng)常碰到這樣的情況來挑戰(zhàn)你對(duì)隊(duì)友的信任程度。那就是當(dāng)你完成了一個(gè)特定的功能,這個(gè)功能是一開始從設(shè)想、計(jì)劃到編寫部署都是你一個(gè)人完成的。而當(dāng)你必須去做另一個(gè)項(xiàng)目的時(shí)候,你需要將你的這個(gè)寶貝孩子交到另一個(gè)開發(fā)者的手上。這時(shí)候你就需要能夠做到完全的放手。你要信任繼任者不會(huì)隨便亂改你的代碼,或者讓它完全沒有按照你之前的設(shè)想成長(zhǎng)。即使這樣的情況發(fā)生了,你也需要理解,因?yàn)樗@樣做也是用戶和業(yè)務(wù)的需要。
你必須要能夠依靠你的團(tuán)隊(duì)成員。如果你覺得你不行,那么你就要找到他們,并且進(jìn)行一次尷尬的談話。當(dāng)然,如果他們擁有像第三條中所說的喜歡與人交流的品質(zhì),那么這也會(huì)是很簡(jiǎn)單的事情。
7.你的字典里沒有“這不是我的工作”這樣的話
“這不是我的工作”,“這件事兒不該我干”,像這樣的話應(yīng)該從DevOps的字典里完全抹去了。當(dāng)然這并不是說你必須要為每個(gè)人做每件工作。正相反,這指的是你應(yīng)該能夠適度的幫助別人,或者說告訴他們應(yīng)該是找到誰去幫忙?
這項(xiàng)技能是關(guān)于對(duì)“工作”這個(gè)詞的重新定義。我們每個(gè)人都有自己的專長(zhǎng),但是真正的DevOps高手是多才多藝的。程序員不僅要對(duì)他們的代碼負(fù)責(zé),在服務(wù)器資源需求突然出現(xiàn)暴漲的時(shí)也需要協(xié)助系統(tǒng)管理員。另一方面,系統(tǒng)管理員也應(yīng)該能夠大體讀懂程序員寫的代碼,這樣在服務(wù)器出現(xiàn)問題的時(shí)候也能迅速找到相應(yīng)的程序員來幫忙。
這意味著你要重新意識(shí)到你并不是一匹戴著眼罩在大街上行走的馬了,不是只需要認(rèn)識(shí)眼前的那條路就可以。如今的時(shí)代要求你摘下眼罩,并不僅僅關(guān)注自己的主攻方向,而且需要對(duì)團(tuán)隊(duì)中其他人所處的位置都非常了解。
8.使用配置管理工具
無論DevOps工作的變化有多快,部署總是最終的目標(biāo)。這也意味著一件事情,那就是速度。沒有合適的工具,你永遠(yuǎn)不會(huì)跟上開發(fā)迭代的速度。這和我們所說的第六條密切相關(guān)。不具備放手能力的軟件開發(fā)者一般趨向于完美主義,有些甚至到了討厭自動(dòng)化的程度。他們并不信任工具,而是自己不停的一遍一遍重新發(fā)明車輪,做著在他們自己眼中認(rèn)為正確的事情。
然而要想成為一個(gè)真正的DevOps高手,你必須要意識(shí)到工具對(duì)你的成功是極其關(guān)鍵的。當(dāng)然,許多強(qiáng)大的開發(fā)團(tuán)隊(duì)會(huì)建立自己的工具,他們有很好的理由。不過,我堅(jiān)持推薦使用配置管理工具。開發(fā)團(tuán)隊(duì)沒有理由不選擇使用配置管理工具,作為配置管理的需要。
配置管理工具可以自動(dòng)化完成許多任務(wù),讓你能夠把重點(diǎn)放在真正重要的地方:編寫代碼,并且部署給用戶。
9.在代碼層面思考
這種技能更適合于系統(tǒng)管理員。軟件工程師們編寫代碼,把產(chǎn)品做好,然后這些產(chǎn)品會(huì)被打包后安置在底層架構(gòu)中,為用戶提供服務(wù)。如果開發(fā)者需要對(duì)產(chǎn)品做更改,他們不再需要親身走到數(shù)據(jù)中心,然后在服務(wù)器上操作了。一切都可以在遠(yuǎn)程完成,只需要在辦公桌上敲幾下代碼就可以了。
作為運(yùn)維管理的高手,他們必須要看到“底層架構(gòu)作為代碼”這個(gè)新范式的好處。雖然對(duì)于大多數(shù)的系統(tǒng)管理員來說,這還是個(gè)新的概念,但是你必須要能夠意識(shí)到將底層設(shè)施作為代碼管理確實(shí)比物理設(shè)備好處要多,你必須要理解“一次性服務(wù)器”的概念。
你必須要理解服務(wù)器本身就是主機(jī)而已,能夠快速的讓用戶從服務(wù)宕機(jī)情況恢復(fù)的是代碼本身。打比方說,如果你的房子倒塌了必須要重建,但是最初的藍(lán)圖沒有了,那么你要有從頭開始建造一棟房子的本事。
永遠(yuǎn)不要隱藏你的才能
實(shí)話實(shí)說,對(duì)于一個(gè)DevOps高手來說不存在什么“隱藏”的才能。如果你不將你的才能展示出來,那么沒有人會(huì)認(rèn)為你是一個(gè)高手。我這里所說的9項(xiàng)才能是所有的成功DevOps團(tuán)隊(duì)中的成員都會(huì)擁有的,而且在他們的每天的日常開發(fā)工作中都會(huì)充分地展示出來。如果你也具有這些隱藏才能,那么就把它們展示出來吧!你的企業(yè)或是團(tuán)隊(duì)會(huì)注意到并且欣賞這些才能的。如果你為了待在一個(gè)并不欣賞這些技能的企業(yè)中而特意隱藏你的才能,那么我只能說,你失去的是進(jìn)入那些能夠給你提供更高薪水的企業(yè)的機(jī)會(huì)。
原文標(biāo)題:9 hidden talents of devops ninjas,作者: Adam Bertram
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】