架構(gòu)與重構(gòu)云智慧首席架構(gòu)師干貨分享_第1頁
架構(gòu)與重構(gòu)云智慧首席架構(gòu)師干貨分享_第2頁
架構(gòu)與重構(gòu)云智慧首席架構(gòu)師干貨分享_第3頁
架構(gòu)與重構(gòu)云智慧首席架構(gòu)師干貨分享_第4頁
架構(gòu)與重構(gòu)云智慧首席架構(gòu)師干貨分享_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、云智慧首席架構(gòu)師-從西直門立交橋談IT架構(gòu)與重構(gòu)2015年8月13日 PM 20:00 Neeke君從一個戰(zhàn)場奔赴至另一個戰(zhàn)場,回到辦公室,打開電腦,登陸微信,精彩的的微社群分享馬上就要開始了!大家好,我是Neeke,中文名高馳濤,PHP開發(fā)組成員,現(xiàn)在云智慧擔(dān)任高級架構(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解決方案。附上分享者的個人簡介:高馳濤(Neeke),云智慧高級架構(gòu)師,PHP 開發(fā)組成員,同時也是 PECL/SeasLog 的作者。8 年研發(fā)管理經(jīng)驗,早期從事大規(guī)模企

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論