《架构设计实践》读书笔记
2022-04-26 10:18:39 2 举报
AI智能生成
架构设计实践
作者其他创作
大纲/内容
架构图绘制
本章概述
What
需求到落地需要的10+套图和工件
Why
画图-一眼看出架构师的思路和广度
How
结合点播平台媒资系统,实战、实战、在实战
需求架构视图
CEO:业务战略
利用当今热点技术(分布式、NoSQL、对象存储等)
建立一个数字化、网络化、自动化、高效率的节目制作、采、编、播、存、管、发布一体化系统
打造一个全方位的音视频资料服务的业务平台(业界成为媒平台)
CTO:系统目标
收录系统、转码系统、迁移系统、检索系统等相关渠道的有效整合
解决多媒体数据资料的数字化存储、编目管理、检索查询、素材转码、资料发布等问题
采用新的业务流取代已有工作模式和操作模式,从而满足各种新的业务需要
IT现状
系统上下文
媒资管理系统
外部内容供应商
用例模型
用例图
Excel图
功能需求矩阵
Excel图
非功能需求矩阵
Excel图
数据架构图
数据架构草图
数据架构图
时序图
数据逻辑架构图
实体关系图
运行架构视图
运行部署单元
部署单元
组件
展现单元
执行单元
数据单元
安装单元
C1界面
U1用户界面
C2运行管理
E1运行管理
D1媒资操作记录
C3入库接口
E2入库接口
C4下载接口
E3下载接口
C5存储管理
E4存储管理
D2存储操作记录
C6编目
E5编目
C7检索
E6检索
I1搜索引擎安装
C8入库
E7入库
D4媒资库
C9下载
E8下载
C10转码
E9下载
C11水印
E10水印
C12模糊化
E11模糊化
C13抽样
E12抽样
C14工作流
E12工作流
D5工作流规则
C15容器
I2容器编排安装
C16消息队列
I3消息队列安装
C17索引
E14索引
D3索引
C18在线存储
D6对象存储
C19离线存储
D7归档存储
乐高大楼
实战视频项目
架构设计文档流程
架构决策记录
架构验证评估
RAID
风险分析评估
服务模型
题目1:画一下你设计过系统的模块架构图?
题眼
架构草图、模块关系图、模块交互图
加分项
结合实际案例,现场画图讲述功能架构设计过程
题目2:画一下你设计过的系统的架构部署图?
题眼
ALOM、LOM、POM
加分项
能级和实际案例,现场画图讲述运行性架构设计过程
题目3:你如何组织和记录架构决策的?
题眼
决策派、JAD、ARB、RAID、架构决策工件
加分项
能结合实际案例,描绘决策过程,现场写出决策工件
扩展思考
分享一下你对架构师思维的领悟?再次重新设计你之前选择的项目?和之前两个版本有什么不同之处?
企业架构框架设计
本章概述
What
企业能力、业务架构、信息架构、技术架构、策略差距分析、架构转型
Why
企业的整体架构相对于系统、项目、领域来说更加庞大复杂;打通晋升为企业级架构师之路
How
方法论分析;通信业、快消业、银行业、航空业案例实战;手把手完成架构设计
企业架构方法论
机遇、挑战
架构监管、架构办、架构评审委员会等
企业能力
业务架构
信息架构
技术架构
策略差距
架构转型
企业能力
SCN策略能力网络
华为全球化企业策略
营销:发展中国家+外交+低价->全球化
创新:中英法日俄美,18研发,36创新
本土化:本土雇佣、本土产品、本土纳税
宝洁多品牌企业策略
核心业务:高增长、高利润、高回报
优势:创新制造、零售合作伙伴
重心:创新和管理
实战:华为全球化企业策略
价值观和策略
能力
资源
业务架构-CBM基于模块的业务模型
业务架构关注点
企业的业务和组织是如何分组的?
各企业能力从战略到执行该如何开展?
该专注于哪些优势技术和业务?
实战:银行业务模型
核心目标:业务管理
核心内部分类:财务
核心业务组:网点
客户关系管理:客户
风险控制:风险
信息架构-信息架构优先级分析
信息架构关注点
映射业务架构需求
重新梳理优先级
从CBM业务架构向AOD架构草图风格转换
实战:银行信息架构模型
技术架构-技术架构三角模型
技术架构关注点
信息架构的技术实现
非功能要求
三角形三元素
应用和对外对接
内部数据落地
底层基础架构支撑
实战:银行技术架构三角模型
策略差距分析-架构雷达模型
策略差距关注点
分析维度全面、有针对性
现状和目标对比
找出追踪发力点
实战:宝洁品牌策略差距分析雷达模型
架构转型-架构转型箭头分析
架构转型关注点
延续雷达分析的思路
确定转型路径
制定时间计划
实战:宝洁品牌架构转型箭头分析模型
大型案例:大型航空公司转型实战
需求
链家航空、互联网化业务,冲击航空市场
用户追求低价格、高附加服务,品牌粘性服务
企业开始进行收购合并,增加市场覆盖,降低运维成本
架构方法论
机遇、挑战
架构监管、架构办、架构评审委员会等
企业能力
业务架构
信息架构
技术架构
策略差距
架构转型
主要目标
整合渠道
降低油价影响
中高低市场
定位用户偏好
IT成本控制
廉价航空竞争
策略能力模型
题目1:你的架构设计如何体现公司的整体战略的?
题眼
SCN策略能力网络,CBM模块业务模型
加分项
能结合实际案例,分享从公司战略到IT能力,从信息架构到技术架构的具体实现过程
题目2:你在架构设计中如何设定系统和项目之间的优先级?
题眼
CBM模块业务模型、信息架构优先级分析、策略差距分析、架构转型规划
加分项
能结合实际案例,如何结合战略和业务需求,决定IT系统和架构转型的优先级和投入
题目3:你有没有主导过公司的重大架构转型?整体思路是什么?
题眼
策略差距分析,架构转型规划
加分项
能结合吧实际案例,对比公司策略和目标,分析当前阶段的差距,制定后续执行计划、优先级和项目安排,并分享实际执行结果
扩展题目
梳理贵公司整体架构和严禁计划?
架构设计要素
架构设计目标
在理解架构设计原则、模式、维度的基础上,更进一步
从架构设计角度,真正架起需求到落地的桥梁
实战架构设计步骤,手把手打通任督二脉
为后续架构设计评估、单元化、网络化架构延展做好铺垫
打造匠心
清晰架构设计的输入输出要素
围绕架构立方体,探究架构设计方法论
深入理解组件模型,实现模块的定义、细化和映射
手把手实战10大架构设计图
深入理解运行模型,实现单元分离和架构转换
企业架构入门,领悟SCN、CBM模型
结合实际案例,讲解架构师核心工作制作流程
案例实战和面试分享,指导架构大师之路
本章概述
What
确认架构设计的输入、输出和目标、方法
Why
架构设计要素,贯穿整个架构设计过程
How
理论分析、面试实战
架构设计规划
架构设计如何规划?
架构设计目标
目标:Do the right thing right
桥梁设计设计大师,为家乡设计桥的问题
房屋设计问题,艺术家和匠人区分
匠人又要有自己想法,又要有广泛的可读性
架构设计方法
架构立方体
x的功能、运行
y的应用、技术
z的逻辑、物理
架构设计输出
可以落地的架构和系统
比如作曲家输出钢琴曲手稿
设计文档化、图片化、代码化、系统化
架构设计模式
分而治之
案例:放音乐需要音响,市面没有满足需求的就自己做个,自己做一个音响就把各个模块进行拆分,归类实施
Right thing:不行就继续分
Right:适可而止、自然拼接
迭代式设计
这种方式类似蛇咬尾巴的场景
一个产品的结束就是另一个产品的开始
架构设计输入
需要解决的目标
功能性需求
WH分析法-宠物店
Who、Which
Who人:店长、店员、保姆,Which是动物
What
给猫喂食
给猫洗澡
逗猫
How
放置猫粮
洗澡水
狗叫、逗猫棒
不要关心实现细节,适可而止
不要关心如何洗澡
不要关心如何放粮
不要把关系如何逗猫
做到什么程度
质量
“怎么”分析法
怎么安全、怎么快、怎么稳定、怎么方便怎么牛
运行时质量要求
支持10wanQPS,1万QPS,延时<1s
准备时质量要求
1分钟内可以扩展到10000节点
通常结合功能需求的What来描述
实现的自由度
限制
三角形分析法
青铜
范围
设计的范围,是大桥还是小沟
时间
资源
王者
业务
业务满足需求
技术
技术实现功能
法规
法律法规
中国银监、银行、政监等
欧洲GDPI个人敏感信息管理条例,欧洲用户满足数据
美国PCISS法律法律
现有的手段
资产和技术
架构设计输出
架构规划
关联线甘特图
流形燃尽图
研发设计
10张图来实现
测试方案
测试驱动设计TDD
环形设计1、写一个失败的测试,2、让测试通过,3、重构代码,这三个步骤不断的循环
部署方案
物理架构
服务器、网络、机房、云平台
非功能性实现
容灾、多活、单元化、CDN缓存
发布流程
应用、数据、网络、CI/CD
架构师值DevOps了解部署能力
采购目标
采购和外包
RFP招标需求
POC原型验证案例
招标和产品决策依据
题目1:你在架构设计时的整体思路和步骤?
题眼
架起需求到落地的桥梁,分而治之、迭代、架构立方体
加分项
能结合实际案例,讲透彻需求的理解和获取、立方转换过程(应用、技术;功能、运行;逻辑、物理)
题目2:你在架构设计中童超考虑哪些因素
题眼
架构输入,功能需求、质量、限制、资产和技术
加分项
能结合实际案例,将功能需求的WH分析法,质量的“怎么”分析法、限制三角形分析法讲透彻
题目3:你在架构设计中如何分配工作时间
题眼
架构的过程、输出、组成派/决策派、时间管理
加分项
能结合架构设计输出,分析规划、设计、测试、部署、采购决策的比重,体现架构师广度和深度
扩展题目
分享一个你设计过的复杂的项目?如何确认需求,如何进行架构设计和实现的?后续可以一次为例尝试走完完整的设计过程
架构设计防范论和思维
本章概述
What
需求分析、架构立方体、组件模型、运行模型、资产复用、架构验证、设计误区
Why
这才是架构师的真正一技之长
How
理论分析、流程阐述、工具实战、面试分享
需求分析
架构设计输入的功能性需求、限制、质量
需求贯穿系统生命周期,可以想一下架构V型图
JAD联合应用设计
架构设计实战
实战:系统上下文
实战:用例模型
实战:质量和限制
需求分析实战
工具
OminiGraffle(MAC)/Viso(Win)
Gliffy/ProcessOn
RSA(UML)
PPT/word
手绘
架构设计核心方法论
架构立方体
盲人摸象-都有道理
观点:View
视角:ViewPoint
这么多观点,该如何理解?
需求类角度
模型类视角
架构立方体
x轴的功能、运行
功能
Who、How、What
运行
When、Where
案例:商品信息CRUD(功能)、单元化数据分布(说白了就是分布式部署)(运行)
y轴的应用、技术
应用
Java、Python应用代码实现的功能
技术
业务支撑的基础架构(中间件、数据库、AAA等)
案例:商品中心(应用)、商品库(技术)
z轴的逻辑、物理
逻辑
技术定型、产品未定型
物理
产品定型
案例:OpenID身份认证系统(逻辑)、腾讯认证平台(物理)
案例说明
多视角模型:数据服务
商品中心/用户中心
应用
NoQSL/文档库
技术
CRUD
功能
分布式/最终一致性
运行
Spring Boot+mongoDB
逻辑视角
阿里云ASK+云数据库MongoDB版
物理
需求驱动
功能性模型
功能性需求
用例模型
运行性模型
非功能性需求
质量
非功能性需求
限制
大部分架构设计都是这个思路,如果有经验架构师可以考虑合并
功能性模型
功能性需求
用例模型
非功能性需求
质量
非功能性需求
限制
运行性模型
功能性需求
用例模型
非功能性需求
质量
非功能性需求
限制
功能性模型
模块定义
模块内聚:左手?右手?
左手:模块独立性
右手:内聚性
模块内聚应该使用-左手:模块独立性
模块耦合:左手?右手?
左手:模块独立性
右手:耦合性
模块耦合应该使用-左手:模块独立性
模块划分力度:左手?右手?
左手:架构设计时间成本
右手:粒度
模块划分力度应该使用-左手:架构设计时间成本,首先子域或者系统就可以,如果需要再细一些可以到微服务
整体架构草图AOD
垂直分层AOD
横向分层AOD
模块关系图
模块细化思路
输入:用例模型
中间过程:鲁棒图、实体关系ER图
备注:不是所有系统都需要鲁棒图的,只有系统走不下去的时候才需要
输出:时序图、模块交互图(模块的交互、行为的先后)
模块映射
模块映射思路
Build
Buy
到底是Buy还是Build
运行模型
运行关注点
系统监控、容量规划、可用性、性能、安全性
组织架构、服务治理
采购与外包、软件包和产品选择
单元分解
分而治之的最高境界
展现单元
执行单元
数据单元
安装单元
案例实战:部署单元拆分
运行模型架构转换
运行性模型的思虑
准备好乐高积木(DU部署单元)
摆放到指定位置(地理位置、节点位置)
更换视角,调整积木组合方式(应用、技术、逻辑、物理)
案例说明:架构思想
第一步
定义场景和边界
拜访节点和积木
将节点连接起来
实战案例
应用逻辑运行图
第二步
非功能性增强(质量、限制)
底层支撑平台(中间件等)
运维和管理工具
实战案例
应用+逻辑运行图
第三步
确定软硬件产品选型
确认软硬件规格和数量
关注节点和网络
实战案例
物理运行图
架构资产复用
方法资产
原则
策略
规定
模式
模板
风格
案例说明:架构设计模式
饼干模具
框架
架构框架
架构方法论
工件资产
软件
库
源码
工具
IDE
CICD
架构
参考架构
架构积木
云平台参考架构
用户交互
管理交互
一定要先找找行业架构有没有现有的类似架构
资产的价值
项目加速
闭坑指南
减少意见冲突
架构验证
验证:Doing the right thing right
验证范围
验证做的是否正确
验证与评估过程
JAD联合架构设计
推荐使用
ARB架构评审会
会增加两个部门之间的交互与摩擦
单元测试、集成测试、系统测试、用户验收测试
架构验证工件-RAID
风险:Risk
已知风险是否缓解或规避
发现新风险
假设:Assumption
前提假设是否正确
引入新的假设条件
问题:Issue
影响项目进展的问题
影响产品验收的问题
依赖:Dependency
业务和应用依赖
IT技术依赖
架构设计误区
来找茬
图书管理系统
鲁棒图
也是用例图
时序图
组件交互图/时序图
类图
类跟方法
误区一:只关注功能性需求,忽略非功能需求
误区二:微观设计,架构设计文档信息过度
游戏系统
物理运行部署图
误区三:忽略关注点分离,x/y/z轴观点换乱,视角混杂,物理运行图里面有应用架构东西
九连环
九连环解环图
误区四:冷门技术、过度设计、不适合未来需求变更和架构迭代
大数据架构图
基于Zookeeper的架构集成Hadoop、Solr、Kafka、Mesos等
误区五:专注擅长的技术栈,忽略其他潜在的选项
题目1:你在架构设计中如何通过用例模型分析项目需求?
题眼
需求分析、系统上下文、用例图
加分项
能结合实际案例,现场画图讲述设需求分析过程
题目2:你在架构设计中有哪些主要的工件?他们是如何关联的
题眼
多视角模型、架构立方体转换、功能性/运行性模型
加分项
能结合实际案例,讲述架构设计立方体过程,并现场画出主要工件,题眼设计深度
题目3:你如何组织一个架构验证,来确保设计质量的?
题眼
架构验证、架构输入和输出
加分项
能结合实际案例,讲述架构验证评估过程和输出
扩展题目
分享一下采用架构师思维方式重新设计的复杂项目架构图
0 条评论
下一页