時(shí)下,有越來越多的公司開始招聘DevOps人員了。在筆者撰寫本文時(shí)候從LinkedIn上搜索DevOps職位,結(jié)果有49,000多绩聘。大量的工作虛位以待。
根據(jù)devopsdotcom做的"2017年DevOps使用情況和趨勢(shì)"的報(bào)告耗啦,DevOps的使用在過去幾年一直持續(xù)增長凿菩,尤其是2016年以來。唯一的問題是小團(tuán)隊(duì)發(fā)現(xiàn)開始啟用devops頗有難度帜讲。
本文中蟲蟲帶領(lǐng)大家一起對(duì)DevOps的工作探個(gè)究竟衅谷。
?
Code編程技能
你不需要要有開發(fā)的背景,盡管會(huì)開發(fā)會(huì)增加成功的砝碼似将,畢竟這個(gè)社會(huì)是"No BB获黔,show me the code"的時(shí)代,不會(huì)代碼連評(píng)論的權(quán)利都沒有在验。對(duì)一個(gè)沒有開發(fā)背景的人來說玷氏,你必須先得適應(yīng)閱讀代碼,要讓看代碼變成一種享受腋舌,理解每一個(gè)精靈似的代碼符號(hào)并且有足夠的自信去改變它盏触,而且最重要的是要學(xué)會(huì)造輪子。
雖然很多時(shí)候不需要你造一個(gè)輪子來完成任務(wù)块饺,但是你必須得會(huì)寫腳本實(shí)現(xiàn)自動(dòng)化部署和運(yùn)行其他特定的任務(wù)赞辩。
所以,你沒有必要去了解設(shè)計(jì)模式授艰,OO辨嗽,函數(shù)式編程或很多種編程語言。但是你要學(xué)會(huì)開發(fā)的邏輯淮腾,你要以開發(fā)人員的思維方式召庞,解決問題岛心。重復(fù)的使用代碼而不是重復(fù)吭哧吭哧地猛干来破,如果能養(yǎng)成長期用代碼偷懶的工作范篮灼,那,ok徘禁,你有做Devops的潛質(zhì)(兄弟你是個(gè)人才哪)诅诱。
Coding技能很重要,你可以通過學(xué)習(xí)一種編程語言來挖潛你的coding潛力送朱。筆者建議(但不限于)你學(xué)習(xí)Go娘荡,Python,Ruby驶沼,Perl炮沐,Bash,php或微軟的PowerShell回怜。推薦他們的原因很多大年。但基本上這些都是常用的語言。例如玉雾,如果你想使用Puppet翔试、Chef、gitlab你的會(huì)點(diǎn)Ruby呀复旬。你要實(shí)現(xiàn)自動(dòng)執(zhí)行垦缅,要用好Ansiable和Saltstack你得會(huì)Python;要用webmine和Rex你要懂perl驹碍;用docker容器你還不得懂點(diǎn)golang壁涎。同樣的道理,擁有開發(fā)背景會(huì)使你更容易適應(yīng)DevOps的團(tuán)隊(duì)志秃。
特定于域的語言(DSL)也非常重要怔球,具體取決于你要用的工具。有些使用JSON洽损。其他人則可能使用YAML庞溜。這些都是表現(xiàn)格式,用來支配工具如何交互的碑定。比如流码,你要使用AWS的 CloudFormation或Terraform等工具定義你的基礎(chǔ)架構(gòu)時(shí),就要用YAML格式來定義延刘。就像是在編程漫试,大多數(shù)是以數(shù)據(jù)結(jié)構(gòu)或程式的方式。
VCS版本控制
開發(fā)人員可能會(huì)比較熟悉版本控制(實(shí)際上很多人也用的很垃圾)碘赖。如果你是運(yùn)維背景驾荣,對(duì)版本控制可能知之甚少外构。至少,在沒有看《基礎(chǔ)設(shè)施即代碼》之前播掷,應(yīng)該了解的不多
時(shí)下最先進(jìn)最流行的版本控制系統(tǒng)是Git审编,如果你要做Devops最好知道它是什么東東以及熟練的使用這個(gè)東東:創(chuàng)建分支,push歧匈,pull(或merge)請(qǐng)求垒酬,當(dāng)然最重要的是要學(xué)會(huì)解決沖突。你必須堅(jiān)秉"如果它不在版本控制中件炉,我就不相信它"的思想勘究。
練習(xí)版本控制的一個(gè)好方法是使用GitHub。搜索一下有很多教程和課程也可以回復(fù)文章斟冕,筆者給你推薦你哥git群口糕。人家作家都用github寫書了,你還好意思說我不知道github么磕蛇?
IaaS基礎(chǔ)架構(gòu)
你需要了解基礎(chǔ)架構(gòu)景描。當(dāng)然這里筆者并不是要你去,了解如何配置Cisco路由器(盡管這很有價(jià)值)孤里。了解網(wǎng)絡(luò)伏伯,安全,存儲(chǔ)和管理服務(wù)器非常重要捌袜。你還要熟悉一些關(guān)鍵詞说搅,一些重要概念,比如高可用性虏等,冗余弄唧,自我修復(fù)和彈性體系結(jié)構(gòu)。不光是背概念霍衫,你要能知道在實(shí)際中運(yùn)用候引。
如果在初創(chuàng)企業(yè)工作,你肯定要用共有云敦跌。所以澄干,必須要了解云腳骨。目前最流行的是AWS柠傍,Azure麸俘,Gooogle和國內(nèi)的阿里云、騰訊云惧笛,美團(tuán)云等等从媚。選擇一個(gè)用用,獲得必須的經(jīng)驗(yàn)患整。如果你閑的蛋疼的話拜效,也可以去考個(gè)如云認(rèn)證喷众。云認(rèn)證有助于獲得工作和增長工資的機(jī)會(huì)。筆者這里強(qiáng)烈推薦一下AWS紧憾,有支持國外支付的信用卡到千,可以以1刀的價(jià)格搞一臺(tái)EC2玩玩,對(duì)你熟悉真正的云大有裨益稻励。
你可能正在使用本地父阻,公有云,兩者兼有的服務(wù)器望抽。有些公司可能有計(jì)劃將所有內(nèi)容遷移到云,遷移到容器履婉。因此煤篙,了解云很重要,每天都有企業(yè)加入到云懷抱毁腿。有一點(diǎn)是肯定的:即使現(xiàn)在你工作中用不到用辑奈,并不意外這你就不能用DevOps原則,尤其是當(dāng)你有了私下的這方面實(shí)踐經(jīng)驗(yàn)的話(移到的云VPS)已烤。
要在DevOps中工作鸠窗,你還要了解持續(xù)集成(CI),持續(xù)交付(CD)胯究,作為代碼的基礎(chǔ)架構(gòu)稍计,配置管理(CM),日志管理和不可變架構(gòu)裕循。當(dāng)我們討論不可變的基礎(chǔ)設(shè)施時(shí)唧席,我們不可避免的要說到容器门躯。容器在時(shí)下的基礎(chǔ)架構(gòu)、基礎(chǔ)設(shè)施中扮演著重要的角色,尤其是Docker症见。即使你離開使用容器的公司,你也可能會(huì)發(fā)現(xiàn)自己還是想要使用容器(就是想么)溺欧。如果沒有啟用容器的計(jì)劃股毫,容器原理,比如如何打包困介,單一責(zé)任原理和不可變基礎(chǔ)設(shè)施也可以用用大审。
Tool合宜的工具
業(yè)內(nèi)人士會(huì)宣稱工具無關(guān)論,或者告訴你不必專注于工具逻翁。但實(shí)際上饥努,熟悉一些工具是必要的。選擇一套好的工具八回,然后開始做一些事酷愧,做任何事情驾诈,然后你就知道那些是要用的,那些不是溶浴。盡管DevOps不僅僅是工具乍迄,但是工具很重要,重要士败,真的很重要闯两,重要的話不說一兩遍。
很多職位的JD中會(huì)要求你了解Jenkins谅将,Chef漾狼,Puppet,itop饥臂,rex逊躁,Ansible,openstack隅熙,ELK稽煤,AWS CloudFormation,Docker和Terraform等工具囚戚。這些是通常都會(huì)用得到的酵熙。你需要知道每個(gè)工具解決什么問題。有些人可以獨(dú)當(dāng)一面驰坊,有些必須要合眾抗衡匾二。其當(dāng)你開始使用這些工具時(shí),你會(huì)發(fā)現(xiàn)會(huì)寫代碼有多重要庐橙。
Soft skill軟技能
DevOps畢竟是關(guān)于人的假勿。作為DevOps工程師,你需要花費(fèi)大量時(shí)間與開發(fā)人員以及其他團(tuán)隊(duì)合作态鳖。
你需要了解應(yīng)用DevOps的一些重要原則转培。比如知道如何推銷新點(diǎn)子,新思想浆竭,并為之提供靠譜的理論證據(jù)浸须。剛開始的時(shí)候,指導(dǎo)團(tuán)隊(duì)很重要邦泄,特別是公司剛開始使用DevOps删窒。人們總是會(huì)安于現(xiàn)狀,排斥改變顺囊。但是如果你給出了合理的和有建設(shè)性的方案肌索,他們也沒有理由反對(duì)。因此特碳,需要有良好的溝通技巧诚亚,堅(jiān)定信心并且設(shè)身處地的考慮問題晕换。
開發(fā)人員還需要了解事情的工作原理以及為什么某些事情要比其他的重要。比如構(gòu)建一次站宗,特征標(biāo)記和持續(xù)集成等這些事情闸准。他們幫助你使得部署更加可靠、更可預(yù)測(cè)性梢灭。最終目標(biāo)應(yīng)該是以高質(zhì)量和確定性的方式快速夷家、頻繁地迭代(XP)。
Challenge 接受挑戰(zhàn)
在本文中敏释,筆者沒有深入探討挖掘話題库快。上面做為一個(gè)DevOps工程師必須要知道的DevOps一些事項(xiàng)。你現(xiàn)在知道(goten)他們了颂暇?好缺谴。繼續(xù)去學(xué)習(xí)這些技能把。
如果你沒有這個(gè)清單上的技能耳鸯,那就花些時(shí)間去學(xué)習(xí)和練習(xí)。你可能會(huì)被所有你還不知道的東西搞蒙逼了膀曾,不過放送县爬,不要緊張。挑一個(gè)開始入手添谊。工具需要擼來擼去才能精通财喳,但是越學(xué)越用越活。
接受挑戰(zhàn)你作為DevOps工程師的的唯一使命斩狱,隨著時(shí)間推移耳高,挑戰(zhàn)會(huì)越來越多,越來越難所踊,你也會(huì)跟著成長泌枪,跟著強(qiáng)大。