文档介绍:全局架构重构实践
QCon杭州2011大会
鲁肃@支付宝
我经历的架构重构之路
服务范围: 担保交易@淘宝服务范围: 支付***@Anywhere
交易笔数: <1万/天交易笔数: >1000万/天
技术人员: < 10 技术人员: >1000
业务
2005年 2011年
烟囱面向服务平台整合
系统
重构“坏味道驱动”的局部架构重构
“规划驱动”的全局架构重构
交流话题
架构重构
—“坏味道驱动”的架构重构
全局架构重构
—“规划驱动”的架构重构
更深层次的架构重构
—架构组织与架构过程重构
架构重构
1 —“坏味道驱动”的架构重构
如何识别架构坏味道?
研发效率
系统不稳降低
定
新业务难
以支持
•“臃肿”组件
•“贫血”组件
•组件缺失
过程问题
•组件冗余
技能问题
•组件抽象不足
组织问题
架构坏味道•反向依赖
……
•长链依赖
•网状依赖
•资源瓶颈
•单故障点
•……
如何识别架构坏味道? - 案例
网站前台管理后台银行网关批处理
应用功能集应用功能集应用功能集应用功能集
交易核心交易核心交易核心交易核心
A B C D
•“臃肿”组件
•“贫血”组件
交易数据•组件缺失
•组件冗余
•组件抽象不足
架构坏味道•反向依赖
•长链依赖
•网状依赖
•资源瓶颈
•故障单点
•……
如何客观评价架构重构方案?
确定关键选择架构通过推演架构方案
架构目标关键场景评价架构综合评分
关键架构目标主业务场景新业务场景下限权值
高可用 8 6 6 3
可伸缩 9 9 8 3
研发速度 8 5 5 2
运维成本 7 7 5 1
迁移成本 5 5 1
总评: 通过,总分: 73
如何客观评价架构重构方案? - 案例
重构方案: 共享库重构方案: 共享服务
网站前台管理后台网站前台管理后台
银行网关银行网关
批处理批处理
交易核心交易核心
共享库共享库
交易核心
共享库
交易核心交易核心
共享库服务
交易交易
数据数据
………………
………………
总评: 通过,总分: 80
………………风险1: 迁移成本
总评: 不通过(可伸缩性未达下限) 风险2: 高可用
如何控制架构重构风险?
项目前项目中项目发布
消除风险、获得支持短、平、快稳、平滑
•非停机发布
•关键技术准备•严格控制项目范围扩
•可快速回滚
•架构概念验证原型张
•新旧系统幵行运行
•确定项目目标与范围•严格控制项目过程中
•监控方案
•明确业务影响的业务需求
•所有方案必须经过测试
•晒项目•“rebase”不可避免
•检查项目目标是否达成
•组建项目团队的业务需求
•复盘
•创造“业务需求真空期”•(可选) 将项目执行组
•(可选) 完成前置改造织成迭代
全局架构重构
2 —“规划驱动”的架构重构