WOT2016彭哲夫:科班出身開發者對運維人員的期許
原創“運維與開發”是老生常談的話題,前幾天和一個運維人聊天,TA說一些公司運維崗位都不公開招聘了,這讓眾多運維人員情何以堪?是運維的崗位真的飽和了?是找到合適的運維人才難?還是有這樣那樣的因素?帶著這些疑惑,51CTO記者特別采訪了【WOT2016互聯網運維與開發者峰會】特邀講師、芒果TV平臺部技術團隊負責人彭哲夫看看這位科班出身有豐富項目經驗的開發者,對運維人員有著怎樣期許?
【受訪人簡介】
彭哲夫·芒果TV平臺部技術團隊負責人
彭哲夫,芒果TV平臺部技術團隊負責人,主要負責 Docker 和 Redis Cluster 相關的基礎設施開發。前豆瓣App Engine核心主程,前金山快盤核心主程。在系統工程方面經驗豐富。彭***,知識豐富,功底深厚,語言幽默風趣,知乎上、簡書上有不少彭***的精彩大作和回復。
有豐富的項目經驗才能去做評價
初見彭哲夫印象一般,覺得就這是個屌絲,還挺高傲。***問題,最初開發時有遇到困難嗎?他果斷的說,并沒有。持懷疑的眼光看著他,他用這樣一段說,讓我覺得這個家伙還是有高傲資本的。他說:“其實我是科班出生,小學六年級就基本上開始搞計算機這行,參加過奧林匹克競賽,一直到大學然后再到現在。所以說這么多年的基礎打下來,對于很多問題其實早就心有概念,所以走的彎路算比較少。遇到問題,我有自己方法論,所以也知道怎么從一些信息或源碼上去找到解決問題的方法。”
彭哲夫在采訪中提到了三個項目分別為金山快盤、豆瓣APP引擎、芒果TV容器調度編排系統,在介紹這三個項目的過程中,我能夠體會到他的那份驕傲。金山快盤是國內***個云存儲,是從WPS在線文檔演進過來,之后開發是用java做的數據中間件,純C++寫的存儲層,主要應對文件分片,文件復用等問題。之后彭哲夫加入豆瓣開發APP引擎,因豆瓣的技術需要一些變革來支持業務更好的發展,來應對單位硬件成本高于人力成本的問題,完成APP引擎后主要是可以提高內部生產力以及整個線上的效率。芒果TV容器調度編排系統可以說是彭哲夫提出并帶頭開發的,最初的芒果TV更像是一個比較傳統的手工作坊,包括上線、下線、測試,包括源碼管理。他覺得從業務層面到技術到測試再到最終落地,溝通成本很高。開發一個系統就會降低開發成員的薪資成本,只要有標準,按照標準走,不需要過多溝通。
實踐后才能找到問題知道哪里該提升
芒果TV容器調度編排系統從零到用于業務中,經歷了很多的困難,在實踐中也會遇到大大小小的問題。彭哲夫一直在盡自己***的努力,引入業界優秀的解決方案來提升芒果TV的系統性能,降低運維成本。由他負責的平臺部核心技術團隊,目前主要是在做基于Docker的調度平臺以及整個公司的基礎設施。他們在沒有參考任何其他調度編排系統的情況下自行研發了調度編排系統,現在這個系統驅動了芒果TV的Redis集群,實現了毫秒級的擴容和縮容,保證4個9的可用性和6個9的數據可靠性。
到目前為止,芒果TV容器調度編排系統可以混編Offline和Online的服務(binary/script),對于資源尤其是CPU資源實現了自由維度(0.1、0.01、0.001等)的彈性分配,使用Redis作為數據總線對外進行消息發布,動態感知集群所有的Containers狀態并監控其各項數據等。此外,把基于Docker的Image Layer特性和Git version結合起來,實現了自動化的build/test流程,統一了線上部署環境。同時解決了Runtime的污染問題,使得業務能快速地擴容和縮容。
不是誰都可以做運維 運維人員要有素養
當問及您覺得什么程度的運維人員能夠維護芒果TV容器調度編排系統時,彭哲夫這樣說,“目前來講,純粹的運維和純粹的開發是沒有多大意義的,因為容器出來之后,很大程度模糊了運維和開發之間的邊界。更希望運維本身有一定開發基礎去彌補開發的東西,因為以前開發提供一個有關機器、有關網絡的文檔給運維,運維就可以工作?,F在來看,運維面對的是平臺層面的運維,它和上層的開發是完全隔離的。平臺層面的運維對運維的要求就要高一些,這個要求最簡單的就是協議棧,對協議、對虛擬網絡,對磁盤數據的管控。這時候,運維面對的可能不是磁盤,可能就是塊設備,可能是分布式存儲系統。這是從開發角度來講,希望運維更加提升自己,而不是傳統的純粹的簡單運維。”
作為科班出身的資深開發者,彭哲夫舉例表明了自己對運維人員的期許。如果把傳統運維比作汽車保養功能,其就是為了使汽車可以開的更久,開的更好。當然目前這種技術發展趨勢下,運維不光是具備保養功能,至少要做一名車工人,去造更好的車,讓汽車跑的更久或者更好。如果傳統運維就是加油站,同樣跑500公里加5次油,這5次油都是運維做的。現在來講,可能運維會參與到全新汽車開發,它本身就可以開500公里,那這樣的話,效果是一樣,但是成本完全不一樣的。運維本身要完全理解為什么會有平臺這個東西,為什么要隔離產品,就產品開發和運維之間這么一個模糊的地帶。
寫在***:
彭哲夫在采訪中講到,運維和開發的側重點不一樣,并不存在誰凌駕于誰之上。開發會側重于需求的實現和落地。運維會側重于整個平臺層面如監控,但監控也會包含開發,畢竟生命周期不一樣。如果說對整個部署的抽象,運維以前是以機器為單位,現在以進程為單位而已。