作者回复: 1. 谁主导线上故障,我觉得有两个指标要考虑:
一个是这个人或者角色要懂技术懂业务,这样出现故障,能对故障进行评级;
另一个是要能调动开发和运维去协调处理,这样出现故障能找到合适的人去处理,不然也只能干着急。
2. 故障排查上:
如果是操作系统、数据库、网络等非应用程序故障,应该是运维负责;
如果是应用服务故障,应该是开发去负责,即使开发最近没有去做发布也应该是开发去查。因为只有开发对于应用程序的结构才清楚,才能找出来问题。排查过程中,运维要给予配合。
3. 应该搭建起来像ELK这样的日志管理系统(可参考《38 | 日志管理:如何借助工具快速发现和定位产品问题 ?》),将应用程序日志也放上去,这样正常情况下就不需要去登录服务器了,直接就可以通过日志工具查看到异常信息。另外,一些特殊情况应该允许开发人员登录服务器排查定位。
作者回复: 有关这部分内容,可以参考下一篇的内容,会有更详细的介绍。
CAT是很好的业务监控系统,用好了一样可以很有帮助。
日志监控系统不需要自己从头写,开发或者运维搭都可以,搭建好了做一些配置或者二次工作就好了。
作者回复: 🙏谢谢补充:在对故障评级后,还应该要提交ticket用来跟踪整个故障解决的过程。
作者回复: 👍感谢分享补充!
作者回复: 总结还是蛮重要的。因为出了故障,多少反映出整个开发流程可能是存在问题的,比如开发时没有写自动化测试和代码审查,测试时没有充分测试各种路径。总结后,就可能会找出来这些潜在问题,比如说增加针对这类Bug的自动化测试代码,增加代码审查,测试时增加对这类Bug的测试用例,从根源上改进这些问题,从而做的更好。
作者回复: 👍对,预防是最好的!只是再怎么预防还是有发生故障的可能,所以各方面准备措施都需要准备齐全。
作者回复: PagerDuty这个产品可以了解下看看,很适合用来做故障报警工具,不知道国内是否有同类产品。