淘宝网应用性能管理的原理和实践
个人简介 花名 田鸠 2011年12月12日加入淘宝 7年性能测试、工程经验 擅长:性能测试、性能测试工具和框架、测试平台架构、Java系统架构
Agenda APM的背景与趋势 阿里巴巴APM的现状 APM面临的挑战 性能测试领域的创新 SAAS性能测试服务化 性能测试平台的设计 平台运行效果 后续发展
应用性能管理的背景 概念:在IT系统领域,应用性能管理(Application Performance Management aka APM)是指对软件系统的性能和可用性进行监控和管理。应用性能管理系统帮助探测和解决系统能问题,以保证业务目标的达成。 功能维度 [1] 定义来自Gartner Research
应用性能管理的背景 By Gartner Research
应用性能管理的趋势 终端用户体验监控将会越来越重要 APM面对的应用场景将会越来越复杂 APM需要全面/更早介入产品的生命周期 分析的重要性将仅次于用户体验监控 IT高层会越来越重视APM
阿里巴巴的APM现状 能够解决某一方面,某一领域的问题 APM功能维度都有涉及,缺少拳头产品 系统繁多,数据分散,功能重合 哈勃 业务数据 应用数据 监控告警 依赖监控 CSP 拓扑结构 线上压测 容量规划 Hotspot 性能剖析 页面监控 Alimonitor 系统指标 Alibench 用户体验 Dragoon 应用监控 分层监控 鹰眼 设备监控 鱼眼 页面剖析 北斗 数据库指标 天机 能够解决某一方面,某一领域的问题 APM功能维度都有涉及,缺少拳头产品 系统繁多,数据分散,功能重合 数据很多,指标不一,分析偏少
理想的APM未来 从用户体验出发,全流程覆盖 研发 · 测试 · 生产 · 业务 ENTERPRISE SAAS 分布式跟踪 Performance Analytics SAAS Performance Test & EUE 产品环境 业务监测 应用监测 系统指标 依赖拓扑 性能剖析 测试 瓶颈分析、问题定位 性能基线和回归 研发流程 持续优化 产品环境 终端用户体验监测 同质业务横向检测 测试 线上压测 线下性能测试 分布式跟踪
平台解决的问题 统一的性能测试流程支持流程持续改进 统一的性能数据库支持性能基线和回归 可以复用的性能测试/分析方法和资产 软件服务化降低工具持有成本 测试资源虚拟化/动态化降低设备成本 自动化重复/低附加值工作提高效率 形成平台技术社区沉淀知识和经验
遇到的问题 Standard Enterprise Hybrid Cloud 环境 数据 安全 性能
一体化性能测试平台 PAP 环境搭建 性能测试 性能监控 结果分析 页面性能 任务 场景 脚本 结果 基线 实时展示 机器申请 环境搭建 权限管理 脚本 场景 任务 趋势监控 结果分析 测试执行 PAP 结果 TPS、RT 服务器指标 JVM指标 响应时间分布 失败率 基线 TPS RT 实时展示 JVM指标 服务器指标 性能指标
平台设计概要
测试平台拓扑结构
平台运行数据
后续发展
Discussion