天天看点

如何画架构图之C4模型画法如何画架构图之C4模型画法

如何画架构图之C4模型画法

之前一直看别人画架构图,自己画的很烂,最近看了一点点资料,整理了下,分享出来,希望对别人有帮助,如果有不对的地方欢迎指正。

C4架构图要解答的问题:

1,为哪些用户提供什么服务? 语境图

2,完成这个系统使用了哪些服务?容器图

3,每一个服务是由哪些组件实现的 组件图

4,实现这个组件需要完成什么?类图

语境图:

意图:

​ 我们构建的软件系统是什么?

​ 谁在使用它

​ 如何融入现有的it系统

结构:

​ 中间画一个简单的框图代表你的系统,周围是和它相互作用的系统。不去关注细节。

动机:

​ 使语境更明确

​ 从更高的层次展示了正在向已有的IT环境中添加了什么?

​ 技术和非技术可以当做讨论起点的一种更高层次图标。

​ 牵涉到理解系统间接口的问题时,为你识别可能需要沟通的人提供一个起点。

举例:

如何画架构图之C4模型画法如何画架构图之C4模型画法

容器图

意图:

帮助解答以下问题:

​ 软件系统的整体形态

​ 高层次的技术决策

​ 职责在系统如何分布

​ 容器之间如何相互交流

​ 为了实现特性,作为一个开发者,我需要在哪里写代码

结构:

​ 画一个简单的框图展示你的关键技术选择。

容器:

​ Web服务器

​ 应用服务器

​ 企业服务总线和业务流程编排引擎

​ sql数据库

​ nosql数据库

​ 其他存储系统

​ 文件系统

​ windows服务

​ 独立/控制台应用程序

​ web浏览器

​ cron或其他计划工作容器

容器,指的是组成软件系统的逻辑上的可执行文件或过程。每一个容器都可以指定以下 几项:名称(逻辑名称,如web服务器,数据库),技术选型,职责。

交互:

​ 交互的目的

​ 通信方法

​ 通信方式

​ 协议和端口号

系统边界

​ 需要有系统边界

示例图:

如何画架构图之C4模型画法如何画架构图之C4模型画法

组件图

意图:

解释以下问题:

​ 系统由哪里组件组成

​ 高层次上,系统如何工作是否清晰

​ 所有组件/服务是否在一个容器中?

结构:

​ 当人们被要求绘制架构图时,通常会绘制一张展示组成软件系统的逻辑组件的图。

除了我们一次只想看一个容器中驻留的组件。也就是说组件图就是普遍意义上的架构图。

组件:

一个金融系统风险的解决方案包含的组件:

​ 贸易数据系统导入器

​ 参考数据系统导入器

​ 风险计算器

​ 认证服务

​ 系统驱动者,协调者

​ 审计组件

​ 通知组件

​ 监测服务等

​ 组件是系统的粗粒度结构单元,通过一个或者多个组件实现一个特性。每一个组件,都可以指定:名称,技术,职责。

交互:

​ 交互的目的

​ 通信方式

示例图:

如何画架构图之C4模型画法如何画架构图之C4模型画法

基础设施架构

提供软件架构和基础设置架构之间映射的信息。

继续阅读