定義
運維平台研發工程師是從事IT產品運維平台軟體研發相關工作人員的統稱,他屬於軟體研發工程師(引用軟體開發工程師詞條),但又有著運維的特點。
普通軟體研發工程師開發的產品多面向普通用戶、網民,而運維平台研發工程師開發的運維平台產品主要面向其他工程師或伺服器,對技術的要求非常全面,除了最基礎的程式語言(C/C++/JAVA/PHP等)、資料庫技術、快取技術、分散式系統設計等軟體開發工程師所需要具備的通用素質外,還需要具備一定的運維技術研究能力,如對產品監控管理、部署管理、資源管理、彈性計算、性能最佳化、流量調度、大規模分散式系統運維等某一個方面或幾個方面有著一定程度的了解,由於運維平台產品的用戶多數為工程師和伺服器的特性,這使得運維平台研發的標準比普通軟體研發更高,產品本身也需要更高的性能、可擴展性和平台化能力 。
運維平台研發工程師其業務領域即是其技術領域,該職位隨著運維平台市場的發展也逐漸變得炙手可熱,據估算,截止2015年,企業級運維平台產品具有數千億市場規模,並仍在高速發展,有著廣闊前景。
主要職責
-深入研究IT產品運維相關技術,設計並實現可支撐大規模分散式系統的運維平台與工具,包括但不限於監控平台、部署平台、資源管理平台、彈性計算平台、性能分析最佳化平台、流量調度平台、運維流程管理平台等。
-深度參與業務系統的設計與實施,協助業務系統架構的可運維性設計,並幫助業務產品持續最佳化服務架構
-探索、研究新的運維技術方向
工作內容
國內
由於運維平台的複雜性,國內的運維平台研發工程師多以中大型IT公司為主,比如百度、阿里、騰訊、小米、京東等。一般較小型的公司不會獨自研發運維平台,多數由運維工程師根據開源項目搭建或購買企業級服務。
大型網際網路公司中的運維平台研發工程師設計的運維平台,每天管理著數以萬計的伺服器,運行著數以千計的網際網路產品,不得不說,這是一個非常具有技術挑戰性的職業。
運維平台屬於較大型分散式系統,所以工程師需要用到的技術極為廣泛,包括但不限於分散式存儲、分散式計算、彈性計算、負載均衡、資源定位、資源隔離、數據挖掘、機器學習等。運維平台產品具體分類可以參考運維平台詞條。
運維平台研發工程師的日常工作是設計、開發運維平台,因此與軟體研發的過程一樣,會覆蓋需求、設計、編程實現、測試、發布等階段:
需求:深入調研用戶市場需求,認清項目的套用場景,解決的問題,性能指標等,需要與運維平台使用方反覆溝通,確定具體的需求。
設計:根據收集整理的需求文檔設計運維平台的模型和架構,劃分模組分別進行概要和詳細設計。
編程:按照模組分工和設計文檔,進行編碼和調試。
測試:將開發完成的運維平台交給測試人員進行測試,主要使用的測試方法有黑盒測試、白盒測試、系統測試、集成測試等。
發布:測試全部通過後即可進行產品發布,提供穩定的正式對外服務。
1.需求:深入調研用戶市場需求,認清項目的套用場景,解決的問題,性能指標等,需要與運維平台使用方反覆溝通,確定具體的需求。
2.設計:根據收集整理的需求文檔設計運維平台的模型和架構,劃分模組分別進行概要和詳細設計。
3.編程:按照模組分工和設計文檔,進行編碼和調試。
4.測試:將開發完成的運維平台交給測試人員進行測試,主要使用的測試方法有黑盒測試、白盒測試、系統測試、集成測試等。
5.發布:測試全部通過後即可進行產品發布,提供穩定的正式對外服務。
國外
國外的運維平台研發工程師,多屬於基礎架構部門,例如谷歌的核心運維管理平台Borg。當然,相對於國內,國外具有更多的專門做企業級運維服務的公司,例如做監控的公司New relic 、AppDynamics 等。
嚴格意義上來講,公有雲服務的開發,即AWS、Azure等,也屬於運維平台研發工程師的範疇。更有很多開源服務,如Docker、Kubernetes、Nagios、Cacti、Zabbix等,每一個都是運維平台研發工程師辛勤汗水的結晶。
會議
運維平台研發工程師參與的會議或組織較為廣泛,比如以運維為主的會議,SRECon,以性能最佳化為主的會議Velocity ,以大型分散式系統為主的會議Lisa等,在國內也有諸如QCon 等會議,有著大量的運維平台研發工程師參與。
職責要求
符合通用軟體研發工程師技能要求
-精通一種常用程式語言(C/C++、JAVA、PHP、JS等),了解主流的框架、庫使用和原理
-深入了解計算機數據結構和算法設計,具備作業系統和網路基礎知識
-熟練掌握Linux、web server、資料庫、快取相關技術的使用,了解內部實現機制為最優
-熟練掌握分散式系統理論並有著大量實踐者為最優
運維平台研發工程師獨有要求
-能夠結合產品需求制定並實施綜合性的運維技術方案
-具備IT產品的開發或運維經驗
-了解運維自動化相關技術(監控、部署、調度、虛擬化等)為最優
軟素質要求
-有良好的英語閱讀能力,能夠閱讀英文資料
-自我驅動,主動的學習能力和較強的動手能力
-工作認真細緻,有責任心,勤奮踏實,善於思考問題
-有時間觀念,獨立性強,溝通能力好,具有團隊合作精神
成長之路
-初識
對於以校招身份加入的運維平台研發工程師,各公司首先通常會進行基礎的運維技術培訓,讓新入職的同學們了解什麼是運維以及運維使用的主要技術,同時對現有的業界運維平台有一個整體清晰的認識,之後逐漸開始針對公司現階段需求進行項目開發。在軟體研發層面的培訓與軟體研發工程師一致。
-進階
隨著運維平台研發工程師項目經驗的積累,在基礎研發能力得到大幅度提升後,會逐漸轉變為以大規模分散式系統設計為主的階段,由於每個人的經歷有限,所以會有較為明確的研究與主攻方向。有些工程師會側重於研究海量數據的採集、傳輸、計算、存儲等方向,有些工程師會側重於分散式系統任務調度、執行、資源管理等方向,有些工程師會側重於業務系統研發、深入研究與人的互動、與機器的互動;有些工程師則會側重於行業運維平台產品設計方向,學習並設計大量新的運維平台產品。
職業發展
技術方向
-軟體研發架構師
這一方向與軟體研發工程師沒有不同,畢竟運維平台研發工程師屬於軟體研發工程師的一個分支,核心路線是按照研發技術線路成長,分別經歷研發工程師、高級研發工程師、資深研發工程師等過程,最終成長為研發架構師(架構師做什麼?引用架構師詞條),可以獨立完成大型運維平台產品的設計,並對分散式系統具有著非常深入的研究與理解,成為公司的頂樑柱。
-運維技術專家
因為在研發運維平台的過程中,運維平台研發工程師積累了大量先進的運維技術,比如自動化部署、智慧型監控、彈性計算等,所以他有條件成長為運維技術專家或運維架構師,為各產品提供運維架構設計和最佳化建議,成為產品架構設計的顧問與大神。
管理方向
與技術相對地,運維平台研發工程師也可以在技術積累到一定程度後,轉而向管理方向發展,在大型網際網路公司有很多從運維平台研發工程師一路成長為技術經理、部門總監、公司VP這樣的例子。同時,高階的運維平台研發工程師也很受小型公司與創業公司的追捧,他們可以直接做到總監、VP甚至CTO、CEO這樣的職位。
行業競爭力
-行業
具Gartner分析,截止2015年,運維平台整體市場規模已經達到數千億,且仍然在不斷增長,相對應地,其對運維平台研發工程師的需求也在不斷擴大,因為這是一個較為新興的職位,原有基數較小,缺口很大。
-公司
大中型公司:國外的如Google、Facebook、Microsoft、Twitter等,國內的如百度、阿里、騰訊、京東、小米等,任何一個具有百億以上市值的公司,都急需該崗位人才。
商業運維產品公司:國外的如NewRelic 、AppDynamics ,國內的如OneAPM 、監控寶 等,他們的核心開發人員都是運維平台研發工程師。
-技術
運維平台研發工程師接觸的是最前沿的技術,如虛擬化與資源隔離:Docker 、OpenStack ,公有雲、分散式存儲、分散式調度、分散式計算等等,他們通常都是走在計算機工程技術的最前沿
-薪酬
大型網際網路公司如BAT對運維平台研發工程師比較看重,薪酬水平較高,入職初期與普通軟體研發工程師相仿,後期越資深的工程師越受到追捧。