4A 架构之业务架构、数据架构、应用架构和技术架构
软件研发最核心的4个架构,业务架构、数据架构、应用架构和技术架构。可以通过画4个房子图来表示。
业务架构是目标和灵魂:“为什么做?” 它定义了企业的业务流程和目标,是所有其他架构的根本依据。
数据架构是核心资产:“用什么?” 它定义了业务运作中需要使用的核心数据实体和它们之间的关系。
应用架构是功能实现:“做什么?” 它将业务功能映射为一个个具体的应用系统,并定义系统间的交互。
技术架构是基础支撑:“如何实现?” 它提供了应用和数据运行所需的软硬件基础设施和技术选型。
简单比喻:
业务架构 like 剧本:讲述了整个故事(业务)的人物、情节(流程)和结局(目标)。
数据架构 like 人物关系图:定义了故事中所有角色(数据实体)及其关系。
应用架构 like 分镜头脚本:将剧本分解为一个个具体的场景(应用模块)和转场(接口)。
技术架构 like 拍摄团队与器材:提供了导演、演员、摄像机、灯光、场地(服务器、网络、中间件等)来最终完成拍摄。
一、业务架构
1. 定义:
业务架构是企业的蓝图,它定义了企业的战略、组织结构、业务流程、角色职责以及与外部实体的互动关系。它关注的是业务价值流,而不关心具体的技术实现。
2. 核心关注点:
客户是谁?价值主张是什么?
核心业务流程有哪些?(例如:从营销到收款、从采购到付款)
企业的组织架构如何?各个业务单元的角色和职责是什么?
业务的核心能力是什么?
有哪些关键的商业目标和KPI?
3. 主要产出物:
业务能力地图
价值链图
业务流程模型(BPMN)
组织结构图
业务用例
二、数据架构
1. 定义:
数据架构描述了组织如何管理数据资源,包括数据的收集、存储、整合、移动、分布、加工和使用。它确保了数据能够作为统一的、可访问的资产服务于业务。
2. 核心关注点:
有哪些关键的数据实体?(例如:客户、产品、订单)
数据如何被创建、由谁创建?
数据如何存储?(数据模型、数据库选型)
数据如何流动和集成?(ETL、数据管道)
数据治理、安全和质量标准是什么?
3. 主要产出物:
概念数据模型
逻辑数据模型
物理数据模型
数据流图
数据字典/元数据管理
数据治理框架
三、应用架构
1. 定义:
应用架构是描述具体信息系统如何结构化以及它们之间如何交互的蓝图。它将业务架构中定义的能力和流程,映射到具体的应用系统和功能模块上。
2. 核心关注点:
需要哪些应用系统来支撑业务流程?(例如:CRM, ERP, 电商平台)
各个应用系统的职责和边界是什么?(单一职责原则)
应用系统之间如何通信和集成?(API、消息队列)
系统的功能模块如何划分?
应用的生命周期和部署模式是怎样的?
3. 主要产出物:
应用系统清单
应用功能矩阵(业务能力与应用的映射)
系统上下文图
应用架构图(显示系统间关系)
接口/API目录
四、技术架构
1. 定义:
技术架构描述了支持应用和数据运行所需的技术基础设施。它包含了所有的硬件、软件、网络组件以及它们之间的关系,是应用架构的物理实现基础。
2. 核心关注点:
使用什么类型的服务器(物理机、虚拟机、容器)?
使用哪些中间件和运行时环境?(如:Nginx, Tomcat, .NET Core, Kafka)
网络拓扑结构是怎样的?
如何保证系统的安全、高可用、可扩展和可维护性?
选择公有云、私有云还是混合云?
3. 主要产出物:
技术架构图
技术选型清单
基础设施部署图
网络拓扑图
安全架构与策略
四大架构的分层与协作关系
这四种架构构成了一个清晰的、从业务到技术的转换链条:
战略层 → 概念层 → 逻辑层 → 物理层
业务架构(战略/概念层):
输入:企业战略、市场环境。
输出:驱动数据架构和应用架构的设计。例如,一个“在线下单”业务流程,需要“订单”、“客户”等数据实体,并需要一个“订单管理系统”应用。
数据架构(概念/逻辑层):
输入:业务架构中识别的业务实体和流程。
输出:为应用架构提供数据模型,指导应用如何组织和处理数据。同时,它定义了技术架构中数据存储组件的选型要求(如需要关系型数据库还是NoSQL)。
应用架构(逻辑层):
输入:业务架构的功能需求和数据架构的数据模型。
输出:定义了需要构建的软件组件,并作为技术架构设计的直接输入。例如,应用架构要求高并发,技术架构就需要考虑负载均衡和缓存。
技术架构(物理层):
输入:应用架构的系统需求和数据架构的数据管理需求。
输出:最终可部署、可运行的软硬件环境,是所有上层架构的物理承载。
总结
架构类型 | 核心问题 | 关注层面 | 主要产出 |
---|---|---|---|
业务架构 | 为什么做? 业务目标和流程 | 战略、业务 | 业务流程、能力地图 |
数据架构 | 用什么? 数据资产与关系 | 概念、逻辑 | 数据模型、数据流图 |
应用架构 | 做什么? 系统功能与交互 | 逻辑、系统 | 系统上下文图、应用框图 |
技术架构 | 如何实现? 技术选型与部署 | 物理、基础设施 | 部署图、技术选型清单 |