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