作家
登录

一个更好的可视化微服务架构的方式

作者: 来源: 2017-07-10 15:58:22 阅读 我要评论

然则这取决于你。选择一款最合适的对象吧。Google搜刮[微办事可视化]( https://www.google.com/search?q=microservice visualization)的筹划,你将会被一大年夜票贸易解决筹划耗┞法的。

是以我决定采取雷同的技能,然则针对的是一个更高层面的微办事架构。以下是一个用DOT编写的Graphviz设备。

我一向在用 draw.io做一些和UML流程图,图表或者曲线图相干的工作。它在丰富的功能和用户的手工控制方面做出了合理的衡量。

然则,接下来我会告诉你若何主动化一些无聊的鼠标点击;)

避免大年夜一开端就犯错

"光空言无补是没用的,经久的┞方略筹划才是无价的。"

Daniel Woods的 “Microservices: The Right Way” 演讲里个一一张幻灯片

如不雅它不是如许的话工作也不会变得这么竽暌剐趣。事实上,这里最好能有一张更清楚地展示组件之间关系和职责的图片。不然的话最终结不雅就是像膳绫擎看到的┞封样 ;)

诀窍就是在做的时刻赓续核阅它哪个处所纰谬,如许一来便不太可能做的┞封么糟了。

― Winston Churchill

行动起来!

假设我们有一个简单的社交应用。当然,这是一个很简单的设定,然则你可以留意到这琅绫擎存在很多的接洽关系关系。

客户端:前端应用和浏览器扩大。

API网管:认证API和主办事API。

我花了相当长的时光来分列方块,拖放箭头还有调剂。而这只是因为我想要以一个更可读的方法来对齐它们。

你可以想象分列50个如许的方块有多无聊吗?100个呢?然后我如不雅再删除一个?我敢打赌你会放弃这件工作,然后选择回来持续码代码。

和 Graphviz 结缘

我大年夜Terraform获得了灵感 —— 一个创建和保护临盆情况基本举措措施的对象。它支撑设备随便率性和基本举措措施相干的办事,这琅绫擎包含了大年夜AWS EC2的实例到来自于50个云厂商供给的集群和负载均衡。它还供给了一个有趣的 terraform graph 敕令,可以根据现有设备生成一个可视化的图表展示。

‘terraform graph’敕令的示例输出

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};}} 

你只须要将它衬着成一个.png文件即可。你可以应用在线编辑器或者直接在机械上衬着。为了不弄脏体系,我为此创建了一个Docker镜像:

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

经由过程履行上述这内行单代码,两分钟内你便可以获得如许一个令人赞叹的输出结不雅!

提示:你可以将代码复制粘贴到一个在线的编辑器: http://dreampuf.github.io/GraphvizOnline/

在微办事之间添加一个新的依附的设法主意实现起来大年夜未如斯简单。我须要做的只是添加一行新的代码,随即 Graphviz 会很好地将它们组织在一路。

作为最后的点睛之笔,我爱好添加一些色彩。是以你立马可以看到下面的效不雅:

  • 绿色 — node.js
  • 红色 — api gateway
  • 黄色 — front-end
  • 蓝色 — storage,database
  • 灰色 — 3rd-party API

这并不是最优的色彩构造,然则你已经知道可以如许做了 ;)

在做图的时刻 —— 你也在同时给本身一个整体的感到,它们将会怎么交互,问题域是什么,高低文,界线,等等。

微办事:照片,图表还道士友这些微办事。

信赖我,有大年夜量图表的情况也很轻易做到这一点。

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

小结

我在给一张微办事架构图频繁添加修改时碰到了问题。每一次变革都要用箭头手工修补。如今我可以宁神实验,看看新的微办事是若何适配我的体系。当然,你还可以做的更好,将它放到版本控制体系里,如许一来便可以获得架构图的修改变革汗青!

可视化的设计会使得检查和调试变得更轻易。

― Unix的根本哲学

【编辑推荐】

  1. DDD CQRS架构和传统架构的优缺点比较
  2. 成功备战微办事的5个预备步调
  3. Flink 道理与实现:架构和拓扑概览
  4. 技巧干货|如安在微办事架构下构建高效的运维治理平台?
  5. 在微办事中应用范畴事宜
【义务编辑:张子龙 TEL:(010)68476606】

  推荐阅读

  四个Python库,实现超实用的命令行功能

在二部曲系列文┞仿的第二部分关于巨大年夜的敕令行 UI 终端应用文┞仿中,我们摸索了“提示对象包”,“敕令行界面创建对象包“,“Pygments”和“>>>详细阅读


本文标题:一个更好的可视化微服务架构的方式

地址:http://www.17bianji.com/lsqh/36116.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)