人妻系列无码专区无码中出_精品日产卡一卡二卡麻豆_性做久久久久久久久_亚洲国产精久久久久久久_插我一区二区在线观看

首頁 >

架構(gòu)師王小雪:解析快的打車的高可用架構(gòu)

本文作者:CSDN 2015-10-29
快的打車架構(gòu)師王小雪解析高并發(fā)分布式系統(tǒng)架構(gòu)、實(shí)時(shí)數(shù)據(jù)處理、網(wǎng)絡(luò)通信和Java中間件。講述了從無到有組建的快的打車基礎(chǔ)服務(wù)團(tuán)隊(duì),主持研發(fā)、引進(jìn)了眾多基礎(chǔ)框架和服務(wù),推進(jìn)快的架構(gòu)升級(jí),從穩(wěn)定性、可用性、性能、安全、監(jiān)控多方面體系化的建設(shè)的快的高可用架構(gòu)。

CSDN年度技術(shù)盛宴 “SDCC 2015中國軟件開發(fā)者嘉年華”將于2015年11月19-21日在北京召開。

本期我們采訪的講師是來自快的打車架構(gòu)師王小雪,他在阿里巴巴工作了4年。從無到有組建了快的打車基礎(chǔ)服務(wù)團(tuán)隊(duì),主持研發(fā)、引進(jìn)了眾多基礎(chǔ)框架和服務(wù),推進(jìn)快的架構(gòu)升級(jí),從穩(wěn)定性、可用性、性能、安全、監(jiān)控多方面體系化的建設(shè)了快的高可用架構(gòu)。對(duì)高并發(fā)分布式系統(tǒng)架構(gòu)、實(shí)時(shí)數(shù)據(jù)處理、網(wǎng)絡(luò)通信和Java中間件有比較深厚的經(jīng)驗(yàn)積累。

1,請(qǐng)簡單介紹下您和目前的工作,以及關(guān)注的領(lǐng)域、技術(shù)積累。

王小雪:我畢業(yè)后在深圳工作了4年,然后在阿里巴巴工作了4年,2014年年初到快的打車工作,在快的基礎(chǔ)研發(fā)部門負(fù)責(zé)基礎(chǔ)服務(wù)和中間件的工作,例如分布式消息、服務(wù)、無線開放平臺(tái)、數(shù)據(jù)平臺(tái)等,參與了實(shí)時(shí)計(jì)算平臺(tái)、監(jiān)控、安全、數(shù)據(jù)架構(gòu)方面的建設(shè),還有其他方面的事情,主持了快的多個(gè)大型營銷活動(dòng)的技術(shù)架構(gòu)。

快的和滴滴合并后,按照集團(tuán)的分工,最近一段時(shí)間,原快的基礎(chǔ)研發(fā)部門十幾個(gè)人全部轉(zhuǎn)換了工作方向,基礎(chǔ)研發(fā)部門后面的工作重心是集團(tuán)的大數(shù)據(jù)架構(gòu)、在線數(shù)據(jù)實(shí)時(shí)處理和機(jī)器學(xué)習(xí)。這對(duì)我們來說是一個(gè)新的挑戰(zhàn),所以目前我們的工作重心和學(xué)習(xí)方向就是在這一方面了。

關(guān)于關(guān)注的領(lǐng)域,當(dāng)前我比較關(guān)注實(shí)時(shí)計(jì)算、機(jī)器學(xué)習(xí)、容器與虛擬化這三個(gè)大方向,也算是這個(gè)行業(yè)未來的熱門和趨勢(shì)吧。

關(guān)于技術(shù)的積累,我在阿里巴巴工作之前主要是負(fù)責(zé)企業(yè)系統(tǒng)的,雖然沒有什么太大的流量和性能挑戰(zhàn),但是對(duì)于需求分析、產(chǎn)品思維、擴(kuò)展性設(shè)計(jì)方面的要求還是有些要求的。在阿里巴巴我先后經(jīng)歷了搜索、無線、大流量Web系統(tǒng)等方面的工作,自己也比較喜歡學(xué)習(xí)和思考吧,對(duì)阿里的很多中間件源碼都深入的研究過,在高并發(fā)大流量分布式系統(tǒng)架構(gòu)、Java中間件(例如分布式RPC、消息、通信、容器、模板引擎等)、實(shí)時(shí)/流式計(jì)算和存儲(chǔ)等方面有些積累,對(duì)Storm和HBase有過比較深入的研究。

2, 您對(duì)架構(gòu)是怎樣的理解?以及您對(duì)于架構(gòu)師是如何定義的?

王小雪:架構(gòu)和架構(gòu)師我分開來說:

其實(shí)我很少跟別人談?wù)摷軜?gòu)和架構(gòu)師應(yīng)該怎么做,因?yàn)檫@個(gè)話題比較容易引起口水戰(zhàn),但你問到這個(gè)問題我就說下我的拙見吧。

我想很多人對(duì)架構(gòu)這兩個(gè)的定義是比較模糊的,這里我只說下我的個(gè)人看法,沒有一種架構(gòu)能解決所有問題,但大的指導(dǎo)原則總是在的,我認(rèn)為的架構(gòu)要點(diǎn)很樸素,事實(shí)上每個(gè)展開是一個(gè)很大的話題:

可用性:這是最重要的,系統(tǒng)不可用什么都是浮云。這里要考慮的點(diǎn)很多,例如單點(diǎn)、性能瓶頸、可能的風(fēng)險(xiǎn)、快速發(fā)現(xiàn)故障、快速定位問題原因等

擴(kuò)展性:基于高度的復(fù)用抽象,能夠快速靈活的滿足業(yè)務(wù)需求

伸縮性:系統(tǒng)服務(wù)能力是否可以隨著加機(jī)器得到線性的提升

安全性:不給外部鉆空子的機(jī)會(huì)

技術(shù)棧:在一個(gè)公司里,過多的語言選型或者同一個(gè)領(lǐng)域過多的架構(gòu)選型,不是一件好事,除非是的確有必要,否則會(huì)花巨大的成本在內(nèi)部系統(tǒng)整合上,因?yàn)檎Z言不一樣,很多東西很難復(fù)用,也很難集中力量對(duì)某個(gè)語言生態(tài)有深度的掌握,這是沒有必要的。不是說架構(gòu)師不應(yīng)該多學(xué)習(xí)幾門編程語言,而是要注意公司內(nèi)部多語言開發(fā)的成本與內(nèi)耗,目前快的打車系統(tǒng)以java為主,也在用python、golang、c,但基本都是工具的開發(fā)。

以下是我認(rèn)為架構(gòu)師在設(shè)計(jì)時(shí)應(yīng)該秉承的一些原則吧。

業(yè)務(wù)為王:技術(shù)只是手段,業(yè)務(wù)才是根本,這句話可能對(duì)技術(shù)人有些打擊,但這是事實(shí)。不能為了玩技術(shù)而技術(shù),要解決實(shí)際的問題,直接或間接的產(chǎn)生技術(shù)價(jià)值。

發(fā)散思考:架構(gòu)不是僅解決問題就行。無論大小或簡單復(fù)雜,有些點(diǎn)是必須要考慮的:例如單點(diǎn)、性能瓶頸、可能的風(fēng)險(xiǎn)、快速發(fā)現(xiàn)故障、快速定位問題原因、快速響應(yīng)業(yè)務(wù)需求。

適度設(shè)計(jì):架構(gòu)是不斷迭優(yōu)化的。特別是在互聯(lián)網(wǎng)這個(gè)行業(yè),充滿了很多機(jī)遇,也充滿了很多不確定性,業(yè)務(wù)經(jīng)常需要快速試錯(cuò),發(fā)展速度也相當(dāng)快。不能想當(dāng)然的設(shè)計(jì)一套大而全的方案,期望解決所有的問題,而要隨著業(yè)務(wù)的場景和發(fā)展,秉承一些基本的設(shè)計(jì)原則同時(shí),解決最重要的問題。

3,你認(rèn)為具備哪些素質(zhì)才能稱為是出色的架構(gòu)師?

王小雪:出色的架構(gòu)師 = 一個(gè)優(yōu)秀的程序員+半個(gè)產(chǎn)品經(jīng)理+半個(gè)項(xiàng)目經(jīng)理。

對(duì)應(yīng)的能力:扎實(shí)的技術(shù),較好的產(chǎn)品思維,較好的溝通能力與管理能力。

4,這幾年快的,有哪些技術(shù)架構(gòu)的節(jié)點(diǎn)性事件?能否就各階段從穩(wěn)定性、可用性、性能、安全、監(jiān)控等多方面來闡述快的高可用架構(gòu)。以及作為架構(gòu)師,你的工作重點(diǎn)有哪些?

王小雪:你這是一句話問好幾個(gè)問題啊,而且都挺復(fù)雜,我簡單說下吧,更詳細(xì)的在分享上會(huì)有??斓拇蜍嚨募夹g(shù)大概分為3個(gè)階段:基本功能可用、核心鏈路性能優(yōu)化、體系化的架構(gòu)設(shè)計(jì)??斓拇蜍嚨募夹g(shù)架構(gòu)從2014年4月份開始做體系化的設(shè)計(jì)。

我們將系統(tǒng)按照業(yè)務(wù)域做了拆分,實(shí)現(xiàn)了服務(wù)化的改造,以前快的系統(tǒng)全都在一個(gè)大工程里,核心功能和非核心功能相互影響,穩(wěn)定性不是太好,服務(wù)化后各個(gè)業(yè)務(wù)系統(tǒng)都是獨(dú)立的,可以分別開發(fā)、發(fā)布、擴(kuò)容,系統(tǒng)的穩(wěn)定性和開發(fā)效率得到非常大的提升。

我們?cè)谙到y(tǒng)全局的容量規(guī)劃上也做了很多事情,我們壓測(cè)出線上系統(tǒng)的容量極限,通過監(jiān)控記錄各個(gè)量級(jí)下的系統(tǒng)指標(biāo),能夠比較精確估算我們是否要擴(kuò)容或者縮容,因此面對(duì)大型營銷活動(dòng)或者快速增長的業(yè)務(wù)量,我們可以做到提前規(guī)劃系統(tǒng)的服務(wù)能力。

我們消除了所有的單點(diǎn),仔細(xì)排查了各個(gè)節(jié)點(diǎn)的故障恢復(fù)能力,比如網(wǎng)絡(luò)閃斷重連后,這個(gè)節(jié)點(diǎn)或組建是否能正常工作,review每個(gè)應(yīng)用的JVM配置并且有針對(duì)性的GC優(yōu)化。

我們還在做數(shù)據(jù)層面做了很大的改造,分庫分表、基于binlog的數(shù)據(jù)同步平臺(tái)、基于HBase的實(shí)時(shí)數(shù)據(jù)中心。

大概的說一下。網(wǎng)絡(luò)層面,我們通過阿里云盾防范DDos攻擊。應(yīng)用都做了基本的XSS、CSRF、SQL注入等防范。在無線請(qǐng)求接入方面,我們建設(shè)了無線網(wǎng)關(guān),對(duì)訪問者IP、用戶ID都做了流量限制,對(duì)后端服務(wù)做了容量保護(hù)。我們所有內(nèi)部系統(tǒng)的登錄都是需要真實(shí)的員工手機(jī)驗(yàn)證的。我們建設(shè)了風(fēng)控平臺(tái),打擊作弊行為。

我們收集了全網(wǎng)日志,并且將請(qǐng)求鏈路上的日志通過標(biāo)識(shí)串聯(lián)起來,通過ElasticSearch實(shí)現(xiàn)實(shí)時(shí)索引和查詢,極大的提高了故障定位的效率。

我們建設(shè)了自己的實(shí)時(shí)計(jì)算平臺(tái),在這個(gè)平臺(tái)之上我們又建設(shè)了監(jiān)控平臺(tái),我們能夠分鐘級(jí)別知道每個(gè)系統(tǒng)的運(yùn)行情況和資源開銷,知道當(dāng)前時(shí)間的業(yè)務(wù)數(shù)據(jù),比如當(dāng)前這一分鐘的乘客發(fā)單量、司機(jī)接單量、支付量等等??梢钥吹綒v史數(shù)據(jù),可以觀察選定時(shí)間段的曲線圖。

這個(gè)過程我們整個(gè)基礎(chǔ)研發(fā)團(tuán)隊(duì)做了非常多的努力,大家一起齊心協(xié)力做了很多事情,也取得了不錯(cuò)的成果。這里面我的主要工作是基礎(chǔ)服務(wù)和中間件,因?yàn)樽錾蠈痈脑毂仨氁邢聦拥目煽恐С?,例如NIO通信、文件存儲(chǔ)、分布式協(xié)調(diào)服務(wù)、服務(wù)框架、分布式消息、配置中心、數(shù)據(jù)同步、無線網(wǎng)關(guān)等,推動(dòng)這些基礎(chǔ)服務(wù)在業(yè)務(wù)系統(tǒng)落地;另外也協(xié)同CTO與基礎(chǔ)研發(fā)負(fù)責(zé)人一起制定公司的技術(shù)規(guī)劃,參與其他基礎(chǔ)研發(fā)工作的設(shè)計(jì),參與一些應(yīng)用架構(gòu)的優(yōu)化。

5,可否請(qǐng)您簡單介紹一下快的整體架構(gòu)的一些架構(gòu)特點(diǎn)?

王小雪:高頻的地理位置計(jì)算;大量的TCP長連接通信;大量的數(shù)據(jù)存儲(chǔ);系統(tǒng)實(shí)時(shí)性要求很高,能夠緩存的場景很少,必須快速定位故障;時(shí)刻要面臨刷單、攻擊等問題。

6,快的成立已來,業(yè)務(wù)高速發(fā)展的同時(shí),研發(fā)團(tuán)隊(duì)規(guī)模也是有了驚人的變化,作為從無到有的團(tuán)隊(duì)組建者,最大的挑戰(zhàn)是什么?以及,現(xiàn)在您所負(fù)責(zé)的研發(fā)團(tuán)隊(duì)人員搭配是怎樣的?

王小雪:最大的挑戰(zhàn)倒不是解決系統(tǒng)問題,而是尋找合適的人才。

基礎(chǔ)研發(fā)分為:中間件和基礎(chǔ)服務(wù),業(yè)務(wù)架構(gòu),數(shù)據(jù)架構(gòu),監(jiān)控,運(yùn)維。雖然做了很多事情,實(shí)際上快的基礎(chǔ)研發(fā)團(tuán)隊(duì)人很少,整個(gè)基礎(chǔ)研發(fā)團(tuán)隊(duì)到現(xiàn)在包括運(yùn)維只有20個(gè)人,但是大部分人是去年年底和今年剛來的,這其中包括7個(gè)我們校招過來的應(yīng)屆生。去年最辛苦的時(shí)候只有10個(gè)人:基礎(chǔ)研發(fā)總監(jiān),中間件和基礎(chǔ)服務(wù)2個(gè)人,業(yè)務(wù)架構(gòu)1個(gè)人,數(shù)據(jù)架構(gòu)2個(gè)人(包括DBA),監(jiān)控1個(gè)人,IT和運(yùn)維一共3個(gè)人,我負(fù)責(zé)中間件和基礎(chǔ)服務(wù),監(jiān)控原來也在我這里,后來我實(shí)在忙不過來就剝離出去了,我現(xiàn)在下面也只有5個(gè)人。去年的時(shí)候我們非常的辛苦,凌晨下班非常正常,經(jīng)常通宵,大家雖然分工明確,但是互相幫忙互相鼓勵(lì),結(jié)下了非常深厚的兄弟情誼。

7,如今,您又是如何安排自己的新技術(shù)學(xué)習(xí)、研發(fā)團(tuán)隊(duì)管理、編程、生活等時(shí)間的?

王小雪:我一直都在寫代碼,不是為了練手,就是實(shí)實(shí)在在的編碼,做一些核心設(shè)計(jì)和review方案。簡單說吧,白天編碼和團(tuán)隊(duì)同學(xué)溝通,事實(shí)上也談不上團(tuán)隊(duì)管理,大家都是非??孔V和成熟的工程師,自驅(qū)性很強(qiáng),我只是關(guān)注大家的工作和學(xué)習(xí)方向就行,當(dāng)然也兼做一些后勤的工作:)比如給團(tuán)隊(duì)同學(xué)介紹女朋友??;晚上學(xué)習(xí)自己感興趣的東西;生活就在周末。這樣的安排我自己覺得還行。

8,您在本次SDCC 2015大會(huì)上想分享的話題是?

王小雪:快的打車架構(gòu)實(shí)踐。在快的從小到大的過程中,我們走過的路,我們踩過的坑,我們的笑,我們的哭,我愿意真誠的分享給大家,給所有在創(chuàng)業(yè)路上奮斗的同行。

9,您最期待在SDCC 2015大會(huì)上看到哪些內(nèi)容?

王小雪:容器和虛擬化;在線學(xué)習(xí);創(chuàng)業(yè)公司的干貨實(shí)踐。

架構(gòu)師應(yīng)該戰(zhàn)斗在一線。不是要事無巨細(xì)的解決所有問題,而是要保持對(duì)業(yè)務(wù)的敏感度,否則居高堂之上坐而論道,你怎么能設(shè)計(jì)一個(gè)接地氣的方案去解決問題呢?

架構(gòu)師應(yīng)該理解業(yè)務(wù)。架構(gòu)師是業(yè)務(wù)和技術(shù)的紐帶,對(duì)業(yè)務(wù)充分了解才能解決業(yè)務(wù)痛點(diǎn)。

架構(gòu)師應(yīng)該做好權(quán)衡。架構(gòu)設(shè)計(jì)事實(shí)上也是一種平衡的藝術(shù),沒有固定的模式判定哪個(gè)方案是最優(yōu)解,很多事情都具有兩面性,利弊的取舍得看問題場景和業(yè)務(wù)的發(fā)展現(xiàn)狀。

由CSDN舉辦的 SDCC 2015中國軟件開發(fā)者嘉年華將于11月19-21日在北京舉行,本次大會(huì)涵蓋:新型數(shù)據(jù)庫、編程語言、工具與平臺(tái)、產(chǎn)品與設(shè)計(jì)、前端開發(fā)、算法、微信開發(fā)、架構(gòu)實(shí)踐、安全等九大分 論壇,屆時(shí)國外知名講師將分享所在領(lǐng)域的最佳實(shí)踐。


版權(quán)聲明
執(zhí)惠本著「干貨、深度、角度、客觀」的原則發(fā)布行業(yè)深度文章。如果您想第一時(shí)間獲取旅游大消費(fèi)行業(yè)重量級(jí)文章或與執(zhí)惠互動(dòng),請(qǐng)?jiān)谖⑿殴娞?hào)中搜索「執(zhí)惠」并添加關(guān)注。歡迎投稿,共同推動(dòng)中國旅游大消費(fèi)產(chǎn)業(yè)鏈升級(jí)。投稿或?qū)で髨?bào)道請(qǐng)發(fā)郵件至執(zhí)惠編輯部郵箱zjz@tripvivid.com,審閱通過后文章將以最快速度發(fā)布并會(huì)附上您的姓名及單位。執(zhí)惠發(fā)布的文章僅代表作者個(gè)人看法,不代表執(zhí)惠觀點(diǎn)。關(guān)于投融資信息,執(zhí)惠旅游會(huì)盡量核實(shí),不為投融資行為做任何背書。執(zhí)惠尊重行業(yè)規(guī)范,轉(zhuǎn)載都注明作者和來源,特別提醒,如果文章轉(zhuǎn)載涉及版權(quán)問題,請(qǐng)您及時(shí)和我們聯(lián)系刪除。執(zhí)惠的原創(chuàng)文章亦歡迎轉(zhuǎn)載,但請(qǐng)務(wù)必注明作者和「來源:執(zhí)惠」,任何不尊重原創(chuàng)的行為都將受到嚴(yán)厲追責(zé)。
本文來源CSDN,版權(quán)歸原作者所有。
發(fā)表評(píng)論
后發(fā)表評(píng)論
最新文章
查看更多
# 熱搜詞 #

新用戶登錄后自動(dòng)創(chuàng)建賬號(hào)

登錄表示你已閱讀并同意《執(zhí)惠用戶協(xié)議》 注冊(cè)

找回密碼

注冊(cè)賬號(hào)