買了一個(gè)技術(shù)博客烘跺,做了一點(diǎn)筆記:
1.架構(gòu)和框架區(qū)別
2.架構(gòu)的本質(zhì)
解決復(fù)雜度,為了某一個(gè)特定的條件內(nèi)脂崔,降低系統(tǒng)的復(fù)雜度的一個(gè)方案
3.三個(gè)因素的復(fù)雜度
高可用性滤淳,高性能,可擴(kuò)展達(dá)到這三個(gè)條件需要解決復(fù)雜度砌左,而復(fù)雜度來自于需求脖咐,比如當(dāng)前側(cè)重什么?高可用性汇歹,我的手機(jī)客戶端要保證各個(gè)平臺(tái)都可以使用屁擅。
達(dá)到3中的所有條件是不可能的,只能取舍利弊
4.復(fù)雜度其它來源因素(低成本产弹、安全派歌、規(guī)模)
5.架構(gòu)設(shè)計(jì)遵循的幾個(gè)原則
架構(gòu)即決策。架構(gòu)需要面向業(yè)務(wù)需求痰哨,并在各種資源(人胶果、財(cái)、物斤斧、時(shí)早抠、事)約束條件下去做權(quán)衡、取舍撬讽。而決策就會(huì)存在不確定性蕊连。采用一些高屋建瓴的設(shè)計(jì)原則有助于去消除不確定悬垃,去逼近解決問題的最優(yōu)解。
A.合適性原則(結(jié)合實(shí)際咪奖,不要異想天開)盗忱,B.簡單原則(結(jié)構(gòu)和邏輯的復(fù)雜性)酱床,C.演化原則(沒有一步到位的方案)
合適優(yōu)于先進(jìn)>演化優(yōu)于一步到位>簡單優(yōu)于復(fù)雜
為此羊赵,從更宏觀的視角來看,不斷演化是其架構(gòu)發(fā)展的主旋律扇谣,而滿足適合昧捷、追求簡單是架構(gòu)決策的重要依據(jù)。需求驅(qū)動(dòng)技術(shù)的創(chuàng)新演化罐寨;技術(shù)反哺業(yè)務(wù)的發(fā)展升級(jí)靡挥。
6.架構(gòu)設(shè)計(jì)第一步:識(shí)別復(fù)雜度
架構(gòu)設(shè)計(jì)由需求所驅(qū)動(dòng),本質(zhì)目的是為了解決軟件系統(tǒng)的復(fù)雜性鸯绿;為此跋破,我們?cè)谶M(jìn)行架構(gòu)設(shè)計(jì)時(shí),需要以理解需求為前提瓶蝴,首要進(jìn)行系統(tǒng)復(fù)雜性的分析毒返。具體做法是:
(1)構(gòu)建復(fù)雜度的來源清單——高性能、可用性舷手、擴(kuò)展性拧簸、安全、低成本男窟、規(guī)模等盆赤。
(2)結(jié)合需求、技術(shù)歉眷、團(tuán)隊(duì)牺六、資源等對(duì)上述復(fù)雜度逐一分析是否需要?是否關(guān)鍵汗捡?
“高性能”主要從軟件系統(tǒng)未來的TPS淑际、響應(yīng)時(shí)間、服務(wù)器資源利用率等客觀指標(biāo)凉唐,也可以從用戶的主觀感受方面去考慮庸追。
“可用性”主要從服務(wù)不中斷等質(zhì)量屬性,符合行業(yè)政策台囱、國家法規(guī)等方面去考慮淡溯。
“擴(kuò)展性”則主要從功能需求的未來變更幅度等方面去考慮。
(3)按照上述的分析結(jié)論簿训,得到復(fù)雜度按照優(yōu)先級(jí)的排序清單咱娶,越是排在前面的復(fù)雜度米间,就越關(guān)鍵,就越優(yōu)先解決膘侮。
需要特別注意的是:隨著所處的業(yè)務(wù)階段不同屈糊、外部的技術(shù)條件和環(huán)境的不同,得到的復(fù)雜度問題的優(yōu)先級(jí)排序就會(huì)有所不同琼了。一切皆變化逻锐。
8.架構(gòu)設(shè)計(jì)第二步:設(shè)計(jì)備選方案
架構(gòu)設(shè)計(jì)備選方案的工作更多的是從需求、團(tuán)隊(duì)雕薪、技術(shù)昧诱、資源等綜合情況出發(fā),對(duì)主流所袁、成熟的架構(gòu)模式進(jìn)行選擇盏档、組合、調(diào)整燥爷、創(chuàng)新
9.架構(gòu)設(shè)計(jì)第三步: 評(píng)估備選方案
按優(yōu)先級(jí)選擇蜈亩,即架構(gòu)師綜合當(dāng)前的業(yè)務(wù)發(fā)展情況、團(tuán)隊(duì)人員規(guī)模和技能前翎、業(yè)務(wù)發(fā)展預(yù)測等因素稚配,將質(zhì)量屬性按照優(yōu)先級(jí)排序,首先挑選滿足第一優(yōu)先級(jí)的鱼填,如果方案都滿足药有,那就再看第二優(yōu)先級(jí)……以此類推。
10.架構(gòu)設(shè)計(jì)第四步:詳細(xì)設(shè)計(jì)
詳細(xì)方案設(shè)計(jì)就是將方案涉及的關(guān)鍵技術(shù)細(xì)節(jié)給確定下來苹丸。
詳細(xì)設(shè)計(jì)方案階段可能遇到的一種極端情況就是在詳細(xì)設(shè)計(jì)階段發(fā)發(fā)現(xiàn)備選方案不可行愤惰,一般情況下主要的原因是備選方案設(shè)計(jì)時(shí)遺漏了某個(gè)關(guān)鍵技術(shù)點(diǎn)或者關(guān)鍵的質(zhì)量屬性。
架構(gòu)師不但要進(jìn)行備選方案設(shè)計(jì)和選型赘理,還需要對(duì)備選方案的關(guān)鍵細(xì)節(jié)做深入的了解宦言。
通過分步驟,分階段商模,分系統(tǒng)等方式盡量降低方案的復(fù)雜度奠旺。
11.高性能數(shù)據(jù)庫--讀寫分離和分庫分表