一、数据库选型
前文有提到能力地图重要的作用是辅助用户理解,指导前台接入。其中需要存储各种清单信息,更重要的是清单信息之间的各种关系。这当然可以用比较传统的基于E-R建模的关系型数据库。但比较麻烦的是不只一层关系。例如业务能力a->b,b->c,c->d,不确定有多少层依赖。而图数据库很好的解决了这个问题,便于分析与展示。
能力地图是业务中台的产品化包装(类似于一般实物产品的使用说明书与包装纸箱),但不应该介入实际的业务交易流程。所以可靠性要求不会太高。这些清单信息及其关系不会太多,性能要求也不高。
Neo4j图数据库还有一个非常好的好处是不需要预先定义schema,例如在刚开始的时候并不清楚定义哪些属性才能清晰的描述业务能力。neo4j可以在需要的时候直接添加属性,而不需要像mysql那样修改表结构。
二、四种基础数据结构
1.标签
业务线、渠道、能力中心、业务能力、应用系统、应用程序、微服务接口
2. 节点
上述各种标签的实例。
业务线可以有:基金超市、黄金、股票、信托、私募、保险代理......
能力中心可以有:账务中心、交易中心、营销中心、投研中心......
这些节点都可以有一个name名字,并且在其上建立索引及唯一约束。
3. 属性
简要描述、详细描述、业务属主、IT属主......
4. 关系
组成/包含(contain)、依赖(depend)、支持(support)......
组成/包含关系,构成了一棵树,不同的能力中心或应用系统构成了多棵树。
依赖/支持关系,构成了一个图。
业务线包含了哪些业务/产品
能力中心包含了哪些业务能力
业务能力依赖了哪些业务能力
应用系统包含了哪些应用程序
应用程序依赖了哪些应用程序
应用程序支持了哪些业务能力
三、依赖的其它基础设施
1. CMDB
一般公司IT基础设施都会有CMDB,其中记录着所有的服务器、防火墙、负载均衡、数据库、等相关信息。能力地图可以从CMDB中获取应用程序所依赖的一些基础设施信息。便于关联分析。
2. 服务注册中心
基于微服务架构风格的系统体系一般都是会有一个服务注册中心,基于此服务注册中心,可以根据其上的服务提供者信息、服务消费者信息,构建出应用程序与应用程序的依赖关系。