架构训练营3:架构设计流程和架构师职责
架构师相关职责:
架构师是业务和技术之间的桥梁,架构师不能只顾技术,不懂业务,架构师很容易两头不讨好
三个核心能力:
判断:1业务理解力2.技术能力3.沟通能力
拆解:1技术深度2.技术宽度3.技术广度
宽度与广度 不是一会事,你熟悉Redis跟memcache 是宽度,了解前端与运维是广度。
取舍:1设计理念2.说服能力3.决断能力
这块综合能力要求高,得有理有据,有能力有担当。
确定性思维:消除模糊、不确定的说法和信息,例如“大量用户”应该明确为“XX万用户”
创造性思维:通过排列组合创新,得到更多的方案。
系统性思维:系统思考,有逻辑和推导过程,例如“为什么不用Native而要用H5”
影响系统结构的设计是架构设计,方案设计不影响系统的架构设计。
Rank:改变系统分层的设计属于架构设计,例如将支付宝提升到和淘宝同级别
Role:修改(增删改拆合)角色属于架构设计,例如微服务拆分
Relation:修改角色关系属于架构设计,例如用消息队列代替接口访问
Rule:修改角色之间的运作规则属于架构设计,例如MongoDB将选举算法从Bully改为Raft
架构设计流程:
架构设计前期(开会)
主要任务:
澄清不确定性1.明确利益干系人的诉求;2. 消除冲突的诉求;3. 诉求优先级排序
识别复杂性1.识别核心场景;2.明确或者预估质量需求;3.识别复杂
工作模式:1.与业务方交流2.与利益干系人交流(就是相关人开会)
输出 :1.总体业务架构图2.核心场景流程
架构设计中期:(架构小组开会和写架构设计文档)
主要任务:
设计备选方案1.头脑风暴;2. 筛选方案;3. 设计备选方案;
选择备选方案1.360度评估;2. 明确选择标准;3. 选择最终方案,并汇报
工作模式:1.架构小组讨论2.架构小组写文档3.向利益干系人汇报
输出:1.备选方案2.方案评估结论3 方案汇报结论
架构设计后期:写文档和开会宣讲!
主要任务:
细化架构:按照4R架构定义来细化架构
完善架构:可维护性、可测试性、可运维性、成本、安全
工作模式:1.写架构设计文档2.给技术团队宣讲架构
输出 :完整的架构设计方案
架构验证阶段(贯穿项目全流程)
主要任务:
收集架构意见1.开发人员意见2.测试人员意见3.运维人员意见
跟进架构落地效果1.性能测试结果2.压力测试结果3.线上运维情况
工作模式:1.总结复盘2.收集吐槽
输出: 架构优化建议、架构迭代计划
架构师工作评价,除了架构项目落地情况,相关人员的架构意见反馈也是老板考量因素。
架构师团队本身是小而美的。多数是虚拟团队项目制,没有职级汇报的。
后面是展开架构设计
架构设计前期如何开展工作?
包含:1理解架构设计常见利益干系人和诉求
2.掌握利益干系人诉求排序技巧
利益干系人分析
这个跟PM的很类似,毕竟有人的地方就有江湖。郭东白老师的顺应人性也是不同侧面来讲。
换位思考,从对方利益视角去考虑,才能寻求肯能的合作方案。
投资人:出钱的“爸爸”,【利益诉求】1.成本2.时间3.竞争力 例如:1.你的上级2.业务负责人
监管者:通常是法律要求的组织。利益诉求:合规,处理投诉。
构建着、维护者:开发、测试、运维、运营
使用者,评估者:用户、甲方等
诉求优先级排序
分组、排序、沟通
时间、成本、范围、质量这些也跟项目管理关注的类似。
取舍原则:无法做到面面俱到,需要根据业务目标决定哪个优先
按照影响力大小排序,监管者>投资者>评估者>使用者>构建者>维护者
差异性、冲突性 就需要做排序。差异性:安装影响力点对点沟通,谁权力大听谁的。
冲突性需要开会,一起讨论PK,老板来拍板。要发挥影响力,引导正确的方案,不是简单的听老板的。自己不管只等最后的结果,这个锅后面就得自己背。
复杂度分析