监控即代码 (MaC) 是一种思维转变,现在越来越多地被软件开发采用。了解 MaC 的重要性并尽早将监控纳入开发过程可为 DevOps 团队带来大量好处。
什么是 MaC?
MaC 是全球 DevOps 和站点可靠性团队采用的一切即代码思维方式的延伸。MaC 类似于基础设施即代码 (IaC) 的方法。
为什么选择 MaC?
由于敏捷的项目管理方法和容器等公共云原生基础设施的广泛使用,今天的软件更新更快、更频繁。
敏捷世界还需要持续集成和持续交付 (CI/CD) 方法,其中需要在整个开发过程中集成监控,而不仅仅是事后考虑。由于对完全可观察性的需求需要软件开发周期的综合指标,因此 MaC 已变得必不可少。当在开发级别集成监控时,可以提供有洞察力和全面的指标,这就是 MaC 发挥作用的地方。
为了在整个应用程序开发周期中获得洞察力和综合指标,“计划、编码、构建、测试、发布、部署、运维、监控”的传统开发周期被“计划、代码、构建、测试、监控、反馈、运维、监控”循环。由于监控已接近流程的开始,因此称为左移。
MaC 的工作原理
MaC 管理监控就像 IaC 管理应用程序、服务器或其他云基础架构组件一样。在其核心,MaC 涉及为重要的业务关键 KPI 收集数据,软件架构师、产品经理和 CXO 可以不断跟踪这些 KPI 以帮助决策制定。
通过对监控流程进行编码,开发人员建立了一个具有严格版本控制的强大框架,可以在应用程序发展时重复、维护和继承。使用 MaC,代码中的任何微小或重大变化都可以通过有助于更好地管理应用程序生命周期的指标立即观察到。
来自 MaC 的数据也可用作设置反应式逻辑自动化以确保补救的基础。MaC 在安装和配置插件和代理方面超越了自动化,需要涵盖完整的可观察性周期,包括诊断、警报和故障排除。这是通过构建自动化脚本来监控代码中的功能来完成的。
MaC 的插图
一个团队开发了一个 Web 应用程序,将其部署给公众,并希望得到即时监控。借助 MaC,ITOps 可以作为内置功能即时观察应用程序的实时运行情况。当实施了 MaC 的 Web 应用程序从开发人员传递到 ITOps 团队时,ITOps 团队可以立即了解该应用程序,并可以继续对其进行监控,以确保出色的最终用户体验。
借助 MaC,可以通过监控 KPI 来获得洞察力。例如,正在运行的任务数量是监控工具可以跟踪的重要 KPI,其中任何剧烈变化都表明可能存在影响业务的潜在系统问题。
在电子商务网站中,支付量、购物车添加量和顺利结账是需要跟踪的重要 KPI。同时,对于数据库管理员和开发工程师来说,数据库连接数是一个至关重要的 KPI。对于社交媒体网站,最重要的 KPI 是注册数量。如果注册率急剧下降,则意味着管理层需要解决一些问题。
MaC 的好处
DevOps 团队可以轻松地将监控工具集成到他们的代码中,以确保强大的集成之旅。在同一开发管道中集成监控可提供早期故障警告,从而节省在部署前阶段运行错误脚本的时间。由于深入的可观察性,MaC 还确保更快、更轻松地交付高质量软件,同时减少问题。这种深入的可观察性是可能的,因为 MaC 有助于分析应用程序堆栈的所有层,直至代码和数据库级别。
MaC 确保符合产品 SLA。MaC 可以通过 API 开放监控洞察力,使开发人员能够在构建时确保所有关键组件的正常运行,而无需等待运营团队发掘它们。通过全面的文档、测试和用例定义,MaC 还使开发人员能够执行早期的课程修正,以确保完美地移交给运营团队。
监控即代码还确保收集指标、跟踪和日志以进行诊断、警报、处理,更重要的是,自动修复。借助 MaC,由于版本控制,还可以轻松地将应用程序无缝回滚到任何过去的状态。MaC 提供对软件交付管道的完整可见性,使监控数据对从构建阶段到部署再到进一步可观察性阶段的每个人都有用。MaC 集成工具具有应用程序参数,这些参数提供基于代码的指标捕获工具,以供管理层跟踪。
为了顺利实现 MaC,有一些配置管理工具,如Terraform和几个 API 可用于帮助 DevOps 团队。预计 MaC 将在 DevOps 领域获得广泛采用,以帮助更快、更好地部署。
结论
虽然监控在早期只是作为开发的事后才执行的,但今天的敏捷开发实践可以通过在开发周期的早期集成监控而受益于深入的可见性。当监控嵌入代码级别时,ITOps、DevOps 和业务所有者可以获得对整个软件开发生命周期的前所未有的全面洞察,确保为所有人提供高质量的用户体验。