以下是中國互聯網業界部分資深運維工程師對運維的看法(涉及隱私,相關人名采用首字母縮寫):
CXY:
運維是壹個非常廣泛的定義,在不同的公司不同的階段有著不同的職責與定位,如果以operation字面的含義去理解,認為就是敲幾行操作命令的工作,那就錯了。 對於初創公司,運維工程師的工作可能需要從申請域名開始,購買/租用服務器,上架,調整網絡設備的設置,部署操作系統和運行環境,部署代碼,設計和部署監控,防止漏洞和攻擊等等。對於大型的公司,對於運維工作的要求越來越高,也催生了更細化的運維分工:從大的方向,可以分為網站運維,系統運維,網絡運維,數據庫運維,IT運維,運維開發,運維安全等方向。
很多非從業人員對運維的看法壹般屬於IT運維的壹個非常小的職責:裝系統^^。 壹些研發工程師對運維的看法也只局限運維工作的幾個點:部署, 變更, 監控,響應。
無論做什麽運維,最基本的職責都是保證業務能夠穩定運行。所以必須成為業務穩定性的owner。有些人通常認為運維工程師像消防員,7*24小時響應異常,救火。但是穩定性的運維工程師和醫生的職業更接近。醫生也分各種科室,也有急癥室,需要先判斷病人的問題,對癥下藥。
業務有著各種各樣的需求,如果運維工程師能夠滿足業務需求,或者主動挖掘業務的痛點和改進方法,就能為業務實現更多的價值。
在滿足業務需求時,應該分清主次,優先面對業務快速發展非常重要的需求,例如穩定性,部署和變更效率,容量管理。穩定性不用多說,如果用戶沒法穩定使用妳的業務,什麽產品特性都沒有價值。對於百度這樣極速發展的互聯網公司,每天都有大量的升級更新需要提供給用戶,如何在異地的大集群上最快的滿足產品的升級需求,同時讓用戶對升級過程無感知,這是我們的追求。當用戶會用百度來測量網絡是否可以上網時,就是對運維質量的褒獎。
其次,可以橫向看看不同業務的需求。如果能夠把多個業務的需求抽象出來,把壹些有通用價值的工作平臺化(例如數據庫,cdn,監控,流量接入和調度,大數據的存儲和計算),也能在這個方向進行深入的發展。在百度這樣的巨大的流量和服務器規模下,妳不僅有巨大的空間和挑戰,也有著充足的資源和支持,可以開發和應用業界最前沿的技術。
有壹定的積累後,可以進入到宏觀和微觀的兩個層面,從整個公司層面考慮業務的智能部署和調度(涉及網絡,硬件,系統,應用開發方式等各個要點),進壹步提升效率和節省成本。
如果能夠懂業務,理解業務的模式,緊密結合業務進行優化和創新,也是運維工程師體現價值的另外壹種方式。有很多產品上的創新,專利的申請,論文的發表,業務指標的提升,直接或者以合作的方式由運維工程師貢獻。
YBX:
運維工程師相對研發人員來講,可以全局觀察所維護的計算機系統,特別是高階運維工程師,不存在模塊界限,這種獨特的位置帶來很多價值: 知道準確的系統瓶頸點,進而知道系統準確的容量;在系統出現瓶頸前,知道如何快速提供容量。 知道系統的風險點,可以協調風險點上下相關關聯模塊,做出冗余策略;相比集中解決單點模塊穩定性,更合理。 長期從事相關工作,積累較多的架構設計經驗,可以指導新架構設計和審核。 從公司不同業務角度看,運維可以從中抽象相同的模塊,統壹管理,形成有效的平臺和自動化管理方法 同樣從公司不同業務角度看,可以統壹調配資源,進而節省資源。
KZ: 設計並實現可以提高公司服務可用性,可擴展性,延遲和效率的軟件。 處理日常緊急事故,修正,替換問題組件。並設計規避問題方法。 設計和實現新的超大規模分布式系統架構和標準。 參與服務擴容計劃和預測服務增長趨勢,對軟件和系統性能進行調優。 提供在線咨詢服務和現場解決問題服務。 構建自動運維平臺,解決日常問題。 構建知識庫,預測可能的問題。 XX:
運維即生產環境以及和生產環境相關的資源、服務的維護的整個過程,包括了相關的技術、流程手段,確保生產環境穩定、高效、低成本的運行。
運維壹方面為對業務功能最終負責,其價值的體現為最大化助力產品價值的發揮。這通常是通過將產品功能的運行表現提升到極致來達成的。例如搜索引擎的運維重點要保障用戶在搜索時候的極致體驗:穩、快、準、新、全。而壹個在線聊天系統的運維應該是確保用戶聊天過程的實時與順暢。另壹方面為對在線業務的成本最終負責。其價值的體現為降低服務運行成本
運維工作的開展方式壹般取決於所維護的業務特點需求,形成所需的多個主題方向進行開展。通常的解決方案中包括如下的壹些主題方向:事件管理、配置管理、變更管理、容量管理等。
運維工程師的要求特別嚴苛,因為運維工程師針對不同的問題,需要不斷的補充擴大自己的知識和研究範疇。
在初級階段,優秀運維工程師會體現出格外出眾的主動性和責任心,面對陌生的業務會主動學習和拓展自己對業務對認識和相應的知識範疇,以能夠足夠的勝任業務的獨立維護。
在逐步的發展階段中,註重總結反省的工程師會逐漸成長為高階運維工程師,通常他們會有比較體系化的服務運維理解。也有壹部分工程師由於出色的項目管理規劃能力,逐漸成為項目經理
再進壹步的發展,高階的運維工程師對於產品的理解將非常的透徹,因而在這種情況下,高階運維工程師甚至可以成為產品的產品經理、產品研發的咨詢顧問,在產品功能的設計與開發中起到至關重要的角色。
SJY:
壹個運維工程師所需的技術體系以其專業方向而異。但基本的計算機系統架構,操作系統,網絡技術的掌握是基本要求。例如妳可能需要熟練掌握linux操作系統的使用,熟練使用各種腳本工具來處理日常工作任務,精通TCP/IP協議棧以排查壹個大規模網絡系統中的流量異常問題等。更進壹步的妳需要形成壹套軟件可運維性方面的經驗積累,以此作為後續工作的指導。
壹個運維工程師在初期階段目的是掌握維護壹套系統所需的所有軟硬件知識和經驗。進階階段是需要能夠設計開發壹套基礎的體系軟件,以支撐業務系統的穩定可靠運行,即開發服務於軟件的軟件,以支持更大規模的業務系統,提高運維生產力。最高階段是反作用於軟件系統的構建和運行階段,使得系統從誕生階段起即具有天然的可運維性,以最大化系統的生產力,同時最小化對外部支撐資源的依賴。
ZM:
運維工程師首先應該是軟件工程師(Software Engineer),只是責任和側重有所不同。
運維工程師不是系統管理員。和系統管理員最大的差別是,運維工程師的工作不僅僅是配置和管理系統,而且可以運用軟件開發的方法來增強系統的功能、或者對數據進行分析。
運維工程師應該是軟件工程師、系統工程師等角色的綜合體,和壹般軟件工程師相比、應該具有更加廣博的知識背景
運維的職責在於: 保證服務的穩定運行; 考慮服務的可擴展性; 從系統的穩定性和可運維性的角度,提出開發需求; 定位系統的問題,甚至可以直接修正bug; 對突然出現的問題做到快速響應和處理; 運維的日常工作: 需要對系統的需求和設計方案進行分析,思考在保證穩定性方面有哪些可以加強的地方,並和系統的研發人員進行有效溝通; 使用工具、或者寫程序,對運營數據進行分析; 寫程序以建立工具或平臺,去加強系統的穩定性; 運維工程師最重要的是會運用編程和軟件的方法來解決問題。發展的道路應該和軟件工程師沒有很大的區別,差異只是關註點和領域方向的不同