為什么你做了幾年運維,還是徘徊在基礎崗?
1~3年經驗的IT人該如何選擇
話說,如果真是都做了3年了,還不知道如何選擇的話,這事就挺扯淡了,不過也很正常,有些人做了十年工作,還是渾渾噩噩,因此今天來主要聊一聊,1~3年的IT人,到底該如何選擇
首先說運維,很多朋友,從來沒接觸過運維,甚至從來沒接觸過計算機行業,就只是因為運維門檻低,隨便上個培訓班就可能找個工作,但是隨著云平臺與大數據越來越普及,以前那種LAMP/LNMP的手工運維,這種職位未來會越來越少
一個合格的運維,最少應該具備哪些技能呢? 下面來一一說明一下
Linux基礎,這沒啥可說的了,就跟你搞IT最少要會Windows一樣,去IOE以后,像以前那些AIX、HP-UX、SUN Solaris這種類Unix的系統,其實你能接觸的已經不多了(去銀行駐場那種還有一些可能接觸到),因此,以運維來說,Linux基礎已經算是個入門必備技能了,這里面主要包括Linux基礎命令,Linux系統的基本配置,vi的一些高級用法等等
各種巡檢的命令,巡檢是一個很基本又很重要的環節,你腳本寫的好壞,語法只是一方面,更多的在于對巡檢命令的了解與理解,比如硬盤I/O如何查詢,內存問題如何查詢,后臺進程如何查詢,等等,這些基本命令都清晰了,思路就清晰了,思路清晰了,做事也就會快很多,方便很多
說完巡檢,就得說說重要的腳本那些了,以前都在講什么shell命令,包括什么sed啊,awk啊,高級grep啊,正則表達式啊,那些所謂的復雜shell命令,甚至那個年代,shell腳本好壞決定你運維水平高低,隨著時代的進步,單純的shell腳本已經不能滿足了,包括Perl、Python等語言的火熱,隨著所謂的devops,更多的運維,逐漸隨著所謂自動化的轉變,變成了腳本開發運維,因此,熟練掌握腳本,是一個必備技能
熟練掌握了上面那些命令和腳本,就可以對一些基礎服務進行維護了,比較常見的,像之前的LAMP/LNMP,FTP,DNS,NTP等等,有些還涉及Email,DHCP,NFS,甚至Samba那些,但是這些都是比較基礎的服務了,包括Java常用的Tomcat容器,比較主流的redis緩存等等
監控,監控是一個很重要的事情,可以算是運維工作中數一數二重要的事情了,從最早相當lowB的MRTG,到Nagios+Cacti,再到zabbix,以及現在很多大公司都開始自己設計監控平臺,自動化批量管理配置工具,比如puppet,ansible,saltstack等等,現在也都在搞這些,所以,這些都是很重要的平臺化工具
網絡和安全這塊,基本的TCP/IP協議啊,iptables怎么配啊,ssh證書怎么設置啊,用戶權限系統權限啊,等等等等,還要會抓包,會nmap,總之,要想防范,先得知道如何入侵
一個合格的運維工程師,還要對基本的硬件有一定了解,啥叫被綁帶寬,各種接口類型,塔式、機架式、刀片式服務器;磁盤類型,SAS,SATA,SSD,RAID類型,0 1 5 10等等,這些都是一個運維需要掌握的基礎知識
說完這些,再來說說DBA,DBA就更扯淡了,正經公司絕對不會讓一個小白來做DBA的,如果哪個學員參加個培訓以后就能成為一名DBA了,我只能感慨你的運氣真好,你們公司的領導也心真大
那么做一名DBA需要掌握哪些基本技能呢?
熟悉Linux操作系統、類Unix操作系統、熟悉基本存儲、備份帶庫以及第三方備份軟件(NBU or TSM等),當然,你要說這些都不會能不能做DBA,能,很難
作為一個DBA,就跟運維必須精通腳本一樣,DBA必須熟悉各種SQL命令,以及各類數據庫自身的命令,這個沒啥可解釋的,不會這些,你連用都不會用,又何論能做一個DBA
掌握了上述這些基本的SQL及命令,就可以開始正式了解數據庫了,那么,應該對數據庫的體系結構,有一個深刻的,熟悉的認知和系統的學習,這塊,學習的越深,對你日后做DBA時候的,去維護數據庫出現的問題就越得心應手
備份恢復是一個DBA必須要做的事情,而且要做好,如何去考慮備份策略,編寫備份腳本,恢復演練,故障切替等等
發現一個很奇怪的現象,就是甭管什么級別的DBA,甚至就特么不是真正做DBA的,總喜歡用優化這個詞來標榜自己多牛逼,多厲害,可是,優化的真正意義在于啥? 如何做優化? 參數優化?索引優化?SQL優化?這些都離不開基本功以及對業務的了解,做技術的人,總是不喜歡花時間去了解業務,那你做技術的意義在哪里呢?
集群還是復制(主從),災備還是遷移,這些技術,都建立在你真正對整體數據庫的體系結構以及基本原理非常熟悉以后,再去考慮,不是你會裝個RAC,弄個MHA就算你會集群,會主從,會牛逼的架構了,狗屁啊,出了問題,你連日志都不會查
試想,有幾個人,做著DBA也好,運維也罷,真正懂你維護的到底是什么服務器,用來做什么的,里面的庫里到底有多少張表,每個表都是做啥用的,每天的業務主要用到了哪些表,這些表有沒有很好的做索引,索引是否合理,大表有沒有做分區,表的設計是否符合規范,表之間的關聯關系是否能夠更簡便,
做技術要有一顆謙卑的心,空杯心態,不要覺得自己很牛逼,很多東西,在選擇之前,先想想,自己真的喜歡么? 能為此付出多少努力? 堅持多長時間? 只是看重這個職位帶來的薪資,還是真的想做這份工作?如果遇到了挫折,自己該如何去面對和解決?我現在掌握哪些技能?有哪些核心競爭力?清楚這些以后,再面臨選擇的時候,我們才不會迷茫
對于職場上的新人來說,衷心的希望大家多了解業務和行業,多看行業新聞,想想新聞背后的價值和影響;多了解產品和用戶,如果你的產品你自己都不熟悉,怎么能讓用戶滿意? 你對你公司的產品都不清楚,做什么的都不知道,那么第一波被裁員的一定是你!
在職場的前三年,甚至前五年,沒有必要刻意的攢錢,而更應該去投資自己,去做一些增加見識,開闊眼界的事情,不要為了攢那點微不足道的錢,整體緊張兮兮的,把身體搞垮,把精神搞垮(話說我身邊真的有這樣的人,很可悲)
請用比花在技術學習上更多的時間和精力去熟悉業務,了解行業,不要傻干,多了解一些本職工作之外的事情,學會跟各部門溝通,學會跟業務部門打交道,真正多聆聽他們的聲音,了解他們的真是需求,這樣才能更好的去做好技術支持工作