从零学架构(十三)


架构师核心能力和主要职责

核心能力

判断

  1. 业务理解能力
  2. 技术能力
  3. 沟通能力

拆解

  1. 技术深度
  2. 技术宽度
  3. 技术广度

取舍

  1. 设计理念
  2. 说服能力
  3. 决断能力

核心思维

  1. 确定性思维:消除模糊、不确定的说法和信息,列入“大量用户”应该明确为“XX万用户”
  2. 创造性思维:通过排列组合创新,得到更多方案
  3. 系统性思维:系统思考,有逻辑和推导过程,例如“为什么不用Native而要用H5”

架构设计流程

主要职责

架构设计前期

主要任务
澄清不确定性
  1. 明确利益干系人的诉求
  2. 消除冲突的诉求
  3. 诉求优先级排序
识别复杂度
  1. 识别核心场景
  2. 明确或者预估质量需求
  3. 识别复杂度
工作模式
  1. 与业务方交流
  2. 与利益干系人交流
关键输出
  1. 总体业务架构图
  2. 核心场景流程

架构设计中期

主要任务
设计备选方案
  1. 头脑风暴

  2. 筛选方案

  3. 设计备选方案

选择备选方案
  1. 360度评估
  2. 明确选择标准
  3. 选择最终方案并汇报
工作模式
  1. 架构小组讨论
  2. 架构小组写文档
  3. 向利益干系人汇报
关键输出
  1. 备选方案
  2. 方案评估结论
  3. 方案汇报结论

架构设计后期

主要任务
细化架构
  1. 按照4R架构定义细化架构
完善架构
  1. 可维护性、可测试性、可观测性、可运维性、成本、安全
工作模式
  1. 写架构设计文档
  2. 给技术团队宣讲架构
关键输出
  1. 完整的架构设计方案

架构验证阶段

主要任务
收集架构意见
  1. 开发人员意见
  2. 运维人员意见
  3. 测试人员意见
跟进架构落地效果
  1. 性能测试结果
  2. 压力测试结果
  3. 线上运维情况
工作模式
  1. 总结复盘
  2. 收集吐槽
关键输出
  1. 架构优化建议
  2. 架构迭代计划

架构设计和方案设计区别

架构设计是影响系统结构的设计,而方案设计是不影响系统结构的设计。

举例:

  1. Rank:改变系统分层的设计属于架构设计,例如将支付宝提升到和淘宝同级别
  2. Role:修改(增删改拆合)角色属于架构设计,例如微服务拆分
  3. Relation:修改角色关系属于架构设计,例如用消息队列代替接口访问
  4. Rule: 修改角色之间的运作规则属于架构设计,例如 MongoDB 将选举算法从
    Bully 改为 Raft

小结


文章作者: maybe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 maybe !