一、保障業(yè)務(wù)長期穩(wěn)定運行
出一點點差錯,用戶就要投訴了。
1、業(yè)務(wù)跑在什么上面?
網(wǎng)站服務(wù)器一般是apache,nginx,tomcat等。但是真正跑通流程還需要Mysql數(shù)據(jù)庫來存儲用戶密碼及其它。很多程序都要php的解析,所以LNMP、LAMP(即nginx、apache、mysql、php)環(huán)境部署是必須掌握的技能。
2、在家里收到報警,但服務(wù)器是內(nèi)網(wǎng)IP,怎么也得解決問題吧?
在公司搭建openvpn或pptp或openswan,在家里通過VPN撥入內(nèi)網(wǎng),24小時解決問題…唉,半夜爬起來解決問題也沒工資。
3、業(yè)務(wù)出了問題怎么及時知道?
這就需要監(jiān)控軟件來郵件或短信來通知你,常用的有zabbix,nagios等。報警發(fā)郵件,也得一個郵件程序呀,sendmail或postfix。
二、自動化
終極目標(biāo):跑死機(jī)器,閑死人。
1、公司新買100臺服務(wù)器,公司竟然就1個移動光驅(qū),這裝系統(tǒng)得到什么時候?
使用kickstart或cobbler來網(wǎng)絡(luò)遠(yuǎn)程自動安裝系統(tǒng)吧。
2、系統(tǒng)裝完后登陸要輸入密碼,這么多臺。
使用expect吧,自動讀取提示來輸入密碼,并執(zhí)行命令。
3、要批量把新代碼發(fā)布到線上服務(wù)器,怎么辦?
使用saltstack或puppet或ansible吧!
4、每次裝完機(jī)要優(yōu)化很多內(nèi)容,什么文件描述符、端口、軟件安裝啊,手動操作不累死去?
趕緊學(xué)會shell,將解放非常多的工作量。
三、大性能
1、越來越多的用戶來訪問我們的網(wǎng)站,一臺web服務(wù)器抗不住了怎么辦?
那就需要多臺web服務(wù)器來負(fù)擔(dān),但多臺服務(wù)器之間怎么進(jìn)行負(fù)載均衡呢,這就需要用到nginx反向代理或LVS+keepalived或haproxy+heartbeat了。
2、N多用戶上傳下載文件,磁盤抗不住了怎么辦?
把多塊磁盤做成raid,或者使用分布式存儲文件系統(tǒng)如MFS,GlusterFS來提高磁盤的讀寫能力。
3、運營商是個大難題,他們之間的帶寬好像很小,聯(lián)通IP訪問我電信網(wǎng)站怎么就這么慢呢?
這時可以使用bind自建一個DNS服務(wù)器,把網(wǎng)站的DNS記錄指向自建DNS服務(wù)器上,配置好解析規(guī)則,以后聯(lián)通IP解析到聯(lián)通網(wǎng)站上, 電信IP解析到電信網(wǎng)站上,體驗就會好很多啦。
4、網(wǎng)站上好多圖片,總有用戶反應(yīng)網(wǎng)站加載太慢,怎么辦?
這時可以把網(wǎng)站上的圖片通過squid或varnish緩存到網(wǎng)站前端,盡可能的增加訪問速度,當(dāng)然,最好是購買商業(yè)的CDN加速。
5、用戶注冊發(fā)表的文章與評論太多,一臺數(shù)據(jù)庫抗不住了怎么辦?
數(shù)據(jù)庫壓力分為讀和寫,如果寫抗不住,需要進(jìn)行分表分庫到多個服務(wù)器上。如果是讀壓力不夠了,可以使用mysql-proxy讀寫分離, 來分擔(dān)讀的壓力。更簡單方便的方法,把數(shù)據(jù)庫里的內(nèi)容放到內(nèi)存上,這就用上memcache或redis了。
四、保障數(shù)據(jù)安全可靠
出一點點差錯,領(lǐng)導(dǎo)要找你喝茶了。
1、有時需要手動改數(shù)據(jù)庫內(nèi)容?
所以要會基本的Mysql數(shù)據(jù)庫增刪查改命令。
2、數(shù)據(jù)庫要還原怎么辦?
所以需要在crond中定期全備Mysql數(shù)據(jù),以便還原使用。如果要還原到指定時間點,還要學(xué)會Mysql增量備份與恢復(fù)。
3、小心黑客,要增加服務(wù)器安全性?
ssh輕易不能讓外人訪問,那么就設(shè)置只允許公司的IP或跳板機(jī)IP訪問,這些都通過iptables來控制。
4、如果是用戶上傳的圖片或文件服務(wù)器壞了怎么辦?
定時備份可能還不夠,需要使用rsync加inotify來實時備份。以便任一時刻主服務(wù)器壞掉,也能保障所有圖片有備份可以用來恢復(fù)。
5、萬一數(shù)據(jù)庫服務(wù)器硬件壞了怎么辦?
需要有個備庫以備不時之需,所以需要Mysql主從復(fù)制。
五、其他工作
1、研發(fā)人員的代碼控制,權(quán)限控制,總要運維人員管呀?
svn或git,這個是肯定要有的。
2、搭整套測試環(huán)境需要5臺服務(wù)器,但公司窮的只有一臺空閑服務(wù)器?
學(xué)會xen或kvm或docker吧,虛擬出多臺服務(wù)器,就能解決資源問題了。特別是docker,強(qiáng)烈推薦,以后某個研發(fā)人員讓你部署一套新環(huán)境,分分鐘幫他解決。
所以運維工程師學(xué)習(xí)這么多的技能是有用的,但是運維工程師穩(wěn)定而且薪資高、待遇好,還是屬于那種工作越久越吃香的,所以還是一個很適合長期從事的工作崗位!
下一個教程:返回列表