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