首先明确一下,全文所講的網站“運維“是指:門戶網站應用運維,與其它運維如網絡、系統的區别還(hái)是蠻大的;然後(hòu)我們再對(duì)大型網站與小型網站進(jìn)行範圍定義,此定義主要從運維複雜性角度考慮,如網站規範、知名度、服務器量級、pv量等考慮,其它因素不是重點;因此,我們先定義服務器規模大于1000台,pv每天至少上千萬(至少國(guó)内排名前20),如sina、alibaba、sohu、baidu、網易等等。
其它小型網站可能(néng)沒(méi)有真正意義上的運維工程師,這(zhè)與網站規範不夠和成(chéng)本因素有關,更多的是集合網絡、系統、開(kāi)發(fā)工作于一身的“複合性人才”,就如本版有些同僚將(jiāng)公司的合同采購都(dōu)納入了運維職責範圍,還(hái)有如IDC網絡規劃也納入運維職責,這(zhè)是網絡工程師的工作,我們就不要搶人家飯碗了,但是,有件事(shì)非常重要一定需要明白:網站應用運維對(duì)其它關聯工種(zhǒng)必須非常了解熟悉:網絡運維、系統運維、應用開(kāi)發(fā)、内容;但這(zhè)些非自已的本職工作,我在這(zhè)裡(lǐ)所講的運維工程師就是指專職應用運維工程師。
我們再來說說一個般産品的“出生”流程:
1、首先公司BOSS層給出指導思想,PM定位市場需求(或copy成(chéng)熟應用)進(jìn)行調研、分析、最終給出詳細設計
2、開(kāi)發(fā)工程師將(jiāng)設計code實現出來、測試工程師對(duì)應用進(jìn)行測試(同一産品事(shì)業部)
3、網絡\系統工程師根據産品設計的需求,如pv大小預估、服務器規模、應用架構等因素完成(chéng)網絡規劃及設備上的調整(基本上對(duì)網絡變動不大,除非大項目)、SA系統工程師負責産品服務器上架準備工作,服務器系統安裝、網絡、IP、通用工具集安裝
4、好(hǎo),到運維工程師出馬了。
首先明确一點不是說前三步就與運維工作無關了,恰恰相反,前三步與運維關系很大:應用的前期架構設計、軟/硬件資源評估申請采購、應用設計性能(néng)隐患及評估、IDC、服務性能(néng)\安全調優、服務器系統級優化(與特定應用有關)等都(dōu)需運維全程參與,并主導整個應用上線項目;運維工程師需要對(duì)上線的應用系統架構是否合理、是否具備可擴展性、及安全隐患等因素負責,并負責最後(hòu)將(jiāng)産品(程序)、網絡、系統三者進(jìn)行拼接并最優化的組合在一起(qǐ),最終完成(chéng)産品上線提供用戶使用,并周而複使:需求->開(kāi)發(fā)(升級)->測試->上線(性能(néng)、安全問題等之前預估外的問題随之慢慢就全出來了)在這(zhè)裡(lǐ)提一點:網站開(kāi)發(fā)模式與傳統軟件開(kāi)發(fā)完全不一樣(yàng),網站一天開(kāi)發(fā)上線1~5個升級版本是家常便飯,用戶體驗爲王嘛,如果某個線上問題像M$需要1年解決,用戶早跑光了。
應用上線後(hòu),運維工作才剛開(kāi)始,具體工作可能(néng)包括:升級版本上線工作、服務監控、應用狀态統計、日常服務狀态巡檢、突發(fā)故障處理、服務日常變更調整、集群管理、服務性能(néng)評估優化、數據庫管理優化(大于50台)、随著(zhe)應用PV增減進(jìn)行應用架構的伸縮、安全、運維開(kāi)發(fā)工作:
a 、盡量將(jiāng)日常機械性手工工作通過(guò)工具實現(如服務監控、應用狀态統計、服務上線等等),提高效率
b 、解決現實中服務存在的問題,如高可靠性、可擴展性問題等,
c、大規模集群管理工具的開(kāi)發(fā),如1萬台機器如何在1分鍾内完成(chéng)密碼修改、或運行指定任務?2000台服務器如何快速安裝操作系統?各分布式IDC、存儲集群中數BT級的數據如何快速的存儲、共享、分析?等一系列挑戰都(dōu)需運維工程師的努力。
在此說明一下其它配合工種(zhǒng)情況,在整個項目中,前端應用對(duì)于網絡/系統工程師來說是黑匣子,同時開(kāi)發(fā)工程師職責隻是負責完成(chéng)應用的功能(néng)性開(kāi)發(fā),并對(duì)應用本身性能(néng)、安全性等應用本身負責,它不負責或關心網絡/系統架構方面(miàn)事(shì)宜,當然軟/硬件采購人員等事(shì)業部其它同事(shì)也不會關心這(zhè)些問題,各司其職,但項目的核心是運維工程師~!所有其它部門的橋梁
上面(miàn)說了很多,我想大家應該對(duì)運維有一些概念了,在此打個比方吧,如果我們是一輛高速行駛在高速公路上的汽車,那運維工程師就是司機兼維修工,這(zhè)個司機不簡單,有時需要在高速行駛過(guò)程中換輪胎、并根據道(dào)路情況換檔位、當汽車速度越來越快,汽車本身不能(néng)滿足高速度時對(duì)汽車性能(néng)調優或零件升級、高速行進(jìn)中解決汽車故障及性能(néng)問題、時刻關注前方安全問題,并先知先覺的采取規避手段……這(zhè)就是運維工作~!
最後(hòu)說一下運維工程師的職責:“确保線上穩定”,看似簡單,但實屬不容易。運維工程師必須在諸多不利因素中進(jìn)行權衡:新産品模式對(duì)現有架構及技術的沖擊、産品高頻度的升級帶來的線上BUG隐患、運維自動化管理承度不高導緻的人爲失誤、IT行業追求的高效率導緻流程執行上的缺失、用戶增漲帶來的性能(néng)及架構上的壓力、IT行業寬松的技術管理文化、創新風險、互聯網安全性問題等因素,都(dōu)會是網站穩定的大敵,運維工程師必須把控好(hǎo)這(zhè)最後(hòu)一關,需具體高度的責任感、原則性及協調能(néng)力,如果能(néng)做到各因素的最佳平衡,那就是一名優秀的運維工程師了。
另外在此聊點題外話,我在本版看到有很多人要sina、網易、sohu、baidu等聊自已的運維方面(miàn)的經(jīng)驗,其實這(zhè)對(duì)于它們有點免爲其難:
a、各公司自已網絡架構、規模、或多或少還(hái)算是公司的核心秘密,要保密;另外,對(duì)于大家所熟知的通用軟件、架構,由于很多公司會根據自已實際業務需要,同時因爲原版性能(néng)、安全性、已知bug、功能(néng)等原因,進(jìn)行過(guò)二次開(kāi)發(fā)(如apache,php,mysql...),操作系統内核也會根據不同業務類型進(jìn)行定制的,如某些應用屬于運算型、某些是高IO型、或大儲存大内存型……根據這(zhè)些特點進(jìn)行内核優化定制,如sina就在memcache上進(jìn)行過(guò)二次開(kāi)發(fā),搞出了一個memcache DB,具體做得如何我們不談,但開(kāi)源了,是值得稱贊的,國(guó)内公司對(duì)于開(kāi)源基本上是索取,沒(méi)有貢獻;另外,服務器也不是大家所熟知的型号,根據業務特點,大部份都(dōu)是找DELL/HP/sun/ibm進(jìn)行過(guò)定制;另外,在分布式儲存方面(miàn)都(dōu)有自已解決方案,要不就是使用現成(chéng)開(kāi)源hadoop等解決方案,或自已開(kāi)發(fā)。但90%都(dōu)是借鑒google GFS的思想:分布式存儲、計算、大表。
b、各公司業務方向(xiàng)不一樣(yàng),會導緻運維模式或方法都(dōu)不一樣(yàng),如alibaba和baidu運維肯定區别很大,因爲他們業務模式決定了其架構、服務器量級、IDC分布、網絡結構、通用技術都(dōu)會不一樣(yàng),主打新聞門戶的sina與主打網遊的盛大運維模式差異就非常大,甚至職責都(dōu)不大一樣(yàng);但有一點,通用技術及大緻架構上都(dōu)大同小異,大家不要太神化,更多的公司隻是玩壘積木的遊戲罷了,沒(méi)什麼(me)技術含量。
c、如我上面(miàn)所講,目前門戶網站運維還(hái)處于幼年時期理念和經(jīng)驗都(dōu)比較零散,沒(méi)有成(chéng)熟的知識體系,可能(néng)具體什麼(me)是運維,大家都(dōu)要先思索一番,或壓根沒(méi)想過(guò),真正讨論也隻是運維工作的冰山一角,局限于具體技術細節,或某某著名網站大的框架,真正運維體系化東西沒(méi)有,這(zhè)也許是目前網上運維相關資料比較少的原故吧。