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