運維工程師告訴你什麼是大型網站運維

首先明確一下,全文所講的”運維“是指:大型網站運維,與其它運維的區別還是蠻大的;然後我們再對大型網站與小型網站進行範圍定義,此定義主要從運維複雜性角度考慮,如網站規範、知名度、服務器 量級、pv量等考慮,其它因素不是重點;因此,我們先定義服務器規模大於1000臺,pv每天至少上億(至少國內排名前10),如sina、baidu、 QQ,http://51.com等等;其它小型網站可能沒有真正意義上的運維工程師,這與網站規範不夠和成本因素有關,更多的是集合網絡、系統 、開發工作於一身的“複合性人才”,就如有些公司把一些合同採購都納入了運維職責範圍,還有如IDC網絡規劃也納入運維職責。所以,非常重要一定需要明白:運維對其它關聯工種必須非常瞭解熟悉:網絡、系統、系統開發、存儲,安全,DB等;我在這裏所講的運維工程師就是指專職運維工程師。
  
  我們再來說說一般產品的“出生”流程:
  
  1、首先公司管理層給出指導思想,PM定位市場需求(或copy成熟應用)進行調研、分析、最終給出詳細設計。
  
  2、架構師根據產品設計的需求,如pv大小預估、服務器規模、應用架構等因素完成網絡規劃,架構設計等(基本上對網絡變動不大,除非大項目)
  
  3、開發工程師將設計code實現出來、測試工程師對應用進行測試。
  

  4、好,到運維工程師出馬了。首先明確一點不是說前三步就與運維工作無關了,恰恰相反,前三步與運維關係很大:應用的前期架構設計、軟/硬件資源評估申請採購、應用設計性能隱患及評估、IDC、服務性能安全調優、服務器系統級優化(與特定應用有關)等都需運維全程參與,並主導整個應用上線項目;運維工程師負責產品服務器上架準備工作,服務器系統安裝、網絡、IP、通用工具集安裝。運維工程師還需要對上線的應用系統架構是否合理、是否具備可擴展性、及安全隱患等因素負責,並負責最後將產品(程序)、網絡、系統三者進行拼接並最優化的組合在一起,最終完成產品上線提供用戶使用,並周而復使:需求->開發(升級)->測試->上線(性能、安全問題等之前預估外的問題隨之慢慢就全出來了)在這裏提一點:網站開發模式與傳統軟件開發完全不一樣,網站一天開發上線1~5個升級版本是家常便飯,用戶體驗爲王嘛,如果某個線上問題像M$ 需要1年解決,用戶早跑光了;應用上線後,運維工作纔剛開始,具體工作可能包括:升級版本上線工作、服務監控、應用狀態統計、日常服務狀態巡檢、突發故障處理、服務日常變更調整、集羣管理、服務性能評估優化、數據庫管理優化、隨着應用PV增減進行應用架構的伸縮、安全、運維開發工作:
  
  a 、儘量將日常機械性手工工作通過工具實現(如服務監控、應用狀態統計、服務上線等等),提高效率。
  
  b、解決現實中服務存在的問題,如高可靠性、可擴展性問題等。
  
  c、大規模集羣管理工具的開發,如1萬臺機器如何在1分鐘內完成密碼修改、或運行指定任務?2000臺服務器如何快速安裝操作系統?各分佈式IDC、存儲集羣中數PT級的數據如何快速的存儲、共享、分析?等一系列挑戰都需運維工程師的努力。
  
  在此說明一下其它配合工種情況,在整個項目中,前端應用對於網絡/系統工程師來說是黑匣子,同時開發工程師職責只是負責完成應用的功能性開發,並對應用本身性能、安全性等應用本身負責,它不負責或關心網絡/系統架構方面事宜,當然軟/硬件採購人員等事業部其它同事也不會關心這些問題,各司其職,但項目的核心是運維工程師!所有其它部門的橋樑。
  
  上面說了很多,我想大家應該對運維有一些概念了,在此打個比方吧,如果我們是一輛高速行駛在高速公路上的汽車,那運維工程師就是司機兼維修工,這個司機不簡單,有時需要在高速行駛過程中換輪胎、並根據道路情況換檔位、當汽車速度越來越快,汽車本身不能滿足高速度時對汽車性能調優或零件升級、高速行進中解決汽車故障及性能問題、時刻關注前方安全問題,並先知先覺的採取規避手段。這就是運維工作!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章