与许多现代软件组织一样,新的遗物工程团队拥抱Devops,我们认为新的遗物是一个强大的Devops平台。任何Devops实践的一部分包括通过开发减少劳动和自动化手动任务的技术来提高系统工作的方式,这通常被称为可靠性。但是,New Relic的团队具体如何使用我们自己的平台来增强我们的DevOps和可靠性实践呢?

我们在世界各地的工程团队在多种复杂的方式上互相互动的多种码名。新型遗物平台的架构使用像微服务和容器这样的技术;这些添加了编写的代码之间的抽象层,以及该代码的何处以及如何执行。我们的系统变得越复杂,安全性,有效和可靠地改变更具挑战性越大。幸运的是,作为Devops从业者,我们已经找到了许多方法来利用新的遗物来提高产品的可靠性和可用性。亚博最新版直播

这是一半的例子新的遗物警报团队使用New Relic来实现这些目标。

不要错过:衡量Devops成功的新遗物指南

1.通过容量监控的可靠性

很少有人会否认这一点有效的容量规划这可能是一场斗争。这通常是一个手工过程,需要团队分析一堆数据和未来的项目增长。在警报团队中,我们利用警报平台自动化了部分容量规划流程。

为了做到这一点,我们创建警报条件监视关于我们的服务和事件和事件(如CPU使用率和队列拒绝)以及由新的遗物的容器编排平台生成的其他指标和队列,这些定义指标和事件都在管理所有集装箱中的所有集装箱服务。

警报团队设置警报条件以监控其容量需求。

这些条件观察资源使用的增加,可能要求我们扩展我们的能力。更重要的是,这种方法给出了我们的低优先级通知渠道,我们可以在它们变得至关重要之前长时间检测缩放问题。我们还能够减少我们作为审查我们的能力的团队的时间。

2.SLA监控的可靠性

除了容量规划,我们还负责维护警报服务的质量和可用性,以满足客户的期望,特别是通过服务水平协议(service level agreement, sla)。与容量监控一样,设置SLA可能是一项耗时的工作。

在警报团队中,我们通过以自定义指标和事件的形式记录整个系统中的关键指标来计算我们的SLA。更具体地说,我们的SLA基于通知延迟,即New Relic警报在接收到用于评估的数据后生成通知所需的时间。

我们监控我们的SLA,所以我们可以在有SLA未命中通知我们,我们还有一个SLA仪表板,我们与我们的团队,支持团队和其他对我们当前地位感兴趣的组织分享的SLA仪表板。通过减少计算SLA所需的手动工作量,我们将采取更新的时间来专注于特色开发和可靠性工作,同时保持有信心我们提供用户期望的服务水平。

3.通过SLI监控可靠性

当DevOps团队能够创建他们自己的SLA条件时,这是很好的,但如果他们能够跨整个工程组织一起工作来建立,那就更好了服务水平指标(SLIs)对于整个平台。SLIS是系统可用性的关键测量,因此,它们存在帮助工程团队做出更好的决策。解决在我们的工程团队中分散和手动进入SLI信息的问题,新的遗物可靠性团队创建了一个名为Galileo的API系统。构建在New Relic警报之上,Galileo检测所有New Relic的关键系统健康指示器的违规,并将违规发送为警报事件通知Webhooks到内部数据库。最终结果?由内置于新遗物平台之上的系统自动生成的系统运行状况的中央存储库。

新的遗物Devops团队使用内部伽利略API来警报整个平台上的SLI违规。

4.通过数据健康的可靠性

“为什么我的警戒状况违反并通知我?”

这是警报团队不希望看到的支持通知单。通常,这些票据引用客户配置的条件NRQL (New Relic Query Language)条件。随着时间的推移,我们看到了足够多的这种票New Relic的见解创建数据应用(链接仪表板的集合),我们可以用作支持工具来弄清楚正在发生的事情。我们的数据应用程序组合元数据在NRQL查询结果上提供,内部评估数据从警报管道收集到一个洞察事件,并给出了跟踪我们数据流的保真度的能力。

Alerts团队使用数据应用程序来获得其数据流的整体视图。(为保护隐私,图片已更改。)

更具体地说,我们能够使用数据应用来确定警报流是否缺少数据或者支持票证真正需要更多调查,从而节省我们的团队很多故障排除时间。

5.通过“黑暗数据”可靠性

推出一个新特性是很耗时的,尤其是当团队需要缓解发布后的问题时保持可靠性水平。为了解决这些问题,警报团队一直在使用“黑暗数据”的想法:在“暗物质”概念上的播放,其中系统存在数据,但用户无法直接观察到。通过使用现有逻辑并排流动,通过运行新的逻辑或数据来收集“黑暗数据”,以便获得新功能功能的信心,并且我们已正确缩放我们的基础架构以支持它来支持它以支持它来支持它。

使用功能标志和自定义事件的组合,我们会记录新的代码路径是否直播,并且我们在仪表板中可视化该数据,因此我们可以将新代码的性能与已存在的内容进行比较。这是我们用于在推出决策中通知风险降低和估计准确性的真实数据。

6.通过游戏日测试的可靠性

警报团队定期执行gameday测试有助于确保我们的一切正常工作在系统中引入混乱- DevOps的最佳实践。我们的gamedays要求我们在开始前有警报条件,因为我们的目标是验证我们设置的警报条件是否真的会在发生宕机时通知我们。

手动创建警报条件可能很乏味,所以我们使用标签将应用程序分组在一起报警的目的。然后,我们可以创建针对标签而不是单个服务的警报条件,这对于具有类似行为和阈值的服务特别有效。通过将服务划分为不同的警报策略,我们能够在游戏日设置中测试警报条件,而不会意外地分页待命的工程师。使用标签还可以更容易地在警报策略之间移动服务,我们只需根据需要更改标签。通过减少比赛日的准备时间,我们可以花更多的时间来提高系统的可靠性。

加速你的Devops速度

花在平凡和重复任务上的时间就是时间花在我们创造更完美的互联网的使命。寻找改善我们的投掷效率的方法对我们的成功至关重要。幸运的是,我们在我们的处置有一个惊人的资源:新的遗物平台。

乔纳森·佩尔林(Jonathan Pearlin)是New Relic的首席软件工程师。他喜欢将自己的经验应用于解决规模和增长问题,尤其是那些涉及近实时处理的问题。查看贴子

有兴趣为New Relic博客写作吗?亚搏体育登入网送我们一个球场!!