在我們做系統(tǒng)架構(gòu)設(shè)計(jì)時(shí),如何快速的向外界傳達(dá)我們的設(shè)計(jì)思路。4+1試圖適合我們厘清思路、表達(dá)自己的想法。在我們匯報(bào),爭取領(lǐng)導(dǎo)層的認(rèn)同支持更適合用架構(gòu)圖來表述我們的觀點(diǎn)。架構(gòu)圖包括總體架構(gòu)、邏輯架構(gòu)、應(yīng)用架構(gòu)、技術(shù)架構(gòu)、數(shù)據(jù)架構(gòu)、功能架構(gòu)、網(wǎng)絡(luò)架構(gòu)、運(yùn)行架構(gòu)等等。
一、整體架構(gòu)圖
總體架構(gòu)基本上把下面所有的架構(gòu)都體現(xiàn)了。下面所有的架構(gòu)也都是要與總體架構(gòu)保持一致。
總體架構(gòu)需要說明幾件事情:
整個(gè)系統(tǒng)的硬件設(shè)置是怎么回事?
數(shù)據(jù)大概是從哪里來,怎么采集、存儲、處理、交換的?
做了哪些功能抽象,以便于支撐上層的應(yīng)用?
提供哪些業(yè)務(wù)應(yīng)用?管理、控制等功能有哪些?
終端用戶怎么訪問和使用這些應(yīng)用?
該系統(tǒng)與外部系統(tǒng)是怎么進(jìn)行對接的?
如何保障整個(gè)系統(tǒng)的安全、可靠、高質(zhì)量的建設(shè)?
安防系統(tǒng)架構(gòu)圖
二、邏輯架構(gòu)
邏輯架構(gòu)就是整體架構(gòu)去掉各種保障、底層的硬件基礎(chǔ)等非軟件開發(fā)邏輯核心的內(nèi)容。所以有很多簡單的項(xiàng)目壓根就不寫邏輯架構(gòu),直接用總體架構(gòu)就行了。復(fù)雜的,就要把上面總體架構(gòu)中間分層的邏輯給寫清楚一些。
關(guān)注的是功能,包含用戶直接可見的功能,還有系統(tǒng)中隱含的功能?;蛘吒油ㄋ讈砻枋?,邏輯架構(gòu)更偏向我們?nèi)粘K斫獾摹胺謱印?,把一個(gè)項(xiàng)目分為“表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層”這樣經(jīng)典的“三層架構(gòu)”。
邏輯架構(gòu)設(shè)計(jì)的目的就是為了告訴讀者,整個(gè)系統(tǒng)是怎么產(chǎn)生左右的。所謂的系統(tǒng)架構(gòu),主要說的就是這部分。早期的單體架構(gòu)、后面的各種分層架構(gòu)、微服務(wù)、服務(wù)網(wǎng)格等,說的都是在這里進(jìn)行設(shè)計(jì)。
在設(shè)計(jì)的時(shí)候,會(huì)用到很多種設(shè)計(jì)模式,比如你看到有一個(gè)應(yīng)用支撐層/服務(wù)層之類的,這就是做了一個(gè)MVC,把業(yè)務(wù)邏輯和用戶前端分離。而所有的邏輯架構(gòu)都有數(shù)據(jù)層,這是最早的MVP,即數(shù)據(jù)、用戶視圖和處理邏輯分離。當(dāng)然,系統(tǒng)越復(fù)雜,架構(gòu)圖就越復(fù)雜。
上汽通用B2C邏輯架構(gòu)
三、業(yè)務(wù)架構(gòu)
企業(yè)架構(gòu)框架白皮書中把架構(gòu)分為了四個(gè)層次,分別是業(yè)務(wù)、應(yīng)用、數(shù)據(jù)、技術(shù)。只有梳理清楚了業(yè)務(wù),才能指導(dǎo)應(yīng)用、數(shù)據(jù)和技術(shù)架構(gòu)。業(yè)務(wù)架構(gòu)的分析過程是復(fù)雜的,最終的產(chǎn)出可能也不僅僅只是一張架構(gòu)圖。還有更細(xì)節(jié)的流程、建模等產(chǎn)出物。一張好的架構(gòu)圖大概是:分層次、分模塊講清楚了各個(gè)產(chǎn)品模塊之間的關(guān)系。
四、應(yīng)用架構(gòu)
就是應(yīng)用太豐富了,需要整理整理。內(nèi)部有哪些應(yīng)用,怎么對外部提供服務(wù)。很多項(xiàng)目都沒有這個(gè),因?yàn)閼?yīng)用比較少,不值得多廢點(diǎn)人工單獨(dú)寫。用以闡述細(xì)化邏輯架構(gòu)。
互聯(lián)網(wǎng)醫(yī)院-應(yīng)用架構(gòu)
五、技術(shù)架構(gòu)
技術(shù)架構(gòu)要干啥也就很清楚了,就是每一層,我們都用什么組件、什么技術(shù)解決什么問題。要求是:精準(zhǔn)、明確、簡練。但大體上的結(jié)構(gòu)是類似的,從最底層的存儲,到最上層的接口。右邊是一些通用的運(yùn)維體系或者支撐服務(wù)。體現(xiàn)出來依賴的SDK、第三方類庫、中間件。
云技術(shù)架構(gòu)
現(xiàn)在更多的情況,是多個(gè)系統(tǒng)模塊,組成一個(gè)大的分布式系統(tǒng),或者現(xiàn)存多個(gè)系統(tǒng)的情況下,需要進(jìn)行集成開發(fā)一個(gè)產(chǎn)品。
這樣的話,技術(shù)架構(gòu),就是高層級的技術(shù)架構(gòu)了,不僅僅體現(xiàn)的是技術(shù)組件了,而是更高層級的一些模塊,甚至規(guī)范。
六、數(shù)據(jù)架構(gòu)
數(shù)據(jù)架構(gòu)其實(shí)就是從數(shù)據(jù)側(cè)描述數(shù)據(jù)怎么來、怎么存、怎么加工、怎么使用。從數(shù)據(jù)源開始,數(shù)據(jù)通過哪些方式集成過來;集成到數(shù)倉之后,都存在哪里,數(shù)倉怎么分層,每一層都干啥;在數(shù)據(jù)集市中又怎么存、怎么管;到數(shù)據(jù)應(yīng)用層又提供哪些應(yīng)用。上面所有的一切,都用什么技術(shù),什么組件,解決什么問題。系統(tǒng)需要什么樣的數(shù)據(jù)、如何存儲、如何進(jìn)行數(shù)據(jù)架構(gòu)設(shè)計(jì)。
七、部署架構(gòu)
部署架構(gòu)也叫網(wǎng)絡(luò)架構(gòu),就是底層服務(wù)器、網(wǎng)路的設(shè)計(jì),提供網(wǎng)絡(luò)安全、服務(wù)可靠性的設(shè)計(jì)。再簡單一些理解,就是你這些應(yīng)用、數(shù)據(jù)庫都放在那臺服務(wù)器上,這些服務(wù)器都在哪個(gè)ip端,怎么進(jìn)行訪問。要具體體現(xiàn):機(jī)房;服務(wù)器個(gè)數(shù)、配置;網(wǎng)絡(luò)分區(qū)關(guān)系;體現(xiàn)數(shù)據(jù)庫、高可用;體現(xiàn)負(fù)載均衡;
八、功能架構(gòu)
就是前臺頁面的功能菜單的目錄結(jié)構(gòu)。你怎么組織系統(tǒng)的所有功能,給用戶提供相應(yīng)的服務(wù)。
支付系統(tǒng)架構(gòu)
九、運(yùn)行架構(gòu)
運(yùn)行架構(gòu)其實(shí)就是軟件內(nèi)部,這些系統(tǒng)內(nèi)部是怎么運(yùn)轉(zhuǎn)的,一般會(huì)畫很多時(shí)序圖、狀態(tài)圖、活動(dòng)圖。一般不單獨(dú)畫一個(gè)運(yùn)行架構(gòu),而是在概要和詳細(xì)設(shè)計(jì)里畫。
k8s運(yùn)行時(shí)序圖
-
架構(gòu)
+關(guān)注
關(guān)注
1文章
501瀏覽量
25374 -
系統(tǒng)架構(gòu)
+關(guān)注
關(guān)注
1文章
67瀏覽量
23489
原文標(biāo)題:如何畫技術(shù)架構(gòu)圖2
文章出處:【微信號:談思實(shí)驗(yàn)室,微信公眾號:談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論