支付寶程立:解讀架構(gòu)重構(gòu)的三個(gè)階段
原創(chuàng)IT架構(gòu)師經(jīng)常遇到的一個(gè)情況是:隨著企業(yè)業(yè)務(wù)的不斷發(fā)展,組織結(jié)構(gòu)、業(yè)務(wù)需求和數(shù)據(jù)種類的不斷變革,原有的系統(tǒng)架構(gòu)不再適應(yīng)新的需求,必須要做全新的架構(gòu)重建。這是一個(gè)復(fù)雜而系統(tǒng)的工程,和日常開發(fā)工作中的代碼重構(gòu)相比,全局系統(tǒng)架構(gòu)重構(gòu)的難度、成本與風(fēng)險(xiǎn)會(huì)高許多,也缺乏普適的方法和成熟的工具的支持。
作為支付寶的***架構(gòu)師,程立從2004年支付寶建設(shè)伊始就服務(wù)于該團(tuán)隊(duì),如今,支付寶已從最初的不足十人的技術(shù)團(tuán)隊(duì)發(fā)展為擁有1000余技術(shù)人員的大集體,交易筆數(shù)也從每天1萬筆增長(zhǎng)到1000萬筆。這樣的發(fā)展速度和規(guī)模對(duì)于支付寶的系統(tǒng)架構(gòu)提出了很高的要求,幾年間,支付寶系統(tǒng)也經(jīng)過了多次的架構(gòu)重建。
10月23日,在QCon杭州2011全球企業(yè)開發(fā)大會(huì)的《***架構(gòu)師的架構(gòu)觀》專場(chǎng)上,程立與大家分享了他作為***架構(gòu)師的一些心得和經(jīng)驗(yàn)。
架構(gòu)重構(gòu)的三個(gè)階段
程立說,架構(gòu)重構(gòu)通常會(huì)經(jīng)歷三個(gè)階段:“壞味道”驅(qū)動(dòng)的局部架構(gòu)重構(gòu)、基于規(guī)劃驅(qū)動(dòng)的全局架構(gòu)重構(gòu)、和關(guān)于組織的整體的架構(gòu)能力的重構(gòu)。
支付寶現(xiàn)在是以第二階段“基于規(guī)劃驅(qū)動(dòng)的全局架構(gòu)重構(gòu)”為主,但同時(shí)***階段的工作也在進(jìn)行。至于“關(guān)于組織的整體的架構(gòu)能力的重構(gòu)”,難度比較大,仍是他們?cè)谔剿骱团Φ姆较颉?/p>
在演講中,程立首先介紹了識(shí)別“架構(gòu)壞味道”的幾個(gè)判斷標(biāo)準(zhǔn),包括:研發(fā)效率不足,系統(tǒng)不穩(wěn)定,新業(yè)務(wù)難以支持等。他同時(shí)提供了一些判定的細(xì)節(jié)依據(jù)(具體內(nèi)容網(wǎng)友可在51CTO下載頻道下載程立演講的PPT和錄音http://down.51cto.com/data/270838)。
程立表示,在識(shí)別出“壞味道”并決定要做架構(gòu)重構(gòu)的時(shí)候,架構(gòu)師應(yīng)該制定一套機(jī)制,以判定新設(shè)立的架構(gòu)方案是否適用。
不過,盡管有了各種評(píng)判標(biāo)準(zhǔn)和風(fēng)險(xiǎn)控制措施,基于壞味道的局部重構(gòu)仍有它的風(fēng)險(xiǎn),當(dāng)系統(tǒng)需求達(dá)到一定程度之后,就需要來一次全局重構(gòu)。
理解大規(guī)模系統(tǒng),需要更宏觀的架構(gòu)模型。它需要架構(gòu)師有對(duì)業(yè)務(wù)、數(shù)據(jù)、應(yīng)用、技術(shù)的多個(gè)視角,能描述多個(gè)視角之間的關(guān)系,并自頂向下,分而治之。
全局架構(gòu)的運(yùn)作對(duì)架構(gòu)團(tuán)隊(duì)提出了更高的要求。有時(shí),你會(huì)發(fā)現(xiàn)原有的組織結(jié)構(gòu)已經(jīng)不適應(yīng)這種新的工作方法,這時(shí)候,就需要在組織層面進(jìn)行一些改進(jìn),這就是“更深層次的架構(gòu)重構(gòu)—架構(gòu)組織與架構(gòu)過程重構(gòu)”。這一過程通常需要企業(yè)進(jìn)行不斷的嘗試,找到最適合自己的方法。在支付寶,程立介紹說,他們嘗試了多種方式之后,最終確定了“架構(gòu)委員會(huì)”的方法來統(tǒng)籌全局架構(gòu)?!凹軜?gòu)委員會(huì)”里會(huì)分為一個(gè)個(gè)的小項(xiàng)目運(yùn)作,原來的“虛擬架構(gòu)”的方式被弱化了,成為信息交流分享的平臺(tái)。
架構(gòu)師和PM是密切協(xié)作關(guān)系
做架構(gòu)重構(gòu)時(shí)要非常小心,以免數(shù)據(jù)遺失造成損失,這是所有架構(gòu)師都非常明確的一點(diǎn)。然而,有一個(gè)問題卻常常被忽略,那就是對(duì)于數(shù)據(jù)質(zhì)量的處理。有一些數(shù)據(jù)可能并不直接涉及到系統(tǒng)運(yùn)行,但是一旦你要對(duì)系統(tǒng)進(jìn)行深入的數(shù)據(jù)挖掘和數(shù)據(jù)分析,你就會(huì)發(fā)現(xiàn)它們的重要性。由于遺失他們并不會(huì)對(duì)系統(tǒng)運(yùn)行造成影響,有些架構(gòu)師對(duì)此并不重視。從企業(yè)發(fā)展來看,這是很不利的。那么,如何避免這種現(xiàn)象的發(fā)生呢?
在回答51CTO記者提問時(shí),程立表示“數(shù)據(jù)架構(gòu)中要完整的考慮所有的問題,不能說運(yùn)行中的數(shù)據(jù)才是數(shù)據(jù)。要看到全局架構(gòu)組織的重要性,它不是單方面關(guān)注,不是只關(guān)注現(xiàn)在系統(tǒng)的運(yùn)行,必須各個(gè)方面的人都有”。做全局架構(gòu)是非常考驗(yàn)架構(gòu)師“理解力”的一個(gè)工作,需要架構(gòu)團(tuán)隊(duì)集思廣益,并借助各種工具來分析判斷,以免遺漏任何一個(gè)關(guān)鍵點(diǎn)。程立說“我們可能有的重構(gòu),發(fā)現(xiàn)數(shù)據(jù)倉庫的連接中斷了,這邊變更一個(gè)字段那邊沒有同步更新,這是整個(gè)團(tuán)隊(duì)一個(gè)錯(cuò)誤的問題。當(dāng)你發(fā)現(xiàn)這樣問題,你必須加到你架構(gòu)過程里去控制。確保這樣的問題不會(huì)再出現(xiàn)”。
然而,即使你開始的時(shí)候考慮的很周全,隨著企業(yè)業(yè)務(wù)的發(fā)展,新的需求不斷進(jìn)來,可能一段時(shí)間后,你發(fā)現(xiàn)原來的架構(gòu)“又”不夠用了那該怎么辦呢?程立表示,原有架構(gòu)跟不上業(yè)務(wù)需求的發(fā)展,這是經(jīng)常遇到的問題。開始的時(shí)候,我們可能通過不斷的“打補(bǔ)丁”來解決這一問題,而到一定階段之后,“補(bǔ)丁”已經(jīng)不夠用了,那就需要再做一次重構(gòu)。據(jù)程立介紹說,在支付寶,這項(xiàng)工作是被架構(gòu)團(tuán)隊(duì)作為一個(gè)常規(guī)工作存在的,每個(gè)季度,自上而下和自下而上都會(huì)提出一些架構(gòu)評(píng)估的項(xiàng)目。評(píng)價(jià)委員會(huì)會(huì)對(duì)這些提議進(jìn)行評(píng)估,看它的價(jià)值,看它的風(fēng)險(xiǎn),確定優(yōu)先級(jí)。如果通過的話就會(huì)發(fā)起立項(xiàng)?!盎旧衔覀儠?huì)有30%季度資源會(huì)持續(xù)放在這個(gè)事情上去”,程立說。
據(jù)程立介紹,支付寶架構(gòu)團(tuán)隊(duì)實(shí)際上只有五六位專職架構(gòu)師,對(duì)于每一次架構(gòu)建設(shè)的協(xié)作和進(jìn)度掌控,都是有架構(gòu)師團(tuán)隊(duì)和PM來共同完成的?!凹軜?gòu)師和PM是一個(gè)密切協(xié)作關(guān)系”,程立對(duì)51CTO記者說,“大型架構(gòu)有很多PM來支持這個(gè)項(xiàng)目,可能會(huì)有一個(gè)項(xiàng)目群來掌握架構(gòu)的進(jìn)度,整個(gè)項(xiàng)目的進(jìn)度”。針對(duì)有的朋友擔(dān)心架構(gòu)會(huì)不會(huì)與系統(tǒng)底層脫節(jié)的問題,程立說“架構(gòu)和底層不脫節(jié),關(guān)鍵是團(tuán)隊(duì)不能脫節(jié)”。
【編輯推薦】