初識運(yùn)維:運(yùn)維是什么,要怎么做,需要掌握哪些技術(shù)?
運(yùn)維是什么:通常屬于技術(shù)部門,與研發(fā)、測試、系統(tǒng)管理同為互聯(lián)網(wǎng)產(chǎn)品技術(shù)支撐的4大部門,這個劃分在國內(nèi)和國外以及大小公司間都會多少有一些不同。
運(yùn)維的內(nèi)容:對于初創(chuàng)公司,運(yùn)維工程師的工作可能需要從申請域名開始,購買/租用服務(wù)器,上架,調(diào)整網(wǎng)絡(luò)設(shè)備的設(shè)置,部署操作系統(tǒng)和運(yùn)行環(huán)境,部署代碼,設(shè)計(jì)和部署監(jiān)控,防止漏洞和攻擊等等。對于大型的公司,對于運(yùn)維工作的要求越來越高,也催生了更細(xì)化的運(yùn)維分工:大致可以分為網(wǎng)站運(yùn)維,系統(tǒng)運(yùn)維,網(wǎng)絡(luò)運(yùn)維,數(shù)據(jù)庫運(yùn)維,IT運(yùn)維,運(yùn)維開發(fā),運(yùn)維安全等方向。(也就是說運(yùn)維工程師需要負(fù)責(zé)部署服務(wù)器、預(yù)防攻擊、維護(hù)數(shù)據(jù)庫等等,可以說是和網(wǎng)絡(luò)與服務(wù)器打交道的技術(shù)工作者)
運(yùn)維要怎么做:運(yùn)維的職責(zé)覆蓋了產(chǎn)品從設(shè)計(jì)到發(fā)布、運(yùn)行維護(hù)、變更升級及至下線的生命周期,各個階段的職責(zé)包括:
1、Linux系統(tǒng)基礎(chǔ)
這個不用說了,是基礎(chǔ)中的基礎(chǔ),連這個都不會就別干了,參考書籍,可以看鳥哥linux基礎(chǔ)篇,至少要掌握這書60%內(nèi)容,沒必須全部掌握,但基本命令總得會吧。
2、網(wǎng)絡(luò)服務(wù)
服務(wù)有很多種,每間公司都會用到不同的,但基礎(chǔ)的服務(wù)肯定要掌握,如FTP, DNS,SAMBA, 郵件, 這幾個大概學(xué)一下就行,LAMP和LNMP是必須要熟練,我所指的不是光光會搭建,而是要很熟悉里面的相當(dāng)配置才行,因?yàn)楣咀铌P(guān)鍵的絕對是WEB服務(wù)器,所以nginx和apache要熟悉,特別是nginx一定要很熟悉才行,至少有些公司還會用tomcat,這個也最好學(xué)一下。其實(shí)網(wǎng)絡(luò)服務(wù)方面不用太擔(dān)心,一般公司的環(huán)境都已經(jīng)搭建好,就算有新服務(wù)器或讓你整改,公司會有相應(yīng)的文檔讓你參照來弄,不會讓你亂來的,但至少相關(guān)的配置一定要學(xué)熟,而且肯定是編譯安裝多,那些模塊要熟悉一下他的作用,特別是PHP那些模塊。
這上面2點(diǎn)只是基礎(chǔ),也是必要條件,不能說是工具,以下才是真正的要掌握的工具。
3、shell腳本和另一個腳本語言
shell是運(yùn)維人員必須具備的,不懂這個連入職都不行,至少也要寫出一些系統(tǒng)管理腳本,最簡單也得寫個監(jiān)控CPU,內(nèi)存比率的腳本吧,這是最最最基本了,別以為會寫那些猜數(shù)字和計(jì)算什么數(shù)的,這些沒什么作用,只作學(xué)習(xí)意義,寫系統(tǒng)腳本才是最有意義,而另一個腳本語言是可選的,一般是3P,即python, perl和php,php就不需要考慮了,除非你要做開發(fā),我個人建議學(xué)python會比較好,難實(shí)現(xiàn)自動化運(yùn)維,perl是文本處理很強(qiáng)大,反正這兩個學(xué)一個就行了。
4、sed和awk工具
必須要掌握,在掌握這兩個工具同時,還要掌握正則表達(dá)式,這個就痛苦了,正則是最難學(xué)的表達(dá)式,但結(jié)合到sed和awk中會很強(qiáng)大,在處理文本內(nèi)容和過濾WEB內(nèi)容時十分有用,不過在學(xué)shell的同時一般會經(jīng)常結(jié)合用到的,所以學(xué)第3點(diǎn)就會順便學(xué)第4點(diǎn)。
5、文本處理命令
sort, tr, cut, paste, uniq, tee等,必學(xué),也是結(jié)合第3點(diǎn)時一并學(xué)習(xí)的。
6、數(shù)據(jù)庫
首選mysql,別問我為什么不學(xué)sqlserver和oracle,因?yàn)長inux用得最多絕對是mysql,增刪改查必學(xué),特別要學(xué)熟查,其它方面可能不太需要,因?yàn)檫\(yùn)維人員使用最多還是查,哪些優(yōu)化和開發(fā)語句不會讓你弄的。
7、防火墻
不學(xué)不行,防火墻也算是個難點(diǎn),說難不難,說易不易,最重要弄懂規(guī)則,如果學(xué)過CCNA的朋友可能會比較好學(xué),因?yàn)閕ptables也有NAT表,原理是一樣的,而FILTER表用得最多,反正不學(xué)就肯定不合格。
8、監(jiān)控工具
十分十分重要,我個人建議,最好學(xué)這3個,cacti,nagios,zabbix,企業(yè)用得最多應(yīng)該是 nagios 和 zabbix,反正都學(xué)吧,但nagios會有點(diǎn)難,因?yàn)闀婕暗接媚_本寫自動監(jiān)控,那個地方很難。
9、集群和熱備
這個很重要,肯定要懂的,但到了公司就不會讓你去弄,因?yàn)樾率只静蛔屇闩?,集群工具有很多,最好學(xué)是LVS,這是必學(xué),最好也學(xué)學(xué)nginx集群,反向代理,還有熱備,這個就更多工具能實(shí)現(xiàn)了,像我公司是自己開發(fā)熱備工具的,mysql熱備也要學(xué),就是主從復(fù)制,這個別告訴我容易,其實(shí)不容易的,要學(xué)懂整個流程一點(diǎn)也不容易,只照著做根本沒意思。
10、數(shù)據(jù)備份
不學(xué)不行,工具有很多,但至少要把RAID的原理弄懂,特別是企業(yè)最常用的1+0或0+1,自己做實(shí)驗(yàn)也要弄出來,備份工具有很多,如tar, dump, rsync等,最好多了解一下。