版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
林仕鼎:架構(gòu)設(shè)計(jì)與架構(gòu)師發(fā)表于14小時(shí)前|1454次閱讀|來(lái)源CSDN|1條評(píng)論|作者包研架構(gòu)師林仕鼎百度云計(jì)算大會(huì)第五屆云計(jì)算大會(huì)講師秀摘要:他自稱“西二旗跨界架構(gòu)師”,又戴上了百度基礎(chǔ)體系首席架構(gòu)師的封號(hào),喜歡在微博和博客上討論技術(shù)、詩(shī)歌和社會(huì)熱點(diǎn),他是林仕鼎。他在博客中分享了《系統(tǒng)架構(gòu)領(lǐng)域的一些學(xué)習(xí)材料》,不斷對(duì)架構(gòu)師這份工作做著總結(jié)?!綜SDN綜合】林仕鼎自稱是個(gè)“喜歡厘清概念的人”,在他的博客、CSDN舉行的TUP活動(dòng)中以及QCon中一次一次進(jìn)行了剖析。架構(gòu)是什么?代碼=算法+數(shù)據(jù)結(jié)構(gòu)軟件=代碼+架構(gòu)1_ ILi_>JlJ.J-JLIL¥系統(tǒng)=軟件+資源Multiplexing林仕鼎在博客中寫(xiě)道,系統(tǒng)架構(gòu)是一個(gè)工程和研究相結(jié)合的領(lǐng)域,既注重實(shí)踐又依賴?yán)碚撝笇?dǎo),入門容易但精通很難,有時(shí)候還要講點(diǎn)悟性,很具有“偽科學(xué)”的特征。要在此領(lǐng)域進(jìn)階,除了要不斷設(shè)計(jì)并搭建實(shí)際系統(tǒng),也要注意方法論和設(shè)計(jì)理念的學(xué)習(xí)和提煉。對(duì)于工程師來(lái)說(shuō),到一定階段后往往會(huì)遇到成長(zhǎng)瓶頸。要突破此瓶頸,需要在所屬技術(shù)領(lǐng)域更深入學(xué)習(xí),了解本領(lǐng)域的問(wèn)題本質(zhì)、方法論與設(shè)計(jì)理念、發(fā)展歷史等。架構(gòu)是一種組織方式結(jié)構(gòu) 交互方式Model Pattern發(fā)布與部署形態(tài)Library(嵌入、被動(dòng))Runtime(嵌入、主鬲)Platform(獨(dú)立、多實(shí)例)Service(曜一實(shí)例)架構(gòu)(architecture)這個(gè)概念確實(shí)不好定義。首先,它很虛,不像代碼可以用源文件“自證”。其次,它很泛,好像跟什么都相關(guān),開(kāi)發(fā)、測(cè)試、部署甚至運(yùn)營(yíng)等各階段都有其影子。然后,它好像還在變,在計(jì)算機(jī)發(fā)展的各個(gè)階段(Mainframe/PC/Cloud)都感覺(jué)不太一樣。而且,在不同的領(lǐng)域也都有不同的反映。所以,一千個(gè)人心中有一千個(gè)哈姆雷特,一千個(gè)工程帥眼里也能有一千種架構(gòu)。以建筑為例,設(shè)計(jì)師想方案,建筑師出圖紙,工人施工同時(shí)項(xiàng)目管理貫穿始終,那圖紙就是架構(gòu)。如果說(shuō)到烤鴨,骨頭和肉是代碼,鴨架子就是架構(gòu),而過(guò)程管理將其變成烤鴨。如果要更正式點(diǎn)定義,架構(gòu)就是model和pattern,從而把code串成system。而其中最重要的就是designprinciples(設(shè)計(jì)原則),即為什么這個(gè)問(wèn)題要用這個(gè)而非那個(gè)。更文藝點(diǎn),再結(jié)合點(diǎn)美學(xué),也可以叫作designphilosophy(設(shè)計(jì)哲學(xué)或理念)。然后我們來(lái)看什么是model和pattern,這兩個(gè)具體的定義我還沒(méi)想出來(lái)。先說(shuō)一下比較,model偏宏觀,而pattern偏微觀;model重抽象描述,而pattern重具體實(shí)現(xiàn)。比如,你的系統(tǒng)有一個(gè)服務(wù)端和一個(gè)客戶端,那么client/server就是model,而client與server之間的交互方式則是pattern,比如RPC/message、同步/異步,比如用滑動(dòng)窗口來(lái)組織請(qǐng)求與應(yīng)答等等。當(dāng)然,這和系統(tǒng)的尺度有關(guān)。如果你zoomin到服務(wù)端,此時(shí)的model可能就是模塊的組織關(guān)系,而pattern則是調(diào)用方式,比如用functioncall還是event等。存儲(chǔ)?結(jié)構(gòu)?數(shù)據(jù)特點(diǎn)_OFileOMutableorNot0ObjectSize0Thble0DataLayout?訪問(wèn)模式?“實(shí)時(shí)性”0實(shí)時(shí)讀寫(xiě)0Realtimeness0批量寫(xiě)*實(shí)時(shí)讀OFreshnessO流式讀OConsistencyOScan/RangeQuery具體到領(lǐng)域上,我覺(jué)得主要有三類架構(gòu)問(wèn)題(不包括硬件):?軟件架構(gòu),其典型用例是企業(yè)級(jí)軟件,通過(guò)合理的功能抽象,提取出公共組件和通用流程,進(jìn)行最大化的功能復(fù)用(reuse)。我稱其為軟件的可維護(hù)性問(wèn)題。?系統(tǒng)架構(gòu),其巔峰是OS,重點(diǎn)是解決資源的分配與復(fù)用(multiplexing)。?大規(guī)模分布式架構(gòu),主要應(yīng)用在Cloud中,重點(diǎn)是大規(guī)模系統(tǒng)的資源整合、快速交付和運(yùn)維問(wèn)題。那為什么架構(gòu)會(huì)很泛又多變呢?這就牽扯到開(kāi)發(fā)過(guò)程了。我們?cè)僖胍粋€(gè)方法論(methodology)的概念。傳統(tǒng)軟件工程那一套不必說(shuō)了,互聯(lián)網(wǎng)服務(wù)常用迭代式的開(kāi)發(fā)方法(現(xiàn)在又叫敏捷),這就是方法論。我個(gè)人的做法通常有三種:divideandconquer,modelinganditerate,back-of-envelopcalculationandsimulation,按問(wèn)題的規(guī)模、難易程度、熟悉程度、項(xiàng)目的組織方式等等選擇不同做法。存儲(chǔ)和分布式林仕鼎認(rèn)為程序組織非常重要,對(duì)于存儲(chǔ)這部分來(lái)說(shuō),它需要考慮包括結(jié)構(gòu)、數(shù)據(jù)特點(diǎn)、訪問(wèn)模式、接口性質(zhì)四大方面的問(wèn)題。林仕鼎對(duì)這四大方面的問(wèn)題作了詳細(xì)闡述,指出每一個(gè)問(wèn)題都面臨若干選擇,比如結(jié)構(gòu)問(wèn)題就有:File、Object、Table的選擇,然后在同樣一個(gè)結(jié)構(gòu)中,還要面臨是實(shí)時(shí)讀寫(xiě)、批量寫(xiě)實(shí)時(shí)讀之類的訪問(wèn)模式的選擇,接下來(lái)不同訪問(wèn)模式對(duì)系統(tǒng)帶來(lái)的影響,數(shù)據(jù)大小的分布、布局等。林仕鼎表示,正是因?yàn)橛羞@么多因素的影響,導(dǎo)致開(kāi)發(fā)者在設(shè)計(jì)系統(tǒng)時(shí),必需要考慮很多方面。只有在全面掌握這些信息的情況下,才能設(shè)計(jì)出符合實(shí)際要求的系統(tǒng)。存儲(chǔ)帶來(lái)的一些矛盾包括:延遲與吞吐、隨機(jī)與順序、規(guī)模與實(shí)時(shí)性。一般來(lái)說(shuō),系統(tǒng)的規(guī)模越大,實(shí)時(shí)性的保證難度也就越大。要化解矛盾,需要在包括B+tree、Log-based兩類模型建設(shè)的基礎(chǔ)上做到弱化需求、發(fā)掘局部性、組合模型。在談到分布式時(shí),林仕鼎表示其實(shí)分布式的目標(biāo)很簡(jiǎn)單,只有兩個(gè):擴(kuò)容和容錯(cuò)。要實(shí)現(xiàn)這些目標(biāo)需要采用Partition和Replication兩種方法,而協(xié)議設(shè)計(jì)、調(diào)試是難點(diǎn)。服務(wù)架構(gòu)和計(jì)算模型在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),所有系統(tǒng)都會(huì)面臨一個(gè)極限值,即在給定系統(tǒng)資源情況下,所能提供的最大請(qǐng)求數(shù),這里需要做一個(gè)特別設(shè)計(jì),以防請(qǐng)求數(shù)突破極限值。如果沒(méi)有作特別設(shè)計(jì),在極端情況下,吞吐量超過(guò)一個(gè)點(diǎn),那整個(gè)系統(tǒng)將崩潰。
服務(wù)架構(gòu)的目標(biāo)包括系統(tǒng)的高吞吐能力和在極限壓力下的穩(wěn)定輸出。要實(shí)現(xiàn)這兩個(gè)目標(biāo)離不開(kāi)服務(wù)架構(gòu)的兩類模型:屬于基本類型的threadpool+queue和屬于復(fù)雜類型的event-driven。為了保證整個(gè)系統(tǒng)的穩(wěn)定性,還需要注意:減小資源分配粒度并主動(dòng)調(diào)度、FlowControl、負(fù)載反饋,Throttling和延遲截?cái)噙@四個(gè)方面。計(jì)算模型包含很多不同特點(diǎn),一般來(lái)講分為三類:數(shù)據(jù)密集型、計(jì)算密集型、通訊密集型(即傳統(tǒng)HPC)。林仕鼎表示,首先要分析系統(tǒng)的特點(diǎn),找到適合的模型。架構(gòu)師的三板斧林仕鼎認(rèn)為,在很多情況下,在怎么做系統(tǒng)、服務(wù)、數(shù)據(jù)倉(cāng)庫(kù)等問(wèn)題上,開(kāi)發(fā)者面臨的具體問(wèn)題都千差萬(wàn)別。此時(shí),需要建立一些模型,或者有比較好的實(shí)踐原則。作為一個(gè)架構(gòu)師,首先是要非常深入地了解自己的業(yè)務(wù),再根據(jù)業(yè)務(wù)特點(diǎn)運(yùn)用一些現(xiàn)行做法。林仁鼎總結(jié)了“架構(gòu)師三板斧”,作為本次演講總結(jié)與各位分享。架構(gòu)師三板斧?看清需求OTradeoff?無(wú)法滿足所有需求?無(wú)須同等對(duì)待所有需求°發(fā)現(xiàn)根本需求 對(duì)不合理需求sayNOI*塑、抽象、瞥-m但給^end-to-end解決?定義primitives和組合規(guī)則方窒O了解需求隨時(shí)間的變化力茱'選擇方法架構(gòu)師三板斧旨清需求選擇方法MediocreQuick&架構(gòu)師三板斧旨清需求選擇方法MediocreQuick&Dirty?把握節(jié)奏規(guī)劃可達(dá)路徑。定期產(chǎn)出架構(gòu)師三板斧內(nèi)容如下:?看清需求:Tradeoff、無(wú)法滿足所有需求、無(wú)須同等對(duì)待所有需求、發(fā)現(xiàn)根本需求、抽象、降維、了解需求隨時(shí)間的變化、選擇方法、把握節(jié)奏。?
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 團(tuán)干部培訓(xùn)開(kāi)班儀式
- 滅火器實(shí)操培訓(xùn)
- 2.2大氣的受熱過(guò)程和大氣運(yùn)動(dòng)(第1課時(shí))(導(dǎo)學(xué)案)高一地理同步高效課堂(人教版2019必修一)
- 山東省青島市嶗山區(qū)2024-2025學(xué)年度第一學(xué)期期中檢測(cè)七年級(jí)語(yǔ)文試題(膠州、黃島聯(lián)考)(A4生用)
- 部編版2024-2025學(xué)年語(yǔ)文五年級(jí)上冊(cè)第4單元-單元測(cè)試卷(含答案)
- T-YNZYC 0122-2024 綠色藥材 仙茅組培苗生產(chǎn)技術(shù)規(guī)程
- 語(yǔ)文語(yǔ)法總結(jié)
- 水利工程經(jīng)濟(jì)學(xué)講稿
- 個(gè)人收入分配一輪復(fù)習(xí)
- YS/T 1022-2015偏釩酸銨
- GB/T 9574-2001橡膠和塑料軟管及軟管組合件試驗(yàn)壓力、爆破壓力與設(shè)計(jì)工作壓力的比率
- 馬工程《刑法學(xué)(下冊(cè))》教學(xué)課件 第19章 破壞社會(huì)主義市場(chǎng)經(jīng)濟(jì)秩序罪
- GB/T 1740-2007漆膜耐濕熱測(cè)定法
- 校園突發(fā)事件及危機(jī)應(yīng)對(duì)
- 《必修上第六單元》教案【高中語(yǔ)文必修上冊(cè)】
- 醫(yī)療器械輻照滅菌分析課件
- 信托與租賃講稿課件
- 2023年廣東恒健投資控股有限公司校園招聘筆試模擬試題及答案解析
- 高效的時(shí)間管理高效的時(shí)間管理課件
- 幼兒園中班數(shù)學(xué)《有趣的圖形寶寶》課件
評(píng)論
0/150
提交評(píng)論