架构师核心能力和主要职责
核心能力
判断
- 业务理解能力
- 技术能力
- 沟通能力
拆解
- 技术深度
- 技术宽度
- 技术广度
取舍
- 设计理念
- 说服能力
- 决断能力
核心思维
- 确定性思维:消除模糊、不确定的说法和信息,列入“大量用户”应该明确为“XX万用户”
- 创造性思维:通过排列组合创新,得到更多方案
- 系统性思维:系统思考,有逻辑和推导过程,例如“为什么不用Native而要用H5”
架构设计流程
主要职责
架构设计前期
主要任务
澄清不确定性
- 明确利益干系人的诉求
- 消除冲突的诉求
- 诉求优先级排序
识别复杂度
- 识别核心场景
- 明确或者预估质量需求
- 识别复杂度
工作模式
- 与业务方交流
- 与利益干系人交流
关键输出
- 总体业务架构图
- 核心场景流程
架构设计中期
主要任务
设计备选方案
头脑风暴
筛选方案
设计备选方案
选择备选方案
- 360度评估
- 明确选择标准
- 选择最终方案并汇报
工作模式
- 架构小组讨论
- 架构小组写文档
- 向利益干系人汇报
关键输出
- 备选方案
- 方案评估结论
- 方案汇报结论
架构设计后期
主要任务
细化架构
- 按照4R架构定义细化架构
完善架构
- 可维护性、可测试性、可观测性、可运维性、成本、安全
工作模式
- 写架构设计文档
- 给技术团队宣讲架构
关键输出
- 完整的架构设计方案
架构验证阶段
主要任务
收集架构意见
- 开发人员意见
- 运维人员意见
- 测试人员意见
跟进架构落地效果
- 性能测试结果
- 压力测试结果
- 线上运维情况
工作模式
- 总结复盘
- 收集吐槽
关键输出
- 架构优化建议
- 架构迭代计划
架构设计和方案设计区别
架构设计是影响系统结构的设计,而方案设计是不影响系统结构的设计。
举例:
- Rank:改变系统分层的设计属于架构设计,例如将支付宝提升到和淘宝同级别
- Role:修改(增删改拆合)角色属于架构设计,例如微服务拆分
- Relation:修改角色关系属于架构设计,例如用消息队列代替接口访问
- Rule: 修改角色之间的运作规则属于架构设计,例如 MongoDB 将选举算法从
Bully 改为 Raft