PerfLabs:以Cloud Native的姿势进行应用测试和调优 乐鸿辉

2020-03-01 242浏览

  • 1.PerfLabs:以 Cloud Native 的姿 势进⾏应⽤测试和调优 乐鸿辉 携程 高级研发经理
  • 2.自我介绍
  • 3.自我介绍 2017~ 携程云平台 Cloud Container&Service团队 高级研发经理 • K8s平台和调度体系研发 • Cloud Native Infrastructure改造 • 成本优化,效率提升 2012~2017 优酷土豆 基础系统 资深研发工程师 • 点播直播CDN研发 • UGC自动化审核系统研发
  • 4.目录 动机 用户调研 产品目标 技术方案 落地效果 未来规划
  • 5.携程容器云现状 Capacity Efficiency Performance CI/CD Unified Control Plane Coding PAAS 混合云、基于Kubernetes 10W Pod,快速增长 Cloud Native Infrastructure BareMetal VM Network Private/Public IDC Storage
  • 6.动机-排障日常 Support & Troubleshooting
  • 7.动机-排障日常 为什么程序发布时响应延迟这么高? 为什么我的CPU这么高? 我的内存为什么这么高?为什么OOM? 为什么这个实例有问题,其它实例没问题? 是不是你们容器的问题! 能帮我看看这样改效果怎么样吗?
  • 8.动机-小愿望 自己动手,丰衣足食 内心OS:别来烦我~
  • 9.用户调研-为什么不能自助诊断? 不懂,不知道怎么弄 操作太麻烦了 有些工具影响性能,不敢在生产操作,怕出事 容器内没有权限,很多操作没法儿做 引用的Native包的问题,现有工具看不到
  • 10.用户调研-为什么不线下做测试调优? 测 试 数 据 构 造 维护复杂 构造成本高 失真 流 量 录 制 回 放 实时性差 场景受限 效果差 用得少
  • 11.产品目标 环境构造 性能诊断 分析展示 生产环境为中心 打造从环境构造、性能诊断到结果分析展示的性能优化闭环
  • 12.环境构造-流量动态加压 可控的流量负载测试 (Canary,Linkedin Redliner...) Group A Dependencies • 动态调整流量分配权重 • 对部分实例加压 • 观察调整被测实例 Load Balancer Requests Controller /Monitor Group B
  • 13.环境构造-流量动态加压 • 操作简单 • 可以处理有副作用请求 • 流量可能有损 大部分内部用户不太能接受流量损失
  • 14.环境构造-流量镜像 可控的流量镜像 Source Group • 复制流量到对比集群 • 流量可控 • 观察调整被测实例 Copy Requests Load Balancer MirrorGroup:自由的实验环境 Mirror Group Dependencies Controller /Monitor
  • 15.环境构造-流量镜像-风险 流量副作用? 手段 • 流量过滤 • Mirror Group环境变量标识 Source Group Filter 典型性能调优应用读多写少 • 查询引擎 • 接口渲染 Requests Load BalancerEnv:PAAS_APP_IS_MIRROR_GROUP Mirror Group Dependencies Controller /Monitor
  • 16.环境构造-流量镜像-风险 Tracing混乱? Source Group 手段 • 清空Tracing相关的http header drop tracing header Requests Load Balancer Mirror Group Dependencies Controller /Monitor
  • 17.环境构造-流量镜像-技术方案 PAAS 自研流量镜像Sidecar Redir • • • • • • pcap包复制 SOA/HTTP协议解析 自定义规则请求过滤 抽样/放大系数 多Endpoint Load Balancing Config自动热加载 group inject Kube-Api injector Source Group Mirror Group Copy Sidecar管理与控制 • K8s自动管理Source Group的Sidecar注入 • Configmap实时控制Sidecar行为 Configmap Sidecar Sidecar Sidecar Dependencies Prod Env
  • 18.环境构造-流量镜像-技术方案 K8s通用Sidecar管理方案 • 通用的Sidecar模板治理 • 通用的Sidecar配置和渲染治理 • LabelSelector匹配apiVersion:perflabs.cloud.ctrip.com/v1kind:'>kind: