高效 OnCall 值班

121 阅读2分钟

线上通常有哪些问题

  1. 场景不支持: 开发产品没设想到的场景
  2. 数据不一致:比如数据不应该重复,但是重复;两张表之间应该保持一致性,但是没保持
  3. 服务客户/运营: 3.1. 为客户澄清解释功能该怎么使用,解释客户对功能的疑点 3.2. 客户需要的一些非高频需求(比如报表,某些批量操作等等),临时想帮客户操作

常见解决方案

  1. 对于偶现的数据不一致,提 SQL 工单,修正数据临时解决
  2. 对于频繁的数据不一致,提 SQL 定时任务,检查并定时修正数据
  3. 对于 小bug 导致的问题,火速修改并上线
  4. 对于 大问题 记录好工单,工作项,需求 推动
  5. 对于不支持的场景,如果可以用其他功能解决问题,优先使用系统其他功能解决问题(比如ERP发货场景,如果使用顺丰发货的功能有问题,可以和客户沟通先用中通发货)
  6. 对于不支持的场景,如果场景偶现,可以临时人工写SQL 手扶数据处理
  7. 对于不支持的场景,如果场景频繁出现,只能和客户沟通,延期使用
  8. 如果是新版本导致的问题,且问题较大,需要回滚代码(这也要求开发功能一定要考虑兼容性,一致要支持简单回滚)

怎么高效值班

  1. 集中高效带 traceID 的日志系统
  2. SQL 审计日志
  3. 业务功能开发时,重要操作带上操作日志功能方便定位问题
  4. ModHeader 浏览器插件方便在不同环境切换用于定位是否是新版本代码问题,或者是否是老代码问题未修复
  5. 监控系统比如 Promethus/Grafana 监控,监控 GC ,内存,接口响应 等等
  6. 对于业务模型的理解,熟练SQL, 熟练表字段含义及相互关系
  7. 对于主要业务流程的理解
  8. 定位到人,咨询或者推动功能开发者 解决问题,推动开发者分享自己的 bugfix commit 更好地理解业务和问题
  9. 知晓并理解版本发布内容
  10. 学会些脚本语言(比如Python), 快速为客户处理问题
  11. 如果是项目负责人,或者是 owner, 还要想尽办法为自己争取更多的开发资源解决问题
  12. 利用好 pingCode 等项目管理工具,记录好工单,需求和工作项