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