物理部署圖

一、什么是物理部署圖
部署圖描述的是系統(tǒng)運(yùn)行時(shí)的結(jié)構(gòu),展示了硬件的配置及其軟件如何部署到網(wǎng)絡(luò)結(jié)構(gòu)中。一個(gè)系統(tǒng)模型只有一個(gè)部署圖,部署圖通常用來幫助理解分布式系統(tǒng)。
綜上所述:物理部署圖更多地是以運(yùn)維的視角描繪運(yùn)行時(shí)的系統(tǒng)的網(wǎng)絡(luò)與部署結(jié)構(gòu)。
二、為什么要畫物理部署圖?
一個(gè)好的開發(fā)人員要懂得一定的運(yùn)維知識(shí)。
物理部署圖核心要解決的是:應(yīng)用工程(軟件)怎么和硬件合到一起運(yùn)行。
三、物理部署圖核心元素
1. 節(jié)點(diǎn)(Node)
節(jié)點(diǎn)是存在于運(yùn)行時(shí)的代表計(jì)算機(jī)資源的物理元素,可以是硬件也可以是運(yùn)行于計(jì)算機(jī)上的軟件系統(tǒng):如ECS云服務(wù)器實(shí)例、或Kubernetes的節(jié)點(diǎn)Node。如下圖:

2. 構(gòu)建(Component)
構(gòu)件(component)是系統(tǒng)中遵從同一組接口且提供其實(shí)現(xiàn)的物理的、可替換的部分。每一個(gè)構(gòu)件能實(shí)現(xiàn)一定的功能,為其他構(gòu)件提供使用接口,方便軟件的復(fù)用,使用構(gòu)件最重要的是復(fù)用。個(gè)人將Kubernetes節(jié)點(diǎn)Node中的不同Pod理解為Node節(jié)點(diǎn)的不同構(gòu)件。如下圖所示:

3. 物件(Artifact)
物件是指軟件開發(fā)過程中的產(chǎn)物,包括過程模型(用例圖等)、源代碼、可執(zhí)行程序(如jar包)等。如下圖表示一個(gè)運(yùn)行在節(jié)點(diǎn)實(shí)例中的Kubernetes Pod構(gòu)建中的一個(gè)java可執(zhí)行程序jar包。

4. 連接(Association)
節(jié)點(diǎn)之間的連線表示系統(tǒng)之間進(jìn)行交互的通信路徑,這個(gè)通信路徑成為連接,如下一節(jié)示例圖所示,連接中有網(wǎng)絡(luò)協(xié)議。
5. 框架(Frame)
一個(gè)或多個(gè)節(jié)點(diǎn)可以組成一個(gè)框架,其中節(jié)點(diǎn)也可以包括構(gòu)建與物件等元素。如下圖多個(gè)Kubernetes節(jié)點(diǎn)Node可以組成一個(gè)框架(k8s集群)。

四、物理部署圖示例
