架构本质
架构就在生活中
- 食堂餐盘回收区 - 缓冲
杂乱的回收区,人一多就混乱
有置物架的回收区,能够有序缓冲
- 地铁安检入口 - 限流
人一多的地铁入口会栏杆绕行、分段限流、分批放行
- 空气开关 - 熔断
发生短路、过流空气开关能为了安全自动断电
什么是架构
建筑架构、音乐架构、作战部署、组织架构
架构就是一组人为的结构化的设计
TOGAF - The Open Group Architecture Framework 开放组体系结构框架
业务需求驱动架构的产生
架构支撑业务需求的发展
BA Business Architecture 业务架构
解释:who谁?what干什么?how怎么做?
内容:
- 组织架构 + 业务能力 + 业务流
顶层设计(价值链)、战略设计(领域划分)、战术设计(领域建模)
- “顶层设计”:本义是统筹考虑项目各层次和各要素,追根溯源,统揽全局,在最高层次上寻求问题的解决之道。正所谓“不谋万世者,不足谋一时;不谋全局者,不足谋一域。
- “战略设计”:一种针对系统整体的建模和设计决策。这样的决策影响整个项目,而且必须由团队来制定。在限界上下文之间通信;多说问题,少说方案;业务梳理和抽象;拆解难题,区别对待;
- “战术设计”:创建有效的领域模型;持续抽象,忽略技术细节;领域建模;业务服务识别,API能力识别;实物模型、逻辑模型、数学模型;事件风暴、提取领域对象、寻找聚合、划分限界上下文
宏观到微观(从战略到战术),对问题进行分层和设计,这两个阶段中,忽略一切技术实现细节,防止技术实现细节干扰”领域驱动“。
AA Applications Architecture 应用架构
要那些系统?
应用划分(识别应用、组件分配、拆分优化)、应用集成(依赖分析、交互设计、接口设计)、应用管理(接口治理、系统优化、系统演变)
- 应用架构不是某个应用的架构,不关心应用内部架构,只识别业务需要哪些系统支撑,系统交互是什么?
- 应用架构不关心应用的实现技术
DA Data Architecture 数据架构
用到那些数据?怎么组织?
用到的数据(数据源、数据建模、数据分布、数据资产)
逻辑设计(数据模型、数据流转)、物理设计(数据存储、数据分布)、数据管理(数据标准、数据质量、数据安全)
TA Technology Architecture 技术架构
用到那些技术?
技术选型(技术框架、技术组件、物理选型)、技术设计(系统设计、平台设计、基础设施)、技术管理(技术大图、选型标准、技术案例)
分段式协作设计(从问题触发,逐级抽象,层层深入和细化)
- 战略设计阶段:对业务问题进行宏观分析和设计
- 战术设计阶段:根据战略设计分析结构进行细化和建模
- 技术实现阶段:根据实现需要进行细化分析和涉及(API详细设计、UML设计、数据库设计、运维与部署方案......)
方法论
业务架构:
- 顶层架构BMG、领域架构UDD(测试驱动)/DDD(领域驱动)/4色建模 / 领域分层
应用架构:
- 4C(上下文、容器图、组件图、代码图)
数据架构:DAMA
技术架构:六要素方法论
架构表达:
- 一动一静 业务能力地图;一个表达有什么,一个表达怎么做
- 4+1 (场景视图、逻辑视图、物理视图、处理流程图、开发视图)
- C4(上下文(Context)、容器(Container)、组件(Component)和代码(Code))
系统架构方法论
单体、SOA、MSA、Server Mesh、Server Less