课程大纲
模块目标 | 性能(Performance)导论 | 课时 | 1小时 | |||
学员收益 | 唤起对日常软件研发工作的思考、归纳 快速掌握性能理论(三要素、四指标组、之间关系) | 两天版 | Yes | |||
模块大纲 | ||||||
性能原理 三要素 四指标组 练习 比照 质量模型 SEI (架构质量权威) SPE (软件性能工程)
去繁就简,让理论落地实践(下图) | ||||||
练习、实战分析 | 国外的OFM油气开发管家 | 训练焦点 | 性能“子目标” | |||
……细分和区别对待性能“子目标” ……矛盾目标的权衡、取舍 |
模块目标 | 核心代码速度、DB操作速度 | 课时 | 3小时 | |||
学员收益 | 核心代码:指令、循环优化、并行、编译优化 DB操作速度:SQL语句优化、表结构调整、并发 | 两天版 | Yes | |||
模块大纲 | ||||||
案例智慧 一组源代码案例 战术列表 避免浪费(指令优化、循环优化) 引入并行 编译器优化 比照 确定瓶颈的重要性 代码重构(Refactoring) 案例棒喝 低范式高性能 vs. 高范式高性能 加索引高性能 vs. 加索引低性能 临时表高性能 vs. 临时表低性能 点醒认知 索引 范式 临时表、中间表、基本表 战术列表 SQL语句优化 表结构调整、读优化、写优化、并发性优化 服务器优化 比照:关系DB、实时DB、分布式文件系统 | ||||||
练习、实战分析 | 8段代码 | 训练焦点 | 设计深入 | |||
…… | ||||||
练习、实战分析 | 6个案例 | 训练焦点 | 设计深入 | |||
低范式促进性能 高范式促进性能 加索引带来高性能 加索引引起性能下降 采用临时表反而低效 采用临时表带来处理高性能 |
模块目标 | 并发、伸缩扩容 | 课时 | 4小时 | |||
学员收益 | 并发设计理论、并发设计技巧 可伸缩设计的 5 个原则应用 | 两天版 | Yes | |||
模块大纲 | ||||||
并发设计的两个层次 【前提】 物理架构:节点间并发 运行架构:进程/线程间并发 并行程序设计模式 【核心】 任务并行 数据并行 流水线并行 案例——多媒体、信息管理系统、支付宝 影响并发性的瓶颈 【补充】 服务间资源争用 服务间协作等待
小组:案例实战 支付宝、QQ案例智慧( 1 ) 战术:Server位置透明性 战术:异步化 支付宝、QQ案例智慧( 2) 战术:核心数据结构驻留内存 战术:单台服务器容量最大化 战术:Server Set 比照 容量(Capacity)与可伸缩性(Scalability) 垂直伸缩 and 水平伸缩 并发、异步 分布式transaction vs. 反交易、BASE模型 战术列表 FACTD伸缩设计框架 | ||||||
练习、实战分析 | QQ、MSN架构 | 训练焦点 | 设计深入 | |||
…… | ||||||
练习、实战分析 | 支付宝 | 训练焦点 | 设计深入 | |||
…… |
模块目标 | 系统对接的数据传输、信息抽象 | 课时 | 3小时 | |||
学员收益 | 数据传输的高性能 系统间交换数据低性能,怎么办?信息抽象…… | 两天版 | Yes | |||
模块大纲 | ||||||
案例智慧(EAI) 增量同步 vs. 全量同步 案例——数据同步 案例智慧(平台) 通用协议 + 专用API MySQL——Client-Server协议 + API 支付平台——ISO8583 + API 案例智慧(三方产品) 端到端优化 比照 应用协议设计 vs. 通信协议设计 GB、GJB《接口》文档 架构不力,累死三军 小组:“反”例研究 案例智慧 案例——基于GPS的作战协同系统 案例——数据同步接口协议 数据抽象:大粒度 and 高层次 数据传输:原始数据 /应用模型/展现模型 比照 数据整合、应用整合 流程整合、UI 整合 战术列表 | ||||||
练习、实战分析 | 某EAI | 训练焦点 | 设计深入 | |||
…… | ||||||
练习、实战分析 | 平台接口(以MySQL为例) | 训练焦点 | 设计深入 | |||
…… | ||||||
练习、实战分析 | 基于GPS的作战协同系统 | 训练焦点 | 设计深入 | |||
…… | ||||||
练习、实战分析 | 系统间数据同步接口协议 | 训练焦点 | 设计深入 | |||
…… |
模块目标 | 数据分布、Cache | 课时 | 1小时 | |||
学员收益 | 数据分布 Cache思想、多种以空间换时间的技术应用 | |||||
模块大纲 | ||||||
数据分布架构及应用 6种数据分布模式比较 案例——3个练习 Cache思想及变化 Memcached CDN(内容分发网络) IMDB(内存数据库) 页面静态化 代理、反向代理 案例——多级Cache与设计节奏 比照 时间换空间 空间换时间 | ||||||
练习、实战分析 | 以空间换时间的 N 个架构 | 训练焦点 | 设计深入 | |||
Memcached CDN(内容分发网络) IMDB(内存数据库) 大型Web系统、多步扩容…… | ||||||
练习、实战分析 | 数据分布 3 案例对比 | 训练焦点 | 设计深入 | |||
电信计费查询 移动互联网音乐、铃声下载 …… |
模块目标 | 有状态、无状态服务(与可靠性、水平伸缩) | 课时 | 1小时 | |||
学员收益 | 状态信息 与 分布式开发 无状态服务 与 水平伸缩 | |||||
模块大纲 | ||||||
案例智慧 练习——微信、QQ架构的State Info分析 状态信息:Business Data 状态信息:Session Data Service Statelessness principle IBM Cognos案例智慧 同时满足:可靠、可伸缩、成本可控 战术:有状态无状态服务分离 战术:无状态服务的水平伸缩 比照 ■OO(面向对象) ■SOA、REST接口 ■DB事务 ■面向组件、EJB ■状态机 | ||||||
练习、实战分析 | IBM Cognos | 训练焦点 | 设计深入 | |||
……架构中有状态、无状态服务的划分 | ||||||
练习、实战分析 | 腾讯微信 | 训练焦点 | 设计深入 | |||
……架构中有状态、无状态服务的划分 |
模块目标 | 业务架构师 与 端到端性能 | 课时 | 3小时 | |||
学员收益 | 业务架构师:以全局业务角度看待端到端性能 组合交易、联动交易、批量交易 操作流程优化 | |||||
模块大纲 | ||||||
业务架构师 与 性能 端到端性能 银行核心架构 and 吞吐量分析模型 瓶颈分析 à 性能原则 三趋势 业务优化……战术、案例 渠道分流……战术、案例 用户体验……战术、案例 比照 业务流程 à 功能 à 操作流程 à 用户界面 业务流程再造、业务流程优化 用户体验设计、UE | ||||||
练习、实战分析 | 银行业务系统 | 训练焦点 | 业务功能设计 与 性能 | |||
…… | ||||||
练习、实战分析 | 携程 | 训练焦点 | 业务功能设计 与 性能 | |||
…… | ||||||
练习、实战分析 | 京东、淘宝 | 训练焦点 | 业务功能设计 与 性能 | |||
…… | ||||||
练习、实战分析 | 嘀嘀打车、微信 | 训练焦点 | 操作流程性能 | |||
…… | ||||||
练习、实战分析 | 12306.cn铁路售票 | 训练焦点 | 操作流程性能 | |||
…… | ||||||
练习、实战分析 | 携程 | 训练焦点 | 操作流程性能 | |||
…… |
模块目标 | 性能实践收官 | 课时 | 2小时 |
学员收益 | 总结性能战术、理念 梳理瓶颈思维原则 | 两天版 | Yes |
模块大纲 | |||
战术、理念 IT系统性能 端到端性能 瓶颈 瓶颈思维的原则化 重构管理 攻关预研的策略 有效控制重构工作量 |