如何在部署中实施实时监控

译者 | 陈峻
审核 | 重楼
不可否认,在当今的技术环境中,应用系统已变得越来越繁杂 。为了及时获悉各种软件应用的健康和服务状态,我们需要通过关注基本的应用指标,来确保应用的所有组件在部署的整个过程中,按照预期运行 。
不过,对于项目团队而言,在部署过程中实施实时的监控,似乎已成为了极难实现的运营“必备品” 。对此,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就会立即向运营团队发出警报,以协助他们更快地解决问题 , 保持一切顺利运行 。在如下的实施方案中,我们通过获取查询监控器的数据,以判定是否有任何被触发的警报 。此外,我们还会查询各项指标和其他类似的数据,以协助确定应用的健康状况 。


推荐阅读