生产环境解决跨域得问题
如果您在生产环境中发现一些重复出现的问题,该怎么办?
好吧,令人惊讶的是,大多数情况下重新启动是可行的,但是如果您要在多个数据中心中的100台具有代码的机器上管理10项服务,那么即使重新启动也可能是一项全职维护工作。 我已经看到,管理微服务的团队必须保留2-3个软件工程师才能管理服务和不时重启服务器。
生产问题绝非罕见,维护存在很多未知生产问题的服务确实是非常痛苦的事情,这可能导致各种各样的问题。
- 人们开始寻找新工作,这会形成反馈循环,使问题更加严重。
- 开发人员不断分散注意力以解决问题
- 完成实际的新任务变得困难
- 随着时间的流逝,人们和团队可能会害怕发布新功能
- 经理们不再信任团队成员,而是开始提出很多流程来阻止人们发布内容
好的,现在我们已经确定这是一个严重的问题。 有什么解决方案?
基本上,我认为解决生产问题有两个问题
- 优先次序
- 技术挑战/调试
我已经看到,有时接手解决问题的任务可能比实际解决方案要大得多,而且我认为有多种原因。
- 生产问题无处不在,它与计划中的任务搞砸了,因此我们倾向于忽略它。
- 很难预测解决该问题将花费多少时间
3. “它发生了几次”,我们以某种方式希望它自行消失。
4. 对于很多人来说,一次又一次重启似乎是一个更容易的选择。
解决上述问题可能很棘手。 您必须说服经理和团队成员停止执行某些任务并进行调查。 但是,让我们说说您如何优先考虑它,然后又如何解决呢?
随着时间的流逝,我了解到调试或任何生产调查就像是解决问题的科学过程。 您需要牢记一些注意事项。
- 在对问题做出任何假设之前,请尝试了解有关该问题的系统。 围绕它做很多实验。 如有必要,绘制图表,做笔记等。 这很重要,因为如果您在不了解系统的情况下对问题做出假设或假设。 很难摆脱这些假设并看到全部情况。
- 尝试以最小设置重现该问题,这样可以更快地进行实验和尝试。 最终,这也将帮助您验证此修复程序。
- 首先验证简单假设 。 很多时候,我们提出一些难以验证的复杂假设,但问题最终变得非常简单。
- 很多时候,这个问题是某个库中的一个已知问题,可以在StackOverflow上进行搜索,或者在StackOverflow上发布包含所有详细信息的新问题。 从发布问题中获得的见解会让您感到惊讶,因为这迫使您以最小的复制场景来构建问题 。 偏离路线的StackOverflow社区也很棒,因此他们可以为您提供答案。
- 如果您仍然找不到根本原因,请将该问题发送给您的同事以换个角度。 有时候很难摆脱自己的假设。
- 如果您仍然找不到问题,请记录下您的主要发现,找到解决方法(最好重新启动每次发生的问题:P),然后继续。
- 从错误中吸取教训,并在下一次变得更好。
我看到很多时间浪费在解决问题上,所以如果这可以帮助甚至更少的人更快地解决问题,那么写这本书是值得的。 如果您喜欢这些内容,请拍一下(👏),让我知道您的想法?
翻译自: https://hackernoon.com/how-to-investigate-fix-production-issues-92375e095578
生产环境解决跨域得问题