iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
Software Development

語言只是工具,遊走在需求和技術間的腦力激盪之旅系列 第 29

Day 29 - 俯視整個解決方案的架構評估(套件與靈感發想篇)

  • 分享至 

  • xImage
  •  

昨天提到透過現成的工具設計流程圖或架構圖,而今天的內容會分享使用純程式語言的方式繪製,並且也會分享在發想階段到推導出可以應用的架構靈感。

diagrams

這個套件是個開源專案,並且可以至Github的專案連結檢視基本資訊的介紹,而程式語言是使用Python所以在學習上較方便,接著就從指引文件來逐步了解圖片產出前的過程。

備註 : 需留意除了安裝python的套件外,另外要下載Graphviz的繪製函示庫。

It uses Graphviz to render the diagram, so you need to install Graphviz to use diagrams. After installing graphviz (or already have it), install the diagrams.

Quick start的區塊參照下述的範例程式碼,接著執行當前的py檔案後就會產生一張架構圖。

# diagram.py
from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB

with Diagram("Web Service", show=False):
    ELB("lb") >> EC2("web") >> RDS("userdb")
python 當前的檔案名稱.py

Imgur

然後從上圖可以看到使用了ELB、EC2、RDS的功能圖片,這些都是歸類在Nodes的區塊內,然後從分類的區塊可以看到像是雲端的服務(GCP、AWS、Azure),或者跟硬體和軟體有關聯的都可以使用。
Imgur

至於要怎麼使用以Azure的服務為例要使用AppServices的Nodes,接著import AppServices的class之後,記得要將架構圖的關聯加入剛剛定義的AppServices,在輸出的結果就可以看到流程更新後的結果。
Imgur
Imgur
Imgur

另外如果是需要做分群或者是雙向關係的架構圖,則可以參考Edges的範例程式碼,在輸出的結果可以看到藍色的區塊為cluster,並且指向的顏色也可以因應設計的情況調整。
Imgur

總結上述的應用,如果對於程式語言較成熟並且腦中有一個構想圖的時候,這個套件可以快速產生想要的流程或是架構圖,並且應用的節點有重覆的情況下圖片引用的時候也很迅速。

架構圖的靈感可以從哪裡挖掘

在考量解決方案的過程中,有一部分會先去檢視已經有提出的架構當作參考的基礎,例如流覽 Azure 架構AWS 架構中心,再來就是可以去看看一些開源專案或者是技術新知,有一些提出來的觀點或者是新的工具和服務,都是潛在整個解決方案的一塊拼圖。

當累積了多個層面的知識(點)之後,搭配不斷的思考(線)就可以有越來越多的組合(面)從腦海浮現出來


上一篇
Day 28 - 俯視整個解決方案的架構評估(不同層面的架構師以及繪製流程與架構的工具)
下一篇
Day 30 - 系列文章的總結與心得
系列文
語言只是工具,遊走在需求和技術間的腦力激盪之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言