腾讯 IMWeb 全栈质量保障实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 腾讯 IMWeb 全栈质量 保障实践 陈丽杭 腾讯高级前端工程师
2.
3. 陈丽杭 / 腾讯高级前端工程师 • 腾讯 IMWeb 团队核心成员 • 负责腾讯在线教育部 企鹅辅导业务 研发效能 腾讯 IMWeb Serverless 腾讯课堂 腾讯企鹅辅导 腾讯开心鼠
4. • 前端全栈质量保障剖析 • 腾讯 IMWeb 全栈质量保障建设 • 落地全栈质量案例 • 总结 & 展望
5. • 前端全栈质量保障剖析 • 腾讯 IMWeb 全栈质量保障建设 • 落地全栈质量案例 • 总结 & 展望
6. 01.前端全栈质量保障剖析 IMWeb 基于 NodeJS 的全栈架构演进 云服务 1. 疫情之下中后台服务需求剧增 2. IaaS、PaaS 减少前端服务开发成本 低代码平台 SAS 系统 发布系统 业务后台 效率工具 SSR 前端开发 Node.js开发 全栈开发 突破边界,⻆色升级,价值提升
7. 01.前端全栈质量保障剖析 全栈研发模式升级 前端开发工程师 UI 交互 后台开发工程师 数据 运维 全栈 = 前后端一体化开发 弹性伸缩 负载均衡 mobile 网络专线 文件存储 Html JS Image 内容加速 … web browser CSS Fonts … • 打破隔离,沟通成本减少 • 职责升级,关注边界增加
8. 01.前端全栈质量保障剖析 边界增加带来质量挑战 服务质量问题从何入手? • 接口 500 • 响应异常 • 请求延迟 • 内存泄露 • 性能瓶颈 • 服务雪崩 • CPU 飙升 • 内存暴涨 • IO 堵塞 • 调度故障 • 路由问题 • 入库失败 • 进程保活 • 服务扩容 • 流量切换
9. 01.前端全栈质量保障剖析 重新定义前端的质量边界 浏览器 1.新技术领域全栈质量建设? 2.如何提升全栈化运维效率? + 服务端
10. 01.前端全栈质量保障剖析 服务质量问题归类 开发 规范 服务扩容 配置变更 安全保障 持续 运营 监控指标标准化 机器相关的 主被调相关 测试 保障 功能逻辑 性能测试 研发、测试、运维 质量 体系 内存泄露 性能瓶颈 解决困难 发布 质量 问题 定位 监控 告警 体系化的质量建设 故障发现滞后 监控配置缺失 安全隐患 灰度发布 发布回滚 全流程的质量保障
11. 01.前端全栈质量保障剖析 前端全栈的质量保障体系建设 基础 设施 基于云原生体系 结合 Node 生态 编码 发布 OPS 打造效率工具 降低维护成本 自动化测试 工具 保障 DEV 结合业务现有体系 搭建全栈质量体系 体系 升级 监控 基于业务DevOps,在每个环节建设质量保障工具和流程
12. • 前端全栈质量保障剖析 • 腾讯 IMWeb 全栈质量保障建设 • 落地全栈质量案例 • 回顾总结 & 展望
13. 02. 腾讯 IMWeb 全栈质量保障建设 IMWeb 全栈质量保障体系 开发规范 测试保障 发布质量 监控告警 问题定位 测试 部署 运维监控 校验 功能&性能 发布平台 Sentry 代码规范 冲突检测 单元测试 发布评审 监控体系 响应规范 版本管理 接口测试 服务容灾 配置管理 日志规范 静态检查 压力测试 多地部署 性能分析 配置规范 规范检测 漏洞扫描 安全保障 扩容缩容 开发 规范 构建 交付质量保障 线上质量保障 持续运营
14. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 • • • • • 测试保障 发布质量 监控告警 问题定位 持续运营 服务日志欠缺,无从查询问题 服务健康监控指标缺乏,故障未发现 接口返回码代表什么问题 参差不⻬的服务质量 … 一致性的规范 保障统一的服务质量 响应规范 正常响应 异常响应 返回码管理 日志规范 进程日志 调用日志 异常日志 服务监控 主调监控 被调监控 响应延迟率 特性监控 GC Event loop 延迟 CPU Profile 开发 规范 如何保证团队业务服务规范的统一?
15. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 基础框架 基础 建设 规范扫描 统一升级 研发框架 统一日志 统一主被调 统一异常 上报组件 监控组件 处理组件 通过接入统一框架和基础规范 保证基础监控上报功能的完整
16. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 测试目标 响应 正确 + 服务质量指标 单元测试 正确性 可用性 功能 接口测试 前端写服务端 自动化测试率不足? • 延迟率 • 性能测试 • 性能 达标 吞吐量 系统 业务拨测 主动检查线上 用例编写维护成本高 没有意识服务需要吞吐量测试 如何进行服务吞吐量测试
17. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 请求 响应 请求协议 请求头 请求参数 响应体 接口描述文件 json、protobuf 添加响应断言 用例 测试断言:入参决定出参 CI 上传 协议解析 用例文件 部署 接口契约平台 接口描述定义接口,打通 CI,降低用例成本
18. 02. 腾讯 IMWeb 全栈质量保障建设 打通后台吞吐量压测工具,流程化吞吐量测试 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 QPS (每秒查询率) 流量预估 用例 </>测试脚本 </>测试脚本 吞吐量 输入 压力测试 测试结果分析 响应时⻓ 最大服务能力 成功率 压测结果 分析性能短板 服务性能指标
19. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 测试报表 用例 输入 定时触发 拨测任务 调度 主动发现线上问题 输出 用例断言结果 反馈 异常告警 CD 触发定期现网检查,保证服务稳定
20. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 代码 自动化测试 用例 用例统一管理维护 部署 触发 拨测 线上保障 CI 覆盖率检查 接口测试 正确性 压测 可用性 告警
21. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 业务发布流程规范 Code Review CI 编译 测试校验 发布审批 项目发布 • 业务规避 • 发布值守 收拢发布权限,流程化规范发布 服务发布存在差异点 存储层配置如何发布 集群机器如何操作发布
22. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 每个服务发布制定 详细的发布规范 发布前 预发布 正式环境 发布完成 发布检查 CI 构建 评审单通过 代码合并 强制 CR 资源部署 灰度发布 环境清理 创建评审单 服务发布 灰度验证 发布群周知 发布群周知 预发布验证 全量发布 结束评审单 锁定项目发布 安全扫描 现网验证 释放发布环境
23. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 发布工作台统一发布流程
24. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 存储规范 自动化部署 配置规范 CI 编译&测试 Code Review 发布审批 存储权限隔离 SQL 性能 服务1 服务2 服务3 机器灰度 保证现网 访问正常 服务告警 … 发布值守 指标预警 收拢发布权限,流程化规范发布
25. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 故障现象 HTTP 接口 5XX 接口响应错误 1.如何覆盖 多层级指标监控 现象 故障预警 流量增⻓ CPU飙升 数据库性能 … 监控 原因 告警修复闭环 定位分析 2. 如何提高问题修复效率和质量? 3. Node 服务性能分析如何下手?
26. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 接口 超时率、成功率、慢 HTTP、RPC 发 现、流量波动 … 自研上报 SDK 服务 异常日志、服务全景、模块版本… 数据清理&存储 依赖 存储慢查询、Nginx、配置依赖、 DB&Redist&Kafka 负载 容器 CPU 使用率、内存使用率、磁盘情况、 网卡流量 … 多层级指标监控 数据展示 指标告警 自研监控系统
27. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 Node 服务 完整的监控指标 监控告警 问题定位 持续运营 存储 监控
28. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 建立工单跟踪问题 指标告警 创建工单 定向分配 工单结单 定位修复问题 消息通知 服务与开发人员对应 每周报表 监控告警 -> 问题处理闭环 每日总结
29. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 方案调研 工具使用 编写代码 本地测试 代码提交 发布部署 场景还原 专项测试 分析定位问题效率有待提升 确定问题 修复发布 下载 profile 文件 工具查看 验证假设
30. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 用户控制台 线上 Node.js应用 发送采集指令 接收采集指令 不停机在线快速定位问题 生成性能文件 在线分析 上传性能文件 自研性能分析系统
31. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 • • 问题定位 持续运营 在线采集CPU profile 生成火焰图 集成Chrome devtools工 具分析堆快照 CPU采样 堆快照对比
32. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 方案调研 工具使用 监控指标 异常 编写代码 本地测试 生成 性能文件 代码提交 发布部署 场景还原 专项测试 在线分析 登录机器 下载文件 代码调整 提高定位效率,解放生产力 工具查看 验证假设 测试发布
33. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 通过上云,降低服务运营成本 持续运营 运维、 数据 监控告警、备份灰度、社区支持 稳定、 安全 升级/迁移、故障避让 异地多活、审计 防 SQL 注入/拖库 效率、 工具 CI、CD、配置下发、域名 故障定位、日志染色 成本、 性能 元/GB/日、HDD/SSD/内存、专线 QPS、分级存储、就近接入 水平伸缩,按核心数收费 扩展、 平台 横向扩展、纵向扩容
34. 02. 腾讯 IMWeb 全栈质量保障建设 IMWeb 全栈质量保障体系 DevOps • 开发规范 • 测试保障 • 发布质量 • 监控告警 • 问题定位 • 持续运营 系统 CLI 框架&组件 规范制定 测试 开发 发布系统 Thanos 接口管理系统 Tolstory 监控系统 IX 代码规范 协议请求 Take 测试规范 测试系统 星海平台 基础 设施 配置管理系统 错误码 IMServer-Error-CLI 框架 IMServer-CLI 代码框架 IMSever 运维 部署 日志请求 IMLog 部署规范 错误捕获 Error 监控规范 体系 升级 响应统一 Response 日志规范 工具 保障
35. • 前端全栈质量保障剖析 • 腾讯 IMWeb 全栈质量保障建设 • 落地全栈质量案例 • 回顾总结 & 展望
36. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 案例 QPS 达不到预期 简单服务,8核16G机器,压测结果 5000 QPS
37. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 案例 QPS 达不到预期 CPU使用率达到 95%+
38. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 案例 QPS 达不到预期 使用火焰图分析 CPU Profile 这些方法是否运行程序所需
39. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 案例 QPS 达不到预期 日志上报相关函数占 47.6 %
40. 02. 腾讯 IMWeb 全栈质量保障建设 开发规范 测试保障 发布质量 监控告警 问题定位 持续运营 案例 QPS 达不到预期 50% 5000QPS 7600QPS
41. • 前端全栈质量保障剖析 • 腾讯 IMWeb 全栈质量保障建设 • 落地全栈质量案例 • 回顾总结 & 展望
42. 04. 回顾总结 & 展望 开发规范 基础 设施 测试保障 发布质量 监控告警 问题定位 编码 基于云原生体系 结合 Node 生态 持续运营 发布 打造效率工具 降低维护成本 自动化测试 工具 保障 结合业务现有体系 搭建全栈质量体系 体系 升级 监控 基于业务DevOps,在每个环节建设质量保障工具和流程
43. 04. 回顾总结 & 展望 Metrics DevOps AIOps NoOps Tracing Logging 智能 诊断 智能 监控 智能 APM 智能 日志 智能 事件
44. 不断拓展技术边界就像是前端开发者的使命,在这快速突破中, 即便是全栈,对效率与质量探索和实践的原则是不变的
45.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 01:56
浙ICP备14020137号-1 $Map of visitor$