如何在部署中实施实时监控
创始人
2025-07-06 15:21:10
0

译者 | 陈峻

审核 | 重楼

不可否认,在当今的技术环境中,应用系统已变得越来越繁杂。为了及时获悉各种软件应用的健康和服务状态,我们需要通过关注基本的应用指标,来确保应用的所有组件在部署的整个过程中,按照预期运行。

不过,对于项目团队而言,在部署过程中实施实时的监控,似乎已成为了极难实现的运营“必备品”。对此,Datadog正好一显身手。它是一个业界领先的监控和分析平台,可以提供从前端应用到底层硬件等基础架构的每个部分的可见性。与之配套的是大家较为熟悉的Ansible。这是一款在部署和配置管理方面尤为强大的自动化工具。

在本文中,我将和您讨论Datadog实时监控会被如何集成到基于Ansible的部署中,以及在整体部署过程中,如何通过实时监控以大幅降低事故的发生。当然,其相关概念与方法,也可以被应用到类似的监控和部署工具集中。

为何要在部署中集成实时监控?

在不断迭代与发展的DevOps领域,开发与运营之间的界限正变得越来越模糊,两者直接的协作正变得越来越紧密。正是这种整合,促进了团队成员越来越需要在应用系统的整个生命周期内进行持续监控,而不仅仅是在部署之后才监控。

那么,如果将Datadog与您的现有部署流程、及部署脚本相集成,到底能够带来哪些优势呢?我为您总结了如下三项基本要素:

  1. 即时反馈:在部署过程中实施实时监控的主要好处之一是,它能够创建即时的反馈回路。特别是在滚动部署的过程中,当一台或多台主机部署出现问题时,实时监控数据可以立即被用于做出暂停或启动部署回滚的决策。这种快速回撤往往就决定了是会发生较小的故障,还是大型灾难。尤其是对于某些海量用户级别的应用而言,即使1分钟的停机时间,也可能导致大量的错误和损失。
  2. 资源和性能监控:在部署新功能或变更现有服务时,我们往往会在无形中引入涉及到性能、资源利用率、以及相关成本的风险。而通过实时监控,团队可以立即获悉变更给系统性能和资源利用率造成的影响,进而采取任何必要的即时补救措施,以确保用户继续获得最佳的使用体验。
  3. 主动解决问题:通过将Datadog直接集成到部署流程中,而不是在最终用户受到影响后才对问题做出反应,项目团队可以更主动的方式解决问题,并防止潜在的问题演变成重大故障。这种积极主动的方法,不但可以增加系统的整体正常运行时间,并提高部署发布的稳定性,而且能够保障用户持续的满意度。

在部署中实施实时监控的过程

一旦部署工具被触发,底层的脚本就会开始执行。对此,我们需要根据应用的各项实际需求,预先确定执行监控检查的理想位置,并发送一个或多个Datadog API请求,去查询相关指标、监控过程数据、或其他有助于我们确定部署和整个应用健康状况的信息。

据此,我们需要在脚本中添加逻辑,以便解析来自Datadog的API响应,并做出是否转入下一组部署的适当决策。例如,如果我们发现错误过多、且监控频繁报障的话,那么我们就应该相应地对这些收集到的信息予以解析,以决定是否中止部署,不再继续下去,从而减少潜在的生产事故的影响半径。下图展示了这个典型的工作流程。当然,具体各个阶段可以根据您的应用的实际需求进行调整。

具有集成监控的部署流具有集成监控的部署流

利用Datadog及其API接口进行实时查询

除了基础监控功能,Datadog还提供了另一个增强DevOps团队能力的关键优势:其强大的API接口。它不仅是一项功能,更是一种变革性的工具。借助以编程方式查询指标、以及各项跟踪和日志等能力,项目团队可以动态地将Datadog更深入地集成到其运营之中。据此,他们可以进行定制化的监控配置、自动警报设置、以及即时提取相关数据。而且,这种实时查询不仅仅是为了获取数据,更是为了给部署决策提供相关信息,完善应用性能,进而创建一个更具协同性的技术生态环境。通过利用Datadog的API,监控不再是一种被动的观察,而是优化部署工作流程的主动驱动力。

同时,作为一种监控工具,Datadog可以密切关注目标系统的各项技术设置,检查其性能和错误状况。由于能够提供及时的反馈,因此系统一旦出现问题,Datadog就会立即向运营团队发出警报,以协助他们更快地解决问题,保持一切顺利运行。在如下的实施方案中,我们通过获取查询监控器的数据,以判定是否有任何被触发的警报。此外,我们还会查询各项指标和其他类似的数据,以协助确定应用的健康状况。

下图展示便是一个从Datadog的API参考表中,获取特定监视器详细信息的示例。

对Datadog API端点的Curl请求示例对Datadog API端点的Curl请求示例

以Ansible自动化部署为例

当我们使用Datadog等工具深入研究复杂的监控时,了解支撑目标应用的部署机制是至关重要的。在此,我们将以Ansible为例。如前所述,它是一款以简单性和强大功能为显著优势的开源自动化工具。

通常,Ansible会使用声明式语言(Declarative Language)来定义系统配置,使其既易于人类阅读,又能够直接与各种平台和工具相集成。在部署方面,Ansible可以确保一致性和可重复的应用部署,从而降低与手动流程相关的各类风险。如果与Datadog等实时监控解决方案配合使用,Ansible不仅可以自动化部署应用,而且能够确保它们在部署之后以最佳的状态运行。可以说,这种自动化部署与实时监控之间的协同,构建出了一个强大的、反应灵敏的、容错性高的部署生态系统。

下图的代码片段展示了在Ansible中,Datadog监控器如何实现以“deployment_priority: blocker”为标签,进行查询的示例。

在Ansible中实现的监控查询在Ansible中实现的监控查询

在此基础上,我们需要解析从Datadog返回的所有此类监控的状态,以决定是终止监控,还是继续到下一台主机或下一组部署。

迭代监视器的解析和决策的制定迭代监视器的解析和决策的制定

至此,我们已完成了在部署过程中实施实时监控,并具备了对Datadog的监控信息予以解析,进而在部署过程中及时做出明智的决策的能力。

小结

在上文的探讨中,我们既利用了强大的部署工具Ansible所提供的一致、可靠的部署的能力;又结合了Datadog等平台的细粒度实时监控能力,提高了项目部署的运营效率和可靠性。随着技术领域的不断发展,Ansible和Datadog等工具充分证明了集成式智能DevOps的实践潜力。

无论您是经验丰富的DevOps专业人士,还是刚刚涉足本领域的“小白”,了解并利用这种协同,都将有利于打造一个面向未来、具有高自愈能力的技术生态系统。

译者介绍

陈峻(Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。

原文标题:Implementing Real-Time Datadog Monitoring in Deployments,作者:Prithvish Kovelamudi

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...