虽然DevOps监控对部署的代码很重要,但最佳监控实践寻求建立在“向左移动”的安全概念之上。换句话说,DevOps中的监控在软件开发生命周期(SDLC)的早期就开始了。这有助于在他们投入生产之前发现效率低下、风险和潜在的客户问题。
在本指南中,我们将探讨监控在DevOps实践中的作用,并回答有关DevOps监控工具的关键问题,包括:
- 什么是DevOps监控工具?
- 什么是DevOps中的持续监控?
- 您应该在DevOps实践中的何处实施监控工具?
- 您应该在DevOps监控工具中寻找哪些功能?
什么是DevOps监控工具?
监控是成功的DevOps实践的核心部分,也是在生产之前了解和检测任何潜在问题并发现生产中可能出现的任何问题的关键方法。
为了实现这一点,组织通常会利用一些DevOps监控工具,如崩溃报告工具、应用程序性能监控(APM)平台和服务器监控工具,以收集软件开发生命周期(SDLC)所有阶段的数据,并提出可操作的见解,以提高运营性能。
DevOps监控工具使组织能够将自动化监控阶段构建为SDLC中的关键点,以提高代码库、应用程序及其底层基础设施的性能。由于一个组织的SDLC中可能有数千个移动部件,因此自动化对于实现一致的监控实践至关重要。
正确实施后,DevOps监控工具有助于聚合数据,返回可操作的见解,并将其反馈到更广泛的DevOps管道中,以发现SDLC中的任何潜在问题。这种做法经常被称为连续监测并借鉴DevOps的持续改进理念。
什么是DevOps中的持续监控?
不久前,监控成本很高。工具将占用宝贵的系统资源,并需要手动干预。此外,这些工具提供的数据往往需要时间来解析和处理。因此,组织通常只监控关键任务流程,如编码问题和生产级性能。
如今,由于使用了更先进的工具,收集数据要容易得多,但数据量也大大增加了。这意味着组织现在需要确定如何最好地管理、解释和处理更大数量的数据。
持续监控是一种通过将监控构建到SDLC的每个部分来解决此问题的实践。其主要目标是能够快速检测任何潜在问题并提供实时反馈。
持续监控实践将利用一系列工具和一系列自动化测试来评估应用程序及其底层基础设施的新代码和生产性能。主要目标是提供所有系统的自动化360度视图,并确保合适的人员知道何时何地进行干预。
最佳持续监控实践通常会优先收集尽可能多的数据,以便对系统进行整体审计,并分析潜在的运营问题以及合规和安全风险。

在DevOps实践中何处实施监控工具
就像迁移到DevOps本身一样,建立一个成功的DevOps监控策略需要文化、流程和工具的混合。虽然您可以从其他组织如何管理监控中获得灵感,但您采用的精确模型将由您的组织和SDLC的独特需求驱动。
有很多框架提供了关于捕获什么数据的指导。但我知道哪里实施监控是一个优化问题。你需要回答什么问题?你需要什么数据来获得这些答案?你将如何处理这些数据?谁应该参与?
有七种类型的监控,每种监控都适用于DevOps实践的不同部分。其中包括:
基础设施监控:在产品技术堆栈的最底层,基础设施监控可以帮助您了解内存和CPU等约束如何影响应用程序的性能。
应用程序性能监视(APM):将APM提升到更高的级别,它将显示有关应用程序性能的信号,并提供如何更好地优化应用程序以改进正常运行时间和响应能力的见解。
发展速度监测:这种监控实践可以确定您的组织速度,或者您向用户发送新代码的速度,以及您通过DevOps管道交付价值的速度。
网络监控:这有助于您的组织了解网络性能,并有助于识别效率低下的情况,以及在出现异常流量模式时的安全漏洞。
用户行为监控:不寻常的个人使用模式往往讲述了一个故事。例如,较高级别的密码尝试失败可能表明发生了暴力攻击。访问管理员页面的新用户可能会提供权限提升的证据。
安全监控:除了DevSecOps方法之外,安全监控还可以自动发现代码和依赖项中的漏洞。
配置监控:在DevOps实践中,对基础设施的更改是交付新代码和更新代码的常见部分。监控配置更改有助于提供此类修改的概览,并对不可预见的影响提供预警。
您应该在DevOps监控工具中寻找的功能
有多种工具可供选择,以帮助您将监控构建到DevOps实践中。您选择的确切产品取决于SDLC的形状和应用程序的基础设施。但在评估监控工具时,您应该首先问两个核心问题:
关于这些问题,您的评估应该考虑工具在以下方面的表现。
它是否提供统一的仪表板?您的产品是许多服务、库和第三方产品协同工作的结果。一个好的监控仪表板可以让您鸟瞰各个部分的工作方式,并更容易看到警报和关注区域。
它是否与您更广泛的技术堆栈完全集成?该工具与您已经使用的工具有专门的集成吗?当响应时间受到影响时,您可以自动部署更多容器吗?它会将日志条目流式传输到您的集中式日志管理工具吗?它是否有REST API或支持开放标准(如SNMP),允许您进行自己的集成?
它是否将警报和通知与您现有的工具集成在一起?您的监控工具应使人们能够在需要手动干预时及时采取行动。它支持直接发出警报还是与现有的通知工具集成?
其报告功能是否与您的分析工具集成监控仪表盘作为专用空间非常出色,但许多组织都建立了报告和分析工具。您正在评估的工具是否与您组织选择的分析平台集成?

解决方案提供哪些类型的审核日志?了解系统是如何达到当前状态的很重要,尤其是在出现问题时。审计日志提供了一个逐项操作的记录,记录了发生的情况以及负责的流程或人员。这既有助于根本原因分析,也可以为学习在何处进行系统改进提供基础。您选择的解决方案提供了哪些类型的审核日志,以及它们如何显示重要信息?
它的数据保留存储需要什么?监控工具会生成大量数据。这使得了解当前的存储需求或云成本非常重要,以便在不存储超过使用寿命的数据的情况下保持足够的历史记录。
解决方案提供什么类型的诊断?该工具是否提醒您症状或帮助诊断潜在问题?更全面的工具,例如应用程序性能管理平台,将帮助您了解在复杂情况下发生的事情,例如多个异步微服务协同工作。
在GitHub上构建您的DevOps实践
GitHub是一个集成平台,它将公司从构思到规划再到生产,将专注于开发的经验与强大的、完全管理的开发、自动化和测试基础设施相结合。
比较定价计划>
比较DevOps解决方案>
GitHub通过打破沟通障碍、缩短反馈回路和尽可能自动化任务,帮助公司长期以来加速发展的努力。”
Mike Artis,系统工程总监ViacomCBS公司
从规划到建设 |
提高显影速度 |
在代码库旁边构建路线图计划,并使用完全集成到项目中的强大项目板和表快速将任务分配给团队成员。
了解GitHub问题> |
减少提交时间。消除开发人员的环境管理和上下文切换。通过云中安全、受管理的空间简化IT采购和维护。
探索代码空间> |
|
|
自动化一切 |
在编写代码时保护代码 |
---------- |
---------- |
使用GitHub Actions自动化所有软件开发工作流。通过功能强大的开发、测试和自动化基础设施可靠、安全地扩展,并完全由GitHub管理。
了解有关GitHub操作的更多信息> |
在整个软件开发生命周期中保护代码、依赖项、令牌和敏感数据,并自动解决漏洞。
了解我们如何帮助您保持安全> |