從西直門(mén)立交橋談IT架構(gòu)與重構(gòu)_第1頁(yè)
從西直門(mén)立交橋談IT架構(gòu)與重構(gòu)_第2頁(yè)
從西直門(mén)立交橋談IT架構(gòu)與重構(gòu)_第3頁(yè)
從西直門(mén)立交橋談IT架構(gòu)與重構(gòu)_第4頁(yè)
從西直門(mén)立交橋談IT架構(gòu)與重構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、從西直門(mén)立交橋談IT架構(gòu)與重構(gòu)2015年8月13日 PM 20:00 Neeke君從一個(gè)戰(zhàn)場(chǎng)奔赴至另一個(gè)戰(zhàn)場(chǎng),回到辦公室,打開(kāi)電腦,登陸微信,精彩的的微社群分享馬上就要開(kāi)始了!大家好,我是Neeke,中文名高馳濤,PHP開(kāi)發(fā)組成員,現(xiàn)在云智慧擔(dān)任高級(jí)架構(gòu)師,負(fù)責(zé)公司產(chǎn)品的架構(gòu)與研發(fā)工作。目前云智慧旗下有兩款產(chǎn)品,監(jiān)控寶與透視寶。前者主要做骨干網(wǎng)監(jiān)控和IT基礎(chǔ)設(shè)施監(jiān)控,后者主要做面向業(yè)務(wù)、端到端的一體化APM解決方案。附上分享者的個(gè)人簡(jiǎn)介:高馳濤(Neeke),云智慧高級(jí)架構(gòu)師,PHP 開(kāi)發(fā)組成員,同時(shí)也是 PECL/SeasLog 的作者。8 年研發(fā)管理經(jīng)驗(yàn),早期從事大規(guī)模企業(yè)信息化研發(fā)架構(gòu),

2、09 年涉足互聯(lián)網(wǎng)數(shù)字營(yíng)銷領(lǐng)域并深入研究架構(gòu)與性能優(yōu)化。2014 年加入云智慧,致力于 APM 產(chǎn)品的架構(gòu)與研發(fā)。崇尚敏捷,高效,GettingReal。今天主要跟大家分享的,是近幾年來(lái)我在網(wǎng)站、應(yīng)用、信息系統(tǒng)等方面,架構(gòu)與重構(gòu)的一些經(jīng)驗(yàn)與心得。架構(gòu),在普通技術(shù)人員眼里,是一個(gè)貌似很神秘的職業(yè),感覺(jué)就像一群神秘武者,在從事著一些很神秘的工作,用一些貌似很深、很奇的東西,來(lái)讓一些看似腐朽的項(xiàng)目或應(yīng)用,產(chǎn)生一些微妙的變化。而對(duì)于重構(gòu),相對(duì)于架構(gòu)來(lái)說(shuō),則更加的隱忍、更加讓人難以捉摸。讓我們從一張圖片開(kāi)始。沒(méi)錯(cuò),這張很美的夜景,是北京,西直門(mén)立交橋。它是我國(guó)立交橋建筑史上的一座里程碑。但同時(shí),它也是一

3、朵奇葩。大家注意看,左下角向右上角,方向是自西向東的,如果我要從左下,到右下,也就是自西向南行駛,大家覺(jué)得,應(yīng)該怎么走?不賣(mài)關(guān)子,直接看答案吧。綠色的線路是我們期望的行駛路線,而黃色線路,才是現(xiàn)實(shí)中的行駛路線。 也就是我們需要從西向東下橋,然后自南向北上橋,然后自東向西再下橋,然后自北向南,到達(dá)我們的方向。不是北京的司機(jī),想從橋上下來(lái),是很困難的。其實(shí)很多北京司機(jī),也會(huì)在這里暈掉。但是,它卻是一個(gè)非常棒的設(shè)計(jì)。為什么這樣講?OK,我們來(lái)分析一下這座立交橋的用戶,或受眾。很明顯,對(duì)于這座橋,最容易想到的,有兩個(gè)用戶:行駛中的司機(jī)、指揮的交警。對(duì)于行駛中的司機(jī)來(lái)講,這明顯不是一個(gè)優(yōu)秀的設(shè)計(jì):1、不

4、直接、容易暈菜;2、哪個(gè)彎沒(méi)轉(zhuǎn)對(duì),很難再回到原來(lái)的道路;3、不可控制。但對(duì)于交警(或交管部門(mén))來(lái)講,這明顯是一個(gè)非常優(yōu)秀的設(shè)計(jì):1、這里不需要交警,也不需要紅路燈,節(jié)省了資源;2、由于全是單行道,不必掉頭和對(duì)流,降低了事故率。當(dāng)然,立交橋的設(shè)計(jì)者,也就是這次實(shí)例的架構(gòu)者。關(guān)于架構(gòu),這是我想分享的一個(gè)點(diǎn):優(yōu)秀的架構(gòu),大多數(shù)是與業(yè)務(wù)無(wú)關(guān)的,如果從業(yè)務(wù)的角度來(lái)完成一次架構(gòu),很容易失敗。我們?cè)賮?lái)看另外一個(gè)圖片:照片上是一座危樓。(照片上的帥哥不認(rèn)識(shí).)樓與旁邊的院墻,明顯已經(jīng)破敗不堪。用很多大小粗細(xì)不一的木棍或支柱在做支撐。很多網(wǎng)站或應(yīng)用,其實(shí)就像這座危樓,雖然已經(jīng)破敗不堪,但仍然有很多業(yè)務(wù)在里面持續(xù)

5、地服務(wù)著,就像依然有很多居民會(huì)在里面居住。他們無(wú)奈、疲憊、很不開(kāi)心,但有新需求產(chǎn)生時(shí),仍然可能要增加更多的棍子或支柱,來(lái)支撐這座危樓。當(dāng)網(wǎng)站或應(yīng)用,已經(jīng)到了讓開(kāi)發(fā)者、運(yùn)營(yíng)者、運(yùn)維者,感覺(jué)無(wú)奈、疲憊時(shí),重構(gòu)的時(shí)機(jī)到來(lái)了。架構(gòu)師在對(duì)應(yīng)用進(jìn)行重構(gòu)時(shí),首先要考慮哪些點(diǎn)呢?首先,不應(yīng)該是對(duì)網(wǎng)站結(jié)構(gòu)進(jìn)行重新構(gòu)建、把很多功能更優(yōu)秀、更牛逼的組件加入進(jìn)來(lái)嗎?我要分享的是,在進(jìn)行一次重構(gòu)之前,千萬(wàn)不要這么想。腦子不能熱,我們不是在鋼鐵俠,可以一手托起一座城市。我們也不是極客,牛逼、優(yōu)秀的組件,就算能掌控得了,也不能組合得好。在重構(gòu)時(shí),著先要考慮的,是舊樓里的居民。也就是舊應(yīng)用中的業(yè)務(wù)。原因是:1、如果不考慮舊業(yè)

6、務(wù),而進(jìn)行重構(gòu),跟一個(gè)新項(xiàng)目有什么區(qū)別呢?2、舊業(yè)務(wù)在不停地迭代,如果要做新的架構(gòu),什么時(shí)候可以追得上來(lái)業(yè)務(wù)?從我成功進(jìn)行重構(gòu)了幾個(gè)巨型應(yīng)用項(xiàng)目的經(jīng)驗(yàn)來(lái)看,我的做法不一定是正確的,但卻是切切實(shí)實(shí)可行的:1、 這座危樓已經(jīng)有了非常多支撐點(diǎn)(bug、業(yè)務(wù)補(bǔ)丁、流程補(bǔ)?。?,而讓項(xiàng)目的迭代和維護(hù)舉步維艱,那么應(yīng)該先找這些支撐點(diǎn)進(jìn)行分析,把相近的支撐點(diǎn)進(jìn)行分組和整合2、將這些已經(jīng)梳理好的支撐點(diǎn),一組一組進(jìn)行隔離(把業(yè)務(wù)解藕、把連帶風(fēng)險(xiǎn)降低)3、把已經(jīng)進(jìn)行隔離好的支撐點(diǎn),一個(gè)一個(gè)拿來(lái)進(jìn)行深度解析(分清流程、層次、與關(guān)鍵點(diǎn))4、將支持點(diǎn)進(jìn)行規(guī)范化的重構(gòu)與替換(逐個(gè)重構(gòu),最終完成基礎(chǔ)結(jié)構(gòu)的重構(gòu))形象一點(diǎn)講:重

7、造一座優(yōu)秀的建筑,是很完美的,但會(huì)讓所有人都更加疲憊;而將一座危樓的破舊部分作為基石,把它有機(jī)制地打碎重組,最終成為新建筑最牢固的地基,一次重構(gòu)才是成功的。OK, 以上是今晚我的分享,關(guān)于架構(gòu)與重構(gòu)的心得,下面是交流時(shí)間,請(qǐng)大家提問(wèn):互動(dòng)討論:?jiǎn)枺何艺J(rèn)為架構(gòu)必須考慮業(yè)務(wù)?否則很容易出現(xiàn)過(guò)度設(shè)計(jì)或者設(shè)計(jì)缺失答:業(yè)務(wù)是應(yīng)該要考慮的。但也不能過(guò)多了考慮,因?yàn)楹芸赡軙?huì)成為定制,而導(dǎo)致后期的不可擴(kuò)展。問(wèn):個(gè)人覺(jué)得架構(gòu)和業(yè)務(wù)的關(guān)系很大,為什么說(shuō)無(wú)關(guān)?答:我認(rèn)為的是,架構(gòu),是從業(yè)務(wù)開(kāi)始,但最終決定架構(gòu)的,其實(shí)是與業(yè)務(wù)無(wú)關(guān)的部分。問(wèn):軟件開(kāi)發(fā)有句話很著名,就是沒(méi)有銀彈,考慮業(yè)務(wù)是為了彈性和擴(kuò)展,并不會(huì)限制,重

8、構(gòu)的開(kāi)始,可以從82法則開(kāi)始。先找出那20%影響80%的地方答:業(yè)務(wù)總是有著這樣那樣的條件,而這些條件,如果一旦成為架構(gòu)的決定部分,則容易丟失架構(gòu)原本的意圖。問(wèn):在業(yè)務(wù)與非業(yè)務(wù)之間,確實(shí)不好拿捏答:嗯。有過(guò)這樣一句話:架構(gòu)靠業(yè)務(wù),重構(gòu)重功力。我非常認(rèn)同后半句。問(wèn):在架構(gòu)領(lǐng)域里面,其實(shí)是分企業(yè)架構(gòu)和技術(shù)架構(gòu)的。我想你想更多的表達(dá)純粹的技術(shù)架構(gòu)。但是,其實(shí),技術(shù)架構(gòu)還是會(huì)被業(yè)務(wù)影響的,而且有時(shí)候影響很大答:是的。我講的是技術(shù)架構(gòu),不是業(yè)務(wù)架構(gòu)。問(wèn):可否舉個(gè)印象最深的參與的客戶重架構(gòu)的例子,最大挑戰(zhàn),和如何梳理如何解決的答:具體哪個(gè)企業(yè)就不提名了啊。 由于歷史原因(人員、時(shí)間等),一個(gè)項(xiàng)目非??斓爻?/p>

9、功起來(lái)了,而且每年穩(wěn)定盈收3億元以上,但所有研發(fā)人員與運(yùn)維人員早已不堪重負(fù)。代碼結(jié)構(gòu)混亂、耦合過(guò)重,我切實(shí)讀過(guò)其中的一些結(jié)構(gòu)和邏輯,一坨一坨,牽一發(fā)動(dòng)全身,任何一個(gè)小的bug,都會(huì)搞一周才能fix甚至更久。項(xiàng)目到后來(lái)無(wú)法維護(hù),業(yè)務(wù)更不能滿足。 最后,在我的建議和帶領(lǐng)下,研發(fā)部門(mén)組建了重構(gòu)組,由兩名架構(gòu)師、一名安全顧問(wèn)、一名數(shù)據(jù)顧問(wèn)和N名程序員組成。首先梳理項(xiàng)目中的資源藍(lán)圖、結(jié)構(gòu)藍(lán)圖、流程藍(lán)圖,然后選中其中一個(gè)最不起眼的流程,隔離層塊與資源,然后對(duì)它進(jìn)行深度的分析,找到癥結(jié)點(diǎn),并使用新的架構(gòu)進(jìn)行SOA,最終完成了這一個(gè)模塊。然后歷經(jīng)數(shù)個(gè)模塊的重構(gòu)。整個(gè)項(xiàng)目脫胎換骨。問(wèn):一個(gè)架構(gòu)下 有2的n次方可以交叉選擇的方案 如何多變量求解答:在眾多交叉選擇的方案中,如果能選出一個(gè)離業(yè)務(wù)最相近,同時(shí)有隨時(shí)可“掉頭”可能性的方案,那就選擇它; 如果仍然有多個(gè)方案,那么做好充分的準(zhǔn)備,然后選最輕量的那個(gè)方案開(kāi)始快速試錯(cuò)。問(wèn):重構(gòu)時(shí)模式用的多嗎答:嗯,模式不可或缺會(huì)使用,但目的一定要明確。資源、代碼、流程,都會(huì)有很多模式可重用,這些模式的使用者和受益者,都是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論