滴滴出行首席架構(gòu)師李令輝:業(yè)務(wù)的快速發(fā)展離不開架構(gòu)的超前設(shè)計(jì)
原創(chuàng)4月14-15日,在北京珠三角JW萬(wàn)豪酒店,51CTO舉辦了WOT互聯(lián)網(wǎng)運(yùn)維與開發(fā)者峰會(huì)。WOT秉承專注技術(shù),服務(wù)技術(shù)人群的理念,自 2012年***舉辦以來(lái),歷經(jīng)八屆,積累了大量的技術(shù)資源,成為廣大技術(shù)從業(yè)者和技術(shù)愛好者一致認(rèn)可的技術(shù)分享大會(huì)、交流和人脈拓展平臺(tái)。會(huì)后,記者專訪了本次大會(huì)高可用架構(gòu)專場(chǎng)的李令輝講師,他分享的內(nèi)容是分布式時(shí)代的架構(gòu)設(shè)計(jì)。
講師介紹
李令輝,滴滴出行***架構(gòu)師,于2014年中加入滴滴,經(jīng)歷了滴滴高速成長(zhǎng)的階段,見證了滴滴從一個(gè)打車軟件變成一個(gè)出行平臺(tái)。移動(dòng)互聯(lián)網(wǎng)資深從業(yè)者,對(duì)移動(dòng)互聯(lián)網(wǎng)技術(shù)發(fā)展趨勢(shì)以及技術(shù)團(tuán)隊(duì)的組建有獨(dú)道見解。他具有多年互聯(lián)網(wǎng)架構(gòu)的設(shè)計(jì)經(jīng)驗(yàn),擅長(zhǎng)高性能高并發(fā)高可用的架構(gòu)設(shè)計(jì)工作,主導(dǎo)了滴滴打車技術(shù)迭代中的核心服務(wù)架構(gòu)升級(jí)。
在本次WOT峰會(huì)的高可用架構(gòu)專場(chǎng),李令輝分享了分布式時(shí)代的架構(gòu)設(shè)計(jì)這一主題。他認(rèn)為面對(duì)運(yùn)維的架構(gòu)設(shè)計(jì)不是一個(gè)割裂的主題,架構(gòu)設(shè)計(jì)是為了結(jié)果服務(wù)的,結(jié)果包括功能是否達(dá)到,成本是否可控,擴(kuò)容性/可擴(kuò)展性是否夠用。很多時(shí)候,運(yùn)維的便利性和可運(yùn)維性是被忽視的。李令輝告訴了現(xiàn)場(chǎng)從業(yè)的架構(gòu)師和工程師如何讓運(yùn)維工作和研發(fā)工作更好地協(xié)同發(fā)展,不要讓研發(fā)成為運(yùn)維的負(fù)擔(dān),或者運(yùn)維成為研發(fā)的瓶頸。因?yàn)檫@兩者在互聯(lián)網(wǎng)時(shí)代是不可割裂的。
滴滴出行是順應(yīng)移動(dòng)互聯(lián)網(wǎng)發(fā)展的成功應(yīng)用,大家在日常使用上,已經(jīng)非常熟悉了。目前滴滴支付系統(tǒng)的發(fā)展情況很好,***的時(shí)候一天已經(jīng)超過(guò)一千萬(wàn)單。那么,滴滴團(tuán)隊(duì)是如何支撐起業(yè)務(wù)需求的增速發(fā)展的呢?
李令輝表示他們也是在摸索中前進(jìn),盡量跟上并希望超越業(yè)務(wù)的發(fā)展速度。因?yàn)闃I(yè)務(wù)在發(fā)展,架構(gòu)師不存在說(shuō)讓整件事情的運(yùn)轉(zhuǎn)很好,只能說(shuō)盡其所能讓它沒(méi)有那么差。工作中,他們也摔了很多大坑,但是最核心的一點(diǎn),至少在李老師的工作中,他相信技術(shù)可以改變世界。技術(shù)是移動(dòng)互聯(lián)網(wǎng)最核心的因素,只有技術(shù)才能夠讓整個(gè)社會(huì)效率提高,所以我們可以用技術(shù)手段去解決更多的問(wèn)題。
滴滴發(fā)展中遇到的***的問(wèn)題是什么?
滴滴的優(yōu)勢(shì)是發(fā)展的非???,因?yàn)檎泌s上了移動(dòng)互聯(lián)網(wǎng)時(shí)代的大發(fā)展,滿足了大家出行的需求,并且移動(dòng)支付在滴滴剛誕生的時(shí)候也是處于快速發(fā)展期,雙方互相借力,讓這個(gè)行業(yè)的發(fā)展達(dá)到***的速度。這是滴滴的優(yōu)勢(shì),但是同樣也是問(wèn)題,因?yàn)榘l(fā)展快,一定讓整個(gè)技術(shù)團(tuán)隊(duì)沒(méi)有辦法做好充分的準(zhǔn)備。滴滴技術(shù)團(tuán)隊(duì)像在“戰(zhàn)火中修建城市”,一直在前線聽到戰(zhàn)火,經(jīng)歷每天生活中的報(bào)警此起彼伏,比如大促、營(yíng)銷戰(zhàn),快速的流量爆漲,故障處理等等。雖然過(guò)程不美好,但是從中收獲了很多實(shí)戰(zhàn)經(jīng)驗(yàn)。
對(duì)滴滴公司來(lái)說(shuō),他們?cè)趺从眉軜?gòu)設(shè)計(jì)來(lái)解決這些問(wèn)題?
這就要求架構(gòu)師在快速發(fā)展的時(shí)候,盡量做一些超越當(dāng)前的設(shè)計(jì),做一些前瞻性的預(yù)判,比如說(shuō)滴滴的支付系統(tǒng),業(yè)務(wù)量不是很大的時(shí)候,在只有三個(gè)業(yè)務(wù)線的時(shí)候,他們就設(shè)計(jì)讓它支持多個(gè)業(yè)務(wù)線、多種支付形態(tài)。比如前期只外接了微信支付,現(xiàn)在已經(jīng)接入了微信、支付寶,還有招商銀行。也就是說(shuō)架構(gòu)師的工作不能只顧當(dāng)下,要往前多看幾步發(fā)展,架構(gòu)設(shè)計(jì)方便后期的擴(kuò)容。
像滴滴這樣支付型的互聯(lián)網(wǎng)公司發(fā)展中,基本要經(jīng)過(guò)幾個(gè)架構(gòu)設(shè)計(jì)階段呢?
李令輝認(rèn)為一個(gè)創(chuàng)業(yè)公司從一開始到一個(gè)大體量的階段,很難說(shuō)有幾個(gè)階段,因?yàn)槊刻於疾灰粯?,因?yàn)閹装賯€(gè)功能在開發(fā),它們的產(chǎn)出就會(huì)造成互相影響。但是,我們可以人為的分出一些大的階段,比如在2012年單個(gè)業(yè)務(wù)線的時(shí)候,有出租車,開始是一些很簡(jiǎn)單的應(yīng)用,運(yùn)行在公有云的幾臺(tái)機(jī)器上。后續(xù)業(yè)務(wù)發(fā)展,他們開始拓展自己的機(jī)房,運(yùn)維幾十臺(tái)機(jī)器并做了很多優(yōu)化,到了補(bǔ)貼大戰(zhàn)之后就進(jìn)入全新時(shí)代,流量暴漲,那個(gè)時(shí)代就面臨怎么扛住這么大流量,并且提供穩(wěn)定的服務(wù)了。
他們做完了單個(gè)業(yè)務(wù)線,又面臨多業(yè)務(wù)線出現(xiàn)了。第二個(gè)業(yè)務(wù)線是專車,這就要求實(shí)現(xiàn)一些公共服務(wù)下沉,讓兩個(gè)業(yè)務(wù)線之間看起來(lái)是一個(gè)業(yè)務(wù)線。之后,滴滴又出現(xiàn)了新的業(yè)務(wù)形態(tài),其中專車和出租車業(yè)務(wù)形態(tài)很像,順風(fēng)車不太一樣,后續(xù)還有大巴、試乘試駕,還有一些看起來(lái)不是滴滴的業(yè)務(wù),比如電子地圖,所以架構(gòu)師面臨多業(yè)務(wù)線,在各個(gè)領(lǐng)域都要去挑戰(zhàn),那么他們怎么去支持多業(yè)務(wù)線發(fā)展呢?團(tuán)隊(duì)人數(shù)增加是一方面,如何讓這些團(tuán)隊(duì)更好的工作是更大的問(wèn)題。這些都要求架構(gòu)師要有很好的架構(gòu)設(shè)計(jì),因?yàn)榧軜?gòu)設(shè)計(jì)決定了部門間的合作方式和同事間的協(xié)同工作。
現(xiàn)在滴滴處于快速發(fā)展期,它的未來(lái)發(fā)展目標(biāo)是成為全球***的一站式出行平臺(tái),因?yàn)橹袊?guó)是全球***的市場(chǎng),用戶只需要決定去哪里,不需要考慮付出的成本和舒適度,在怎么出行這個(gè)問(wèn)題上,由滴滴幫大家解決。
李令輝心目中優(yōu)秀的架構(gòu)師是怎樣的?
李老師表示架構(gòu)師是一個(gè)要求很高的職位,一是要求從業(yè)者不僅懂技術(shù),要經(jīng)歷軟件開發(fā)的各個(gè)階段,還要有足夠的經(jīng)驗(yàn)做決策。第二個(gè)是要求架構(gòu)師采用合理的管理方式,因材施教,讓每個(gè)團(tuán)隊(duì)成員都發(fā)揮出***的能力。第三是架構(gòu)師要通盤考慮資源配置,利用現(xiàn)有的各種資源和技術(shù)服務(wù),在***成本的要求下,拿出***的解決方案。這些都是很大的挑戰(zhàn)。
一個(gè)普通的程序員需要經(jīng)過(guò)哪些職場(chǎng)磨煉才能進(jìn)入到架構(gòu)師這個(gè)層級(jí)?
另外,對(duì)于架構(gòu)師自身素養(yǎng)的要求有:一是要有很好的邏輯能力,邏輯能力就是搞清楚事件間的因果關(guān)系。因果關(guān)系往往在現(xiàn)實(shí)生活中和時(shí)序關(guān)系搞混,有可能兩件事情的發(fā)生只不過(guò)恰好在時(shí)間軸上是先后關(guān)系。第二是抽象能力,要求通過(guò)有限的事情,了解所有事情可能的工作方式。第三個(gè)是結(jié)構(gòu)化的快速攝入知識(shí)能力,通過(guò)了解很多知識(shí),看很多的案例、書籍,還有其他人的設(shè)計(jì),快速攝入這些知識(shí)。基于這三點(diǎn),還要加上一些運(yùn)氣的成分,你恰好趕上做這些事情。做到這些的普通程序員,可能就會(huì)更容易成為架構(gòu)師。