日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
一個(gè)更好的可視化微服務(wù)架構(gòu)的方式

我一直在用 draw.io做一些和UML流程圖,圖表或者曲線圖相關(guān)的事情。它在豐富的功能和用戶的手工控制方面做出了合理的權(quán)衡。

創(chuàng)新互聯(lián)是一家專業(yè)提供仁壽企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為仁壽眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

但是,接下來(lái)我會(huì)告訴你如何自動(dòng)化一些無(wú)聊的鼠標(biāo)點(diǎn)擊;)

避免從一開始就犯錯(cuò)

Daniel Woods的 “Microservices: The Right Way” 演講里其中一張幻燈片

如果它不是這樣的話事情也不會(huì)變得這么有趣。事實(shí)上,這里最好能有一張更清晰地展現(xiàn)組件之間關(guān)系和職責(zé)的圖片。不然的話最終結(jié)果就是像上面看到的這樣 ????

訣竅便是在做的時(shí)候不斷審視它哪個(gè)地方不對(duì),這樣一來(lái)便不太可能做的這么糟了。

在做圖的時(shí)候 —— 你也在同時(shí)給自己一個(gè)整體的感覺(jué),它們將會(huì)怎么交互,問(wèn)題域是什么,上下文,邊界,等等。

"光紙上談兵是沒(méi)用的,長(zhǎng)期的戰(zhàn)略規(guī)劃才是無(wú)價(jià)的。"

― Winston Churchill

行動(dòng)起來(lái)!

假設(shè)我們有一個(gè)簡(jiǎn)單的社交應(yīng)用。當(dāng)然,這是一個(gè)很簡(jiǎn)單的設(shè)定,但是你可以注意到這里面存在許多的關(guān)聯(lián)關(guān)系。

客戶端:前端應(yīng)用和瀏覽器擴(kuò)展。

API網(wǎng)管:認(rèn)證API和主服務(wù)API。

微服務(wù):照片,圖表還有好友這些微服務(wù)。

我花了相當(dāng)長(zhǎng)的時(shí)間來(lái)排列方塊,拖放箭頭還有調(diào)整。而這只是因?yàn)槲蚁胍砸粋€(gè)更可讀的方式來(lái)對(duì)齊它們。

你可以想象排列50個(gè)這樣的方塊有多無(wú)聊嗎?100個(gè)呢?然后我如果再刪除一個(gè)?我敢打賭你會(huì)放棄這件事情,然后選擇回來(lái)繼續(xù)碼代碼。

和 Graphviz 結(jié)緣

我從Terraform獲得了靈感 —— 一個(gè)創(chuàng)建和維護(hù)生產(chǎn)環(huán)境基礎(chǔ)設(shè)施的工具。它支持配置任意和基礎(chǔ)設(shè)施相關(guān)的服務(wù),這里面包含了從AWS EC2的實(shí)例到來(lái)自于50個(gè)云廠商提供的集群和負(fù)載均衡。它還提供了一個(gè)有趣的 terraform graph 命令,可以根據(jù)現(xiàn)有配置生成一個(gè)可視化的圖表展現(xiàn)。

‘terraform graph’命令的示例輸出

因此我決定采用相同的技巧,但是針對(duì)的是一個(gè)更高層面的微服務(wù)架構(gòu)。以下是一個(gè)用DOT編寫的Graphviz配置。

digraph architecture {

rankdir=LR;



subgraph client_side_apps {

  front_end -> {auth_api, my_app_api};

  extension -> {auth_api, my_app_api};



  {rank=same; front_end, extension, auth_api};

}



subgraph api_gateways {

  my_app_api -> {photos_ms, chats_ms, friends_ms};

}



subgraph microservices {

  photos_ms -> {database};

  chats_ms -> {database, cache};

  friends_ms -> {database, facebook_api};

}

} 

你只需要將它渲染成一個(gè).png文件即可。你可以使用在線編輯器或者直接在機(jī)器上渲染。為了不弄臟系統(tǒng),我為此創(chuàng)建了一個(gè)Docker鏡像:

cat file.dot | docker container run --rm -i vladgolubev/dot2png > file.png

通過(guò)執(zhí)行上述這行簡(jiǎn)單代碼,兩分鐘內(nèi)你便可以得到這樣一個(gè)令人驚嘆的輸出結(jié)果!

提示:你可以將代碼復(fù)制粘貼到一個(gè)在線的編輯器: http://dreampuf.github.io/GraphvizOnline/

在微服務(wù)之間添加一個(gè)新的依賴的想法實(shí)現(xiàn)起來(lái)從未如此簡(jiǎn)單。我需要做的只是添加一行新的代碼,隨即 Graphviz 會(huì)很好地將它們組織在一起。

作為最后的點(diǎn)睛之筆,我喜歡添加一些顏色。因此你立馬可以看到下面的效果:

  • 綠色 — node.js
  • 紅色 — api gateway
  • 黃色 — front-end
  • 藍(lán)色 — storage,database
  • 灰色 — 3rd-party API

這并不是最優(yōu)的顏色布局,但是你已經(jīng)知道可以這樣做了 ????

相信我,有大量圖表的情況也很容易做到這一點(diǎn)。

全部代碼放在: https://gist.github.com/vladgo ... 70882

小結(jié)

我在給一張微服務(wù)架構(gòu)圖頻繁添加修改時(shí)遇到了問(wèn)題。每一次變更都要用箭頭手工修補(bǔ)。如今我可以放心實(shí)驗(yàn),看看新的微服務(wù)是如何適配我的系統(tǒng)。當(dāng)然,你還可以做的更好,將它放到版本控制系統(tǒng)里,這樣一來(lái)便可以得到架構(gòu)圖的修改變更歷史!

但是這取決于你。選擇一款最合適的工具吧。Google搜索[微服務(wù)可視化]( https://www.google.com/search?q=microservice visualization)的方案,你將會(huì)被一大票商業(yè)解決方案轟炸的。

可視化的設(shè)計(jì)會(huì)使得檢查和調(diào)試變得更容易。

― Unix的基本哲學(xué)


當(dāng)前標(biāo)題:一個(gè)更好的可視化微服務(wù)架構(gòu)的方式
本文路徑:http://www.dlmjj.cn/article/dpedhpi.html