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