什么是網(wǎng)站運(yùn)維(Web operations) ?運(yùn)維,絕不是某些人眼中安裝系統(tǒng)、做幾根網(wǎng)線那么簡(jiǎn)單? 除去應(yīng)用開(kāi)發(fā)和業(yè)務(wù)運(yùn)營(yíng)之外的保障網(wǎng)站能運(yùn)轉(zhuǎn)的事兒都可能是運(yùn)維工作的職責(zé)范圍。運(yùn)維的工作包括(但不限于) 軟硬件部署、網(wǎng)絡(luò)管理、應(yīng)用程序維護(hù)、安全、容量規(guī)劃、故障修復(fù)等等。
運(yùn)維,有別于”運(yùn)營(yíng)”。在中文的語(yǔ)境中,運(yùn)營(yíng)更多和業(yè)務(wù)結(jié)合在一起的。而運(yùn)維,則是偏向技術(shù)層面。
任何一個(gè)成功的站點(diǎn)都離不開(kāi)一只優(yōu)秀的運(yùn)維團(tuán)隊(duì),盡管他們更多時(shí)候隱身在網(wǎng)站背后不為人知。
網(wǎng)站可用性
所謂網(wǎng)站可用性(availability)也即網(wǎng)站正常運(yùn)行時(shí)間的百分比,這是每個(gè)運(yùn)營(yíng)團(tuán)隊(duì)最主要的 KPI (Key Performance Indicators ,關(guān)鍵業(yè)績(jī)指標(biāo))。對(duì)于 Web 站點(diǎn)來(lái)說(shuō),傳統(tǒng)的那個(gè) 24×7 的說(shuō)法已經(jīng)不是很適用了,現(xiàn)在業(yè)界更傾向用 N 個(gè)9 來(lái)量化可用性, 最常說(shuō)的就是類(lèi)似 “4個(gè)9(也就是99.99%)” 的可用性??匆幌卤?1 能更為直觀一些。
描述 | 通俗叫法 | 可用性級(jí)別 | 年度停機(jī)時(shí)間 |
基本可用性 | 2個(gè)9 | 99% | 87.6小時(shí) |
較高可用性 | 3個(gè)9 | 99.9% | 8.8小時(shí) |
具有故障自動(dòng)恢復(fù)能力的可用性 | 4個(gè)9 | 99.99% | 53分鐘 |
極高可用性 | 5個(gè)9 | 99.999% | 5分鐘 |
根據(jù)墨菲定理的推論,世界上沒(méi)有 100% 可靠的 Web站點(diǎn)(除非不運(yùn)行)。業(yè)界網(wǎng)站的可用性都是多少?引人注目的 Web 新貴 Twitter (http://twitter.com), 2008 年前四個(gè)月的可用性只有 98.72%,有 37小時(shí) 16分鐘不能提供服務(wù),連2個(gè)9 都達(dá)不到,甚至還沒(méi)達(dá)到”基本可用”狀態(tài)。電子商務(wù)巨頭 eBay 2007 年的可用性是 99.94%,考慮到 eBay 站點(diǎn)的規(guī)模與應(yīng)用的復(fù)雜程度,這是個(gè)很不錯(cuò)可用性指標(biāo)了。Web 應(yīng)用類(lèi)型決定了不同的站點(diǎn)對(duì)可用性的依賴性是不同的。 要知道 4 個(gè) 9 的可用性實(shí)際上是很難實(shí)現(xiàn)的目標(biāo)。至于 5 個(gè)9 的 Web 站點(diǎn),一半靠?jī)?nèi)功,另一半恐怕是要靠點(diǎn)運(yùn)氣。
(圖1 維基百科網(wǎng)站的一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器的可用情況報(bào)告, 由Nagios的監(jiān)控得到的)
多數(shù)情況下,網(wǎng)站可用性會(huì)是 SLA (Service Level Agreement, 服務(wù)水平協(xié)議) 中的一個(gè)重要度量指標(biāo),也是運(yùn)維團(tuán)隊(duì)向自己的客戶(更多是公司老板)的正式承諾??捎眯允悄軌虺掷m(xù)改進(jìn)的東西,KPI 制定者切不可獅子大開(kāi)口,企圖一步登天,拍拍腦袋提一些不太切實(shí)的指標(biāo)。運(yùn)維團(tuán)隊(duì)對(duì)可用性的承諾也不能開(kāi)些空頭支票,到頭來(lái)兩頭難看。值得強(qiáng)調(diào)的是,如果是做第三方托管,更需要明確 SLA,明了第三方的服務(wù)能力,否則,費(fèi)盡了九牛二虎之力終于保證了軟硬件網(wǎng)絡(luò)等環(huán)節(jié)都沒(méi)問(wèn)題了,IDC 卻頻繁斷電或者IDC 出口網(wǎng)絡(luò)不可用,這也絕對(duì)做不到預(yù)期的高可用性。
提高可用性的一些常規(guī)策略有消除單點(diǎn),部署冗余設(shè)備(或集群),配置帶外管理網(wǎng)絡(luò)等,對(duì)可用性要求不高的網(wǎng)站這些可能足夠了。如果要提供更高的可用性,比如 4 個(gè) 9 甚至 5 個(gè)9,就不是簡(jiǎn)單靠硬件就能做到的事情,還需要建立完善的流程制度、建立變更機(jī)制、提升事故響應(yīng)速度等。正所謂是”沒(méi)有最高可用,只有更高可用性”。
一般來(lái)說(shuō),所有的網(wǎng)站運(yùn)維人員都在追求網(wǎng)站的更高級(jí)別的高可用性,但是必須注意,這是以額外的軟硬件投入、更多的人力成本為代價(jià)的。成本與可用性之間也請(qǐng)做到良好的平衡,盲目追求高可用性是不可取的。
(補(bǔ)充:Twitter 的可用性現(xiàn)在已經(jīng)有了很大提升,但是可以看到,可用性不佳并非一個(gè)網(wǎng)站的殺手,只要產(chǎn)品對(duì)用戶足夠友好,足夠有粘度,足夠不可或缺,那么可用性并非是第一要追求的運(yùn)維目標(biāo)。有些運(yùn)維人員被 Amazon 的某年圣誕節(jié)期間宕機(jī)所造成的影響埋下心理陰影,其實(shí)沒(méi)那么可怕,如果真的覺(jué)得可怕,那么你可能被一些廠商銷(xiāo)售人員洗腦了。)