亚马逊AWS官方博客

AWS DevOps Agent 可帮助您加快事件响应并提高系统可靠性(预览版)

今天,我们将发布 AWS DevOps Agent 公开预览版,这是一款前沿代理,可通过系统分析过去的事件和运营模式,帮助您应对事件、确定根本原因并预防未来的问题。

前沿代理代表了一类新的人工智能代理,它们具有自主性,可大规模扩展,无需持续干预即可工作数小时或数天。

发生生产事件时,待命工程师往往会面临巨大压力,他们需要在管理利益相关者沟通的同时快速确定根本原因。他们还必须分析多个监控工具的数据,审查最近的部署情况,并协调响应团队。服务恢复后,团队往往缺乏足够的精力将事件经验转化为系统性的改进措施。

AWS DevOps Agent 就像随时待命的自主工程师。当问题出现时,它会自动关联您运营工具链中的数据,包括指标、日志以及 GitHub 或 GitLab 中的最新代码部署。它能够识别可能的根本原因,并推荐有针对性的缓解措施,从而帮助您缩短平均问题解决时间。此外,该代理还能管理事件协调,利用 Slack 频道向利益相关者更新信息,并维护详细的调查时间表。

首先,您需要通过 AWS 管理控制台将 AWS DevOps Agent 连接到您的现有工具。该代理可与 Amazon CloudWatchDatadogDynatraceNew RelicSplunk 等热门服务配合使用,获取可观测性数据,同时与 GitHub Actions 和 GitLab CI/CD 集成,跟踪部署及其对云资源的影响。通过自带(BYO)模型上下文协议(MCP)服务器功能,您还可以将其他工具(例如您组织的自定义工具、专用平台或 GrafanaPrometheus 等开源可观测性解决方案)集成到您的调查中。

该代理可作为虚拟团队成员,并且可进行配置来自动响应来自工单系统的事件。该代理包含对 ServiceNow 的内置支持,此外,通过可配置的 Webhook,该代理还可以响应来自 PagerDuty 等其他事件管理工具的事件。随着调查的深入,代理会将调查发现更新到工单和相关的 Slack 频道中。所有这些都得益于代理构建的智能应用程序拓扑,这是一个包含系统组件及其交互的全面映射,其中包括部署历史记录,这有助于在调查过程中识别潜在的部署相关原因。

我将向您展示它的工作原理
为了向您展示它的工作原理,我部署了一个简单的 AWS Lambda 函数,该函数在调用时会故意生成错误。我将其部署在 AWS CloudFormation 堆栈中。

步骤 1:创建代理空间

代理空间定义了 AWS DevOps Agent 在执行任务时可以访问的范围。

您可以根据自己的运营模型来组织代理空间。有些团队会将代理空间与单个应用程序关联起来,有些团队会为每个待命团队创建一个代理空间来管理多个服务,还有一些组织采用集中式方法。在本演示中,我将向您展示如何为单个应用程序创建代理空间。这种设置有助于隔离针对特定应用程序的调查和资源,从而更轻松地在其上下文中跟踪和分析事件。

AWS 管理控制台的“AWS DevOps Agent”部分,选择创建代理空间,为此空间输入名称,并创建 AWS Identity and Access Management(IAM)角色,代理将使用此角色检查我或其他人的 AWS 账户中的 AWS 资源。

AWS DevOps Agent – 创建代理空间在本演示中,我选择启用 AWS DevOps Agent Web 应用程序;稍后会详细介绍。这可以在稍后阶段完成。

准备就绪后,我选择创建

AWS DevOps Agent – 启用 Web 应用程序创建后,我选择拓扑选项卡。

此视图显示 AWS DevOps Agent 为高效执行任务而选择的关键资源、实体和关系。它并非显示 AWS DevOps Agent 可以访问或查看的所有内容,而仅显示 Agent 认为当前最相关的资源。默认情况下,拓扑包含我的账户中的 AWS 资源。随着代理完成更多任务,它将发现新资源并将其添加到此列表中。

AWS DevOps Agent – 拓扑

步骤 2:为操作人员配置 AWS DevOps Web 应用程序

AWS DevOps Agent Web 应用程序为待命工程师提供了 Web 界面,可以手动触发调查、查看包括相关拓扑元素在内的调查详细信息、指导调查以及询问有关调查的问题。

通过选择操作人员访问链接,我可以直接从 AWS 管理控制台中的代理空间访问 Web 应用程序。或者,我可以使用 AWS IAM Identity Center 为团队配置用户访问权限。IAM Identity Center 允许我直接管理用户和组,或者连接到身份提供者(IdP),从而以集中式方法来控制谁可以访问 AWS DevOps Agent Web 应用程序。

AWS DevOps Agent – Web 应用程序访问权限

现阶段,我已经设置了一个代理空间,用于集中调查和资源来处理此特定应用程序,并且我已经授权 DevOps 团队使用该 Web 应用程序发起调查。

现在,此应用程序的一次性设置已经完成,我开始调用存在故障的 Lambda 函数。它在每次调用时都会产生错误。与 Lambda 错误计数关联的 CloudWatch 警报进入 ALARM 状态。在实际应用中,您可能会收到来自外部服务(例如 ServiceNow)的警报。您可以配置 AWS DevOps Agent,使其在收到此类警报时自动启动调查。

在本演示中,我通过选择开始调查来手动开始调查。

您还可以从几个预配置的起点中进行选择,以便快速开始调查:最新警报,用于调查最近触发的警报,并分析底层指标和日志以确定根本原因;CPU 使用率过高,用于调查计算资源中 CPU 利用率过高的指标,并确定哪些进程或服务消耗了过多的资源;或错误率激增,通过分析指标、应用程序日志并确定故障来源来调查最近应用程序错误率增加的情况。

AWS DevOps Agent – Web 应用程序

我输入了一些信息,例如调查详细信息调查起点事件发生的日期和时间事件的 AWS 账户 ID

– Web 应用程序 – 开始调查

在 AWS DevOps Agent Web 应用程序中,您可以实时查看调查进展。代理会识别应用程序堆栈。它还会关联来自 CloudWatch 的指标,检查来自 CloudWatch Logs 或外部来源(例如 Splunk)的日志,审查来自 GitHub 的最新代码更改,并分析来自 AWS X-Ray 的跟踪信息。

– Web 应用程序 – 应用程序堆栈

该代理可以识别错误模式并提供详细的调查摘要。在本演示中,调查结果表明这些是故意设置的测试异常,显示了导致警报的函数调用时间线,甚至还提出了有关错误处理的监控改进建议。

该代理在 Slack 中使用专用的事件渠道,在需要时通知待命团队,同时向利益相关者提供实时状态更新。通过调查聊天界面,您可以直接与代理互动,提出诸如“你分析了哪些日志?”之类的澄清问题,或者通过提供更多背景信息(例如“重点关注这些特定的日志组并重新运行分析”)来引导调查。 如果您需要专家协助,只需单击一下即可创建 AWS Support 案例,案例会自动填充代理的调查结果,并通过调查聊天窗口直接与 AWS Support 专家沟通。

在本演示中,AWS DevOps Agent 正确识别了 Lambda 控制台中的手动操作,调用故意触发错误的函数 😇。

– Web 应用程序 – 根本原因

除了事件响应之外,AWS DevOps Agent 还会分析我最近的事件,找出能够预防未来问题的高影响力改进措施。

在事件发生期间,代理会通过其事件缓解选项卡提供即时缓解方案,以便快速恢复服务。缓解计划包含各种规范,为开发人员和代理式开发工具(例如 Kiro)提供详细的实施指导。

为了提升长期韧性,它通过检查可观测性、基础设施配置和部署管道中的不足之处,来确定潜在的改进方案。然而,我故意触发了错误的简单演示并不足以生成相关的建议。

AWS DevOps Agent – Web 应用程序 – 建议

例如,代理可能会检测到某个关键服务缺乏多可用区部署和全面的监控。然后,代理会考虑运营影响和实施复杂性等因素,生成包含实施指南的详细建议。在即将发布的快速跟进版本中,代理将扩展其分析范围,涵盖代码缺陷和测试覆盖范围改进。

可用性
您今天即可在美国东部(弗吉尼亚州北部)地区试用 AWS DevOps Agent。尽管代理本身在美国东部(弗吉尼亚州北部)(us-east-1)运行,但它可以监控部署在任何区域、跨多个 AWS 账户的应用程序。

在预览期间,您可以免费使用 AWS DevOps Agent,但每月代理任务小时数会有限制。

作为曾无数次熬夜调试生产环境问题的人,我很期待看到 AWS DevOps Agent 将深入的运营见解与切实可行的建议相结合。这项服务能够帮助团队从被动的消防式维护转变为主动的系统改进。

要了解更多信息并注册预览版,请访问 AWS DevOps Agent。 我期待了解 AWS DevOps Agent 如何帮助您提高运营效率。

– seb