【架构师】解决方案架构师常用的5种类型架构图

news2024/11/27 18:47:57

0. 背景

        在给不同部门的同学讲解系统时,如果用手势解释解决方案,还有很多“这块和这块通过...”在解释复杂的概念时,大部分人都会晕。我们需要一个视觉效果。有人说一个架构图不就行了吗?但架构图不是一个“放之四海而皆准”的解决方案。如果你想把你的想法传达给不同的人,必须制作多个版本的图表。

1. 流程图

流程图是最通用、范围最广的图表。它是一个中到高层次的图表,显示了工作流的所有部分。说明了业务流程中的流动部分。

受众 
       通常是技术性的。它可以用来向架构委员会推销一个想法,或者向开发人员描述业务流程是如何工作的。

思考
      流程图的主要组成部分是包含所有流动部件。标注了服务之间的彼此通信。虽然没有描述这些部分如何相互作用的细节,但是图表显示了这些连接。它显示了数据如何在系统中流动。

2. Serive Diagram 服务关系图(内部、外部网络)

服务关系图说明了来自高层的连通性。它没有显示关于工作流或服务如何工作的任何细节,而是显示了正在发挥作用的主要部分。这是一个用于显示应用程序中使用的内部和外部服务的关系图

受众 
       IT 和网络工程师往往对这种类型的图表最感兴趣。他们关心你和外界的联系。另外,他们需要知道是否需要监控任何内部连接。使用这个图来描述系统是如何工作的,展示主要应用程序之间的连接,没有什么比服务关系图更适合了。

思考
      在构建体系结构服务关系图时,最好列出构成应用程序或生态系统的所有微服务。标记哪些服务彼此通信,并确保区分内部服务和外部服务。有关服务如何工作的详细信息对于此高级关系图是不必要的。

3. Persona Digram 人物角色图(who does what and when

展示体系结构图是如何解决了业务问题的这一点很重要。角色关系图描述了特定工作流中的按时间顺序排列的视图和参与者。这是证明您在开发解决方案时已将业务考虑在内的最佳工具。

受众 
       面向业务的个人和产品所有者是此类图表的预期受众。他们关注角色以及他们如何与系统交互。向他们展示一个关于谁做什么以及什么时候做的图表,这将完美地描述您的系统正在做什么。

思考
      体系结构角色关系图略微涉及到 BPMN 模型。利用泳道来显示工作流中不同的参与者。这种类型的图表往往是低层次的,因为它包含了比其他图表更多的细节。确保对角色、工作流以及业务流程进行标记(如何从一个步骤到另一个步骤)。这些关系图还可以帮助那些刚刚接触某个领域的开发人员,并为他们将要构建的内容提供有洞察力的上下文。

4. The Infrastructure Diagram 基础设施图 (wysiwyg--所见即所得what you see is what you get )

基础结构图是一个“所见即所得”的模型。它代表已实现的所有内容。本质上是一个低层次的图表,它意味着包含服务/应用程序/生态系统中存在的所有内容。此图的目的是显示已经构建的内容以及系统当前的工作方式。它就是构建的应用程序的蓝图。

受众 
        基础结构图的受众各不相同。它可以用来向开发人员展示他们在特定的微服务中必须使用什么。它还可以用来向客户展示用于完成任务的所有资源。

       技术人员将是基础结构图的主要使用者。由于您提供的是一个清单,而不是传达想法或业务流程,因此此图的预期用途仅限于信息。这是为那些喜欢“本质”细节的人准备的。

思考
      在构建体系结构基础结构图时,不要遗漏任何部分。这种类型的图的目标是显示应用程序中的所有内容以及它们是如何连接的。不需要详细说明它是如何工作的,而是将重点放在将应用程序的所有部分都包含在图表中。

5. The Developer Diagram  开发者图(或者转换为详细的时序图--接口级别)

当我们需要进入正题时,Developer Diagram将是我们的最佳选择。它包含了开发人员构建解决方案所需的所有内容。我们的目标是通过查看流程图来回答可能出现的任何问题,并将它们包含在设计中。这是最低层次的图表,目的是设计者不在场也能看懂做什么。应该有人能够阅读这个图表,并确切地知道该怎么做。

受众 
        实现该解决方案的开发人员就是这里的受众。图表中包含的详细程度对于团队以外的人来说是不必要的。有时候过多的细节对于不需要它的观众来说是件坏事。向开发团队之外的人员提供实现细节是完全多余的。它会分散你的注意力,使你无法传达你想要传达的其他信息。

思考
      体系结构开发人员关系图本质上是带有附加细节的流程图。用我们能想到的任何特定的实现细节标记每个部分

6. 小结

     有许多类型的体系结构图。每一个都有其独特的用途,许多都服务于不同的受众。作为解决方案架构师,我们必须能够在向正确的人推销我们的想法时提供正确类型的图表。

    通常,一个版本的图是不够的。当我开始一个新的设计时,我总是从流程图开始。我把我所有的想法都写下来,然后推荐给其他同事讨论,一旦我们就一个解决方案达成一致,我就把这个图转换成一个人物角色图,并把它交给产品或者运营。达成一致后,就可以自由地制作开发者图和服务图。服务图被提供给管理人员,以确保他们对我们正在做的事情有一个高层次的了解。开发者图将会提供给将要实现该解决方案的工程师。

     一旦构建了解决方案,我们就可以更新基础设施关系图以包含新的工作。

     一张图片胜过千言万语,成为一名优秀的解决方案架构师的关键在于能够让人们快速、轻松地理解您的想法。

   通过能够为不同的受众构建不同类型的图表,给人机会给自己机会。

7. 彩蛋

1. Flowchart Maker & Online Diagram Software  绘图工具,它是一个免费的工具,提供了制作漂亮、全面的图表、模型和图表所需的一切。

2. 赚钱的目的是啥? 这里有我自己认同的一些碎碎念。分享下:

  • 穷人多花钱买车和电视,富人多花钱买床垫和枕头。
  • 你越健康,挣钱就越快乐。
  • 唯一能打败自由的东西就是快!
  • 你做的事情越少,你就越能享受你真正想做的事情。” 
  • 一旦你得到了钱,你的目标就变成了清理你的日程表。你从对所有事情都说好到对大多数事情都说不。
  • 你离钱越近,你赚的钱就越多。
  • 做一个旅行者,而不是游客。 
  • 专注于旅程,而不是目的地。
  • 质量大于数量! 永恒大于时尚!
  • 人生苦短,不能一天又一天地过下去,直到死去
  • 外包的琐碎任务。现在你已经有了一些钱,你可以支付给别人打扫你的房子,这样就为你腾出了更多的时间来完成你的下一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、springcloud-eureka服务注册与发现

SpringCloud简介 Spring Cloud 为开发者提供了工具来快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话,集群状态)。分布式系统的协调导致了样板…

04 Vue属性配置

1、ref属性 App.vue代码&#xff1a; <template><div><h1 v-text"msg" ref"myTitle"></h1><button click"showDom">点我输出上方的DOM元素</button><school ref"school" id"sch"/&…

Node.js | Express+MongoDB 实现简易用户管理系统(一)(项目搭建 | RESTful API架构 | 前后端交互)

&#x1f5a5;️ NodeJS专栏&#xff1a;Node.js从入门到精通 &#x1f5a5;️ 博主的前端之路&#xff08;源创征文一等奖作品&#xff09;&#xff1a;前端之行&#xff0c;任重道远&#xff08;来自大三学长的万字自述&#xff09; &#x1f5a5;️ TypeScript知识总结&…

【javaEE】多线程进阶(Part1 锁策略、CAS、synchronized )

目录前言/补充4. 描述一下线程池的执行流程和拒绝策略有哪些&#xff1f;【面试题&#xff01;】一、常见锁策略一&#xff09;乐观锁VS悲观锁二&#xff09;读写锁VS普通互斥锁三&#xff09;重量级锁VS轻量级锁四&#xff09;自旋锁VS挂起等待锁五&#xff09;公平锁VS非公平…

Vue框架背后的故事

文章目录前言Vue萌芽Vue名字的由来因着Vue免试进入MeteorVue逐步完善Taylor推荐VueVue因受质疑发布1.0LinusBorg加入萌生全职做Vue想法Vue在恰到好处的时机出现探索经济来源Serah Drasner加入全职投入Vue建设Vue引入国内Vue受拥国内Vue在决策背景方面的独有优势总结本期推荐前言…

JVM垃圾回收系列之垃圾收集器二

随笔 最近两个星期因为要忙公司项目上线的事情以至于发表的文章会显得碌碌庸流&#xff0c;在此以示歉意 引言 本文将介绍HotSpot中的G1GC 参考书籍&#xff1a;“深入理解Java虚拟机” 个人java知识分享项目——gitee地址 个人java知识分享项目——github地址 G1GC 介…

双向链表的操作

什么是双向链表&#xff1f; 指针域&#xff1a;用于指向当前节点的直接前驱节点&#xff1b; 数据域&#xff1a;用于存储数据元素。 指针域&#xff1a;用于指向当前节点的直接后继节点&#xff1b; typedef struct line{struct line * prior; //指向直接前趋&#xff0c;结…

超级简单的机器学习入门

超级简单的机器学习入门 文章目录超级简单的机器学习入门0.写在前面1.机器学习基本概念2.机器学习算法的类型2.1 监督学习2.2 无监督学习2.3 监督学习和无监督学习的对比2.4 强化学习3.机器学习的三个基本要素3.1 模型3.2 学习准则3.2.1 损失函数3.2.2 欠拟合和过拟合&#xff…

MySQL数据库 || 增删改查操作详解

目录 前言&#xff1a; 插入数据 查询数据 全列查询 指定列查询 带表达式查询 去重查询 查询结果排序 条件查询 比较运算符 逻辑运算符 示例 模糊查询 示例 空值比较 分页查询 修改数据 删除数据 注意&#xff1a; 前言&#xff1a; &#x1f388;增删改查…

Flutter——常用布局

Flutter—常用布局效果图widget 树形图左布局Text评分条提示内容右布局应用Stack布局效果图释示例效果图释电影封面电影信息电影演员电影简介应用效果图 widget 树形图 整个界面由一行组成&#xff0c;分为两列&#xff1b;左列包括电影介绍&#xff0c;由上到下垂直排列&…

java计算机毕业设计ssm+jsp线上授课系统

项目介绍 通篇文章的撰写基础是实际的应用需要&#xff0c;然后在架构系统之前全面复习线上授课的相关知识以及网络提供的技术应用教程&#xff0c;以线上授课的实际应用需要出发&#xff0c;架构系统来改善现线上授课工作流程繁琐等问题。不仅如此以操作者的角度来说&#xf…

【JavaSE】关于数组

文章目录数组的创建与初始化数组的初始化静态初始化动态初始化数组的存储null打印数组的三种方式循环遍历打印foreach打印Arrays.toString()打印数组的练习冒泡排序常用的API数组拷贝Arrays.copyOf()数组排序Arrays.sort()数组的快速初始化Arrays.fill()二维数组数组的创建与初…

mysql之MHA的高可用

一、MHA概述 1.什么是 MHA&#xff1a; MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作…

1分钟完成在线测试部署便捷收集班级同学文件的web管理系统

最近CSDN推出了一个新功能【云IDE】&#xff0c;个人对这个新功能(比赛奖金 )挺感兴趣的&#x1f92d;&#xff0c;于是瞬速地拿之前自己搞的一个便捷收集班级同学文件的web管理系统&#xff08;下面简称该项目为cfile&#xff09;体验了一下&#xff0c;发现功能还是挺好用的&…

Node.js 实战 第1章 欢迎进入Node.js 的世界 1.5 三种主流的Node 程序 1.6 总结

Node.js 实战 文章目录Node.js 实战第1章 欢迎进入Node.js 的世界1.5 三种主流的Node 程序1.5.1 Web 应用程序1.5.2 命令行工具和后台程序1.5.3 桌面程序1.5.4 使用Node 的应用程序1.6 总结第1章 欢迎进入Node.js 的世界 1.5 三种主流的Node 程序 Node 程序主要可以分成三种类…

某网站视频播放花屏解密

某网站视频播放花屏解密样例网址&#xff1a;aHR0cHM6Ly90di5jY3R2LmNvbS8yMDIyLzA5LzMwL1ZJREVnZ0ZRYmZ6NmlMeXZjN0F4d0NlZjIyMDkzMC5zaHRtbA 站内之前也曾经发过相关的问题 1.CCTV视频m3u8视频下载&#xff0c;下载下来时长正确&#xff0c;有声音&#xff0c;但是画面是马…

聚沙成塔【45天玩转uni-app】初探uni-app

文章目录写在前面DCloud当下跨平台开发存在的问题为什么选择uni-app写在最后写在前面 聚沙成塔——每天进步一点点&#xff0c;大家好我是几何心凉&#xff0c;不难发现越来越多的前端招聘JD中都加入了uni-app 这一项&#xff0c;它也已经成为前端开发者不可或缺的一项技能了&…

ROS1可视化利器---Webviz

0. 简介 对于ROS1而言&#xff0c;rqt和plotjuggler是我们最常用的工具&#xff0c;这两个工具&#xff1a;rqt中嵌入了很多有用的小工具&#xff0c;但是它需要播放离线包&#xff0c;没有办法对离线包进行实时的分析。而plotjuggler支持对离线bag包进行分析&#xff0c;但是…

[C语言、C++]数据结构作业:用递归实现走迷宫(打印正确通路即可)

如果是非递归情况 如果当前点&#xff08;方格&#xff09;为出口&#xff0c;则成功退出 &#xff08;否则&#xff09; 如果可继续走(向相邻点试探)&#xff0c;存在某个可前进 的相邻点(分支)则&#xff1a; 1、将当前点保存&#xff0c;以便回退 2、将相邻点作为当前点…

【数据结构】排序3——交换排序(冒泡排序、快速排序)

文章目录交换排序冒泡排序冒泡排序算法算法分析快速排序改进后的快速排序算法算法分析交换排序 【基本思想】 两两比较&#xff0c;如果发生逆序则交换&#xff0c;直到所有记录都排好序为止。 常见的交换排序方法&#xff1a; 冒泡排序T(n)O(n2) 快速排序T(n)O( nlog2n) 冒…