版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、從西直門立交橋談IT架構(gòu)與重構(gòu)2015年8月13日 PM 20:00 Neeke君從一個戰(zhàn)場奔赴至另一個戰(zhàn)場,回到辦公室,打開電腦,登陸微信,精彩的的微社群分享馬上就要開始了!大家好,我是Neeke,中文名高馳濤,PHP開發(fā)組成員,現(xiàn)在云智慧擔任高級架構(gòu)師,負責公司產(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ī)模企業(yè)信息化研發(fā)架構(gòu),
2、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)實中的行駛路線。 也就是我們需要從西向東下橋,然后自南向北上橋,然后自東向西再下橋,然后自北向南,到達我們的方向。不是北京的司機,想從橋上下來,是很困難的。其實很多北京司機,也會在這里暈掉。但是,它卻是一個非常棒的設(shè)計。為什么這樣講?OK,我們來分析一下這座立交橋的用戶,或受眾。很明顯,對于這座橋,最容易想到的,有兩個用戶:行駛中的司機、指揮的交警。對于行駛中的司機來講,這明顯不是一個優(yōu)秀的設(shè)計:1、不
4、直接、容易暈菜;2、哪個彎沒轉(zhuǎn)對,很難再回到原來的道路;3、不可控制。但對于交警(或交管部門)來講,這明顯是一個非常優(yōu)秀的設(shè)計:1、這里不需要交警,也不需要紅路燈,節(jié)省了資源;2、由于全是單行道,不必掉頭和對流,降低了事故率。當然,立交橋的設(shè)計者,也就是這次實例的架構(gòu)者。關(guān)于架構(gòu),這是我想分享的一個點:優(yōu)秀的架構(gòu),大多數(shù)是與業(yè)務(wù)無關(guān)的,如果從業(yè)務(wù)的角度來完成一次架構(gòu),很容易失敗。我們再來看另外一個圖片:照片上是一座危樓。(照片上的帥哥不認識.)樓與旁邊的院墻,明顯已經(jīng)破敗不堪。用很多大小粗細不一的木棍或支柱在做支撐。很多網(wǎng)站或應(yīng)用,其實就像這座危樓,雖然已經(jīng)破敗不堪,但仍然有很多業(yè)務(wù)在里面持續(xù)
5、地服務(wù)著,就像依然有很多居民會在里面居住。他們無奈、疲憊、很不開心,但有新需求產(chǎn)生時,仍然可能要增加更多的棍子或支柱,來支撐這座危樓。當網(wǎng)站或應(yīng)用,已經(jīng)到了讓開發(fā)者、運營者、運維者,感覺無奈、疲憊時,重構(gòu)的時機到來了。架構(gòu)師在對應(yīng)用進行重構(gòu)時,首先要考慮哪些點呢?首先,不應(yīng)該是對網(wǎng)站結(jié)構(gòu)進行重新構(gòu)建、把很多功能更優(yōu)秀、更牛逼的組件加入進來嗎?我要分享的是,在進行一次重構(gòu)之前,千萬不要這么想。腦子不能熱,我們不是在鋼鐵俠,可以一手托起一座城市。我們也不是極客,牛逼、優(yōu)秀的組件,就算能掌控得了,也不能組合得好。在重構(gòu)時,著先要考慮的,是舊樓里的居民。也就是舊應(yīng)用中的業(yè)務(wù)。原因是:1、如果不考慮舊業(yè)
6、務(wù),而進行重構(gòu),跟一個新項目有什么區(qū)別呢?2、舊業(yè)務(wù)在不停地迭代,如果要做新的架構(gòu),什么時候可以追得上來業(yè)務(wù)?從我成功進行重構(gòu)了幾個巨型應(yīng)用項目的經(jīng)驗來看,我的做法不一定是正確的,但卻是切切實實可行的:1、 這座危樓已經(jīng)有了非常多支撐點(bug、業(yè)務(wù)補丁、流程補丁),而讓項目的迭代和維護舉步維艱,那么應(yīng)該先找這些支撐點進行分析,把相近的支撐點進行分組和整合2、將這些已經(jīng)梳理好的支撐點,一組一組進行隔離(把業(yè)務(wù)解藕、把連帶風險降低)3、把已經(jīng)進行隔離好的支撐點,一個一個拿來進行深度解析(分清流程、層次、與關(guān)鍵點)4、將支持點進行規(guī)范化的重構(gòu)與替換(逐個重構(gòu),最終完成基礎(chǔ)結(jié)構(gòu)的重構(gòu))形象一點講:重
7、造一座優(yōu)秀的建筑,是很完美的,但會讓所有人都更加疲憊;而將一座危樓的破舊部分作為基石,把它有機制地打碎重組,最終成為新建筑最牢固的地基,一次重構(gòu)才是成功的。OK, 以上是今晚我的分享,關(guān)于架構(gòu)與重構(gòu)的心得,下面是交流時間,請大家提問:互動討論:問:我認為架構(gòu)必須考慮業(yè)務(wù)?否則很容易出現(xiàn)過度設(shè)計或者設(shè)計缺失答:業(yè)務(wù)是應(yīng)該要考慮的。但也不能過多了考慮,因為很可能會成為定制,而導(dǎo)致后期的不可擴展。問:個人覺得架構(gòu)和業(yè)務(wù)的關(guān)系很大,為什么說無關(guān)?答:我認為的是,架構(gòu),是從業(yè)務(wù)開始,但最終決定架構(gòu)的,其實是與業(yè)務(wù)無關(guān)的部分。問:軟件開發(fā)有句話很著名,就是沒有銀彈,考慮業(yè)務(wù)是為了彈性和擴展,并不會限制,重
8、構(gòu)的開始,可以從82法則開始。先找出那20%影響80%的地方答:業(yè)務(wù)總是有著這樣那樣的條件,而這些條件,如果一旦成為架構(gòu)的決定部分,則容易丟失架構(gòu)原本的意圖。問:在業(yè)務(wù)與非業(yè)務(wù)之間,確實不好拿捏答:嗯。有過這樣一句話:架構(gòu)靠業(yè)務(wù),重構(gòu)重功力。我非常認同后半句。問:在架構(gòu)領(lǐng)域里面,其實是分企業(yè)架構(gòu)和技術(shù)架構(gòu)的。我想你想更多的表達純粹的技術(shù)架構(gòu)。但是,其實,技術(shù)架構(gòu)還是會被業(yè)務(wù)影響的,而且有時候影響很大答:是的。我講的是技術(shù)架構(gòu),不是業(yè)務(wù)架構(gòu)。問:可否舉個印象最深的參與的客戶重架構(gòu)的例子,最大挑戰(zhàn),和如何梳理如何解決的答:具體哪個企業(yè)就不提名了啊。 由于歷史原因(人員、時間等),一個項目非??斓爻?/p>
9、功起來了,而且每年穩(wěn)定盈收3億元以上,但所有研發(fā)人員與運維人員早已不堪重負。代碼結(jié)構(gòu)混亂、耦合過重,我切實讀過其中的一些結(jié)構(gòu)和邏輯,一坨一坨,牽一發(fā)動全身,任何一個小的bug,都會搞一周才能fix甚至更久。項目到后來無法維護,業(yè)務(wù)更不能滿足。 最后,在我的建議和帶領(lǐng)下,研發(fā)部門組建了重構(gòu)組,由兩名架構(gòu)師、一名安全顧問、一名數(shù)據(jù)顧問和N名程序員組成。首先梳理項目中的資源藍圖、結(jié)構(gòu)藍圖、流程藍圖,然后選中其中一個最不起眼的流程,隔離層塊與資源,然后對它進行深度的分析,找到癥結(jié)點,并使用新的架構(gòu)進行SOA,最終完成了這一個模塊。然后歷經(jīng)數(shù)個模塊的重構(gòu)。整個項目脫胎換骨。問:一個架構(gòu)下 有2的n次方可以交叉選擇的方案 如何多變量求解答:在眾多交叉選擇的方案中,如果能選出一個離業(yè)務(wù)最相近,同時有隨時可“掉頭”可能性的方案,那就選擇它; 如果仍然有多個方案,那么做好充分的準備,然后選最輕量的那個方案開始快速試錯。問:重構(gòu)時模式用的多嗎答:嗯,模式不可或缺會使用,但目的一定要明確。資源、代碼、流程,都會有很多模式可重用,這些模式的使用者和受益者,都是
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度假離婚案件律師服務(wù)及風險規(guī)避合同3篇
- 2025年度健康體檢中心運營管理合同3篇
- 2025年度新能源汽車出租車租賃運營合同3篇
- 2025年度數(shù)據(jù)中心建設(shè)承包協(xié)議書模板4篇
- 2024疫情期間國際貿(mào)易信用保險合同
- 2024網(wǎng)絡(luò)安全審查與合規(guī)合同
- 2025年中國多媒體顯微成像儀行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年文明單位創(chuàng)建工作報告
- 2025年度個人信用卡透支合同模板(全新修訂)4篇
- 2025年度個人稅務(wù)籌劃與申報服務(wù)合同6篇
- 2025年病案編碼員資格證試題庫(含答案)
- 企業(yè)財務(wù)三年戰(zhàn)略規(guī)劃
- 提高膿毒性休克患者1h集束化措施落實率
- 山東省濟南市天橋區(qū)2024-2025學年八年級數(shù)學上學期期中考試試題
- 主播mcn合同模板
- 新疆2024年中考數(shù)學試卷(含答案)
- 2024測繪個人年終工作總結(jié)
- DB11 637-2015 房屋結(jié)構(gòu)綜合安全性鑒定標準
- 制造業(yè)生產(chǎn)流程作業(yè)指導(dǎo)書
- DB34∕T 4444-2023 企業(yè)信息化系統(tǒng)上云評估服務(wù)規(guī)范
- 福建中閩能源股份有限公司招聘筆試題庫2024
評論
0/150
提交評論