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