

# OPS 10  您如何应对工作负载事件和运营事件？
<a name="w2aac19b5b9b9"></a>

 制定和验证用于响应事件的程序，以便尽可能减少其对工作负载的干扰。 

**Topics**
+ [OPS10-BP01 使用流程来管理事件、意外事件和问题](ops_event_response_event_incident_problem_process.md)
+ [OPS10-BP02 针对每个提醒设置一个流程](ops_event_response_process_per_alert.md)
+ [OPS10-BP03 根据业务影响确定运营事件的优先顺序](ops_event_response_prioritize_events.md)
+ [OPS10-BP04 定义上报路径](ops_event_response_define_escalation_paths.md)
+ [OPS10-BP05 启用推送通知](ops_event_response_push_notify.md)
+ [OPS10-BP06 通过控制面板展现状况信息](ops_event_response_dashboards.md)
+ [OPS10-BP07 自动响应事件](ops_event_response_auto_event_response.md)

# OPS10-BP01 使用流程来管理事件、意外事件和问题
<a name="ops_event_response_event_incident_problem_process"></a>

贵组织拥有处理事件、意外事件和问题的流程。*事件* 是在工作负载中发生但可能不需要干预的事情。*意外事件* 是需要干预的事件。 *问题* 是需要干预或无法解决的反复发生的事件。您需要一些流程来减轻这些事件对业务的影响，并确保做出适当的响应。

当您的工作负载发生意外事件和问题时，您需要一些流程来处理它们。您将如何与利益相关者沟通事件的状态？ 谁负责监督领导应对工作？ 您用什么工具来减轻事件的影响？ 这些是您建立可靠的响应流程所需回答的一些问题的例子。

这些流程必须记录在一个中央位置，并可供参与您工作负载的任何人使用。如果您没有中央 Wiki 或文档存储区，可以使用版本控制存储库。随着流程的发展，您将不断更新这些计划。

接下来将需要对问题进行自动化。这些事情占用了您的时间，限制了您的创新能力。首先构建一个可重复的流程来缓解问题。随着时间的推移，将重点放在自动化缓解或修复根本问题上。这样就可以腾出时间来改进您的工作负载。

**期望结果：** 贵组织拥有处理事件、意外事件和问题的流程。这些流程被记录下来并存储在一个中央位置。它们随着流程的更改而更新。

**常见反模式：** 
+  周末发生了一起意外事件，值班工程师不知道该怎么办。 
+  一位客户向您发送一封电子邮件，说应用程序关闭了。您重新启动服务器以修复该问题。这种情况经常发生。 
+  有一起意外事件，多个团队独立工作，试图解决该问题。 
+  部署发生在您的工作负载中，而不会被记录下来。 

 **建立此最佳实践的好处：** 
+  您有一条关于工作负载中事件的审计跟踪。 
+  从意外事件中恢复的时间缩短了。 
+  团队成员能够一致地解决意外事件和问题。 
+  调查意外事件时，大家更加团结一致。 

 **未建立这种最佳实践的情况下暴露的风险等级：** 高 

## 实施指导
<a name="implementation-guidance"></a>

实施这种最佳实践意味着您正在跟踪工作负载事件。您建立了处理意外事件和问题的流程。这些流程被记录下来、共享并经常更新。发现问题，确定优先级，并加以解决。

 **客户示例** 

AnyCompany Retail 的内部 Wiki 中有一部分专门用于事件、意外事件和问题管理的流程。所有事件均发送至 [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)。问题在 [AWS Systems Manager OpsCenter](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html) 中被识别为 OpsItems，并按优先级进行修复，减少了无差别的劳动。当流程发生变化时，它们会在内部 Wiki 中进行更新。他们使用 [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) 来管理意外事件并协调缓解工作。

## 实施步骤
<a name="implementation-steps"></a>

1.  事件 
   +  跟踪工作负载中发生的事件，即使不需要人工干预。 
   +  与工作负载利益相关者合作，制定一份应跟踪的事件清单。一些示例包括已完成的部署或成功的修补。 
   +  您可以使用 [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 或 [Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 之类的服务生成自定义事件以进行跟踪。

1.  意外事件 
   +  首先要确定意外事件的沟通计划。必须告知哪些利益相关者？ 您将如何让他们了解情况？ 谁负责监督协调工作？ 我们建议建立一个内部聊天渠道进行沟通和协调。 
   +  为支持您工作负载的团队定义上报路径，特别是在团队没有随时待命的轮换情况下。根据您的支持级别，您还可以向 支持 提交工单。 
   +  创建一个调查该意外事件的行动手册。这应该包括沟通计划和详细的调查步骤。在您的调查中包括检查 [AWS Health Dashboard](https://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html) 。
   +  记录意外事件响应计划。沟通意外事件管理计划，以便内部和外部客户了解参与规则以及对他们的期望。就使用方法对您的团队成员进行培训。 
   +  客户可以使用 [Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) 来建立和管理他们的意外事件响应计划。
   +  企业支持客户可以向他们的技术客户经理请求参加 [意外事件管理研讨会](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/#Operational_Workshops_and_Deep_Dives) 。这场有指导意义的研讨会可测试您现有的意外事件响应计划，并帮助您找出需要改进之处。

1.  问题 
   +  必须在您的 ITSM 系统中识别和跟踪问题。 
   +  确定所有已知问题，并根据修复工作量和对工作负载的影响来确定它们的优先级。   
![\[用于确定问题优先级的行动优先级矩阵。\]](http://docs.aws.amazon.com/zh_cn/wellarchitected/2022-03-31/framework/images/impact-effort-chart.png)
   +  先解决影响大、工作量小的问题。一旦这些问题得到解决，就继续处理那些属于“影响小且工作量小”象限的问题。 
   +  随着您的工作负载增长和扩展，您可以使用 [Systems Manager OpsCenter](systems-manager/latest/userguide/OpsCenter.html) 来识别这些问题，为它们附上运行手册，并跟踪它们。

**实施计划的工作量级别：** 中。您需要一个流程和工具来实施这种最佳实践。记录您的流程，让与工作负载相关的任何人都可以使用它们。经常更新它们。您建立了一个管理问题、缓解问题或解决问题的流程。

## 资源
<a name="resources"></a>

 **相关最佳实践：** 
+  [OPS07-BP03 使用运行手册执行程序](ops_ready_to_support_use_runbooks.md)：已知问题需要一个相关的运行手册，以使缓解工作保持一致。
+  [OPS07-BP04 根据行动手册调查问题](ops_ready_to_support_use_playbooks.md)：必须使用行动手册对意外事件进行调查。 
+  [OPS11-BP02 在意外事件发生后执行分析](ops_evolve_ops_perform_rca_process.md)：从意外事件中恢复之后，务必要进行事后分析。 

 **相关文档：** 
+  [Atlassian - DevOps 时代的意外事件管理](https://www.atlassian.com/incident-management/devops) 
+  [AWS 安全意外事件响应指南](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/welcome.html) 
+  [DevOps 和 SRE 时代的意外事件管理](https://www.infoq.com/presentations/incident-management-devops-sre/) 
+  [PagerDuty - 什么是意外事件管理？](https://www.pagerduty.com/resources/learn/what-is-incident-management/) 

 **相关视频：** 
+  [AWS re:Invent 2020：分布式组织中的意外事件管理](https://www.youtube.com/watch?v=tyS1YDhMVos) 
+  [AWS re:Invent 2021 - 使用事件驱动型架构构建下一代应用程序](https://www.youtube.com/watch?v=U5GZNt0iMZY) 
+  [AWS 支持您 \$1 探讨事件管理桌面练习](https://www.youtube.com/watch?v=0m8sGDx-pRM) 
+  [AWS Systems Manager Incident Manager - AWS 虚拟研讨会](https://www.youtube.com/watch?v=KNOc0DxuBSY) 
+  [AWS 后续举措主讲 Incident Manager \$1 AWS 事件](https://www.youtube.com/watch?v=uZL-z7cII3k) 

 **相关示例：** 
+  [AWS 管理和监管工具研讨会 - OpsCenter](https://mng.workshop.aws/ssm/capability_hands-on_labs/opscenter.html) 
+  [AWS 主动式服务 – 意外事件管理研讨会](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/#Operational_Workshops_and_Deep_Dives) 
+  [使用 Amazon EventBridge 构建事件驱动型应用程序](https://aws.amazon.com/blogs/compute/building-an-event-driven-application-with-amazon-eventbridge/) 
+  [在 AWS 上构建事件驱动型架构](https://catalog.us-east-1.prod.workshops.aws/workshops/63320e83-6abc-493d-83d8-f822584fb3cb/en-US/) 

 **相关服务：** 
+  [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 
+  [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 
+  [AWS Health Dashboard](https://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html) 
+  [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) 
+  [AWS Systems Manager OpsCenter](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html) 

# OPS10-BP02 针对每个提醒设置一个流程
<a name="ops_event_response_process_per_alert"></a>

 针对引发提醒的任何事件制定明确的响应措施（运维手册或管理手册），并明确指定负责人。这样可以确保您及时有效地响应运营事件，并防止可以针对其采取措施的事件被不重要的通知所掩盖。 

 **常见反模式：** 
+  监控系统会向您显示已批准的连接流和其他消息。由于消息量过大，导致您错过了需要干预的周期性错误消息。 
+  您收到提醒，指示网站停机。发生这种情况时，没有明确的流程。您被迫采用临时方法来诊断和解决问题。边处理边开发流程会延长恢复时间。 

 **建立此最佳实践的好处：** 仅在需要采取措施时发出提醒可以防止低价值提醒遮掩高价值提醒。制定一个可随时采取措施的提醒流程，可以对环境中的事件做出一致而迅速的响应。 

 **未建立此最佳实践暴露的风险等级：** 高 

## 实施指导
<a name="implementation-guidance"></a>
+  提醒响应流程：对于引发提醒的任何事件，都要制定明确的响应措施（运行手册或管理手册），并明确指定负责其成功完成的负责人（例如个人、团队或角色）。响应的执行可能是自动的，也可能由其他团队完成，但是负责人应负责确保响应流程获得预期的成果。设置这些流程可以确保您及时有效地响应运营事件，并防止可以针对其采取措施的事件被不重要的通知所掩盖。例如，可以实施自动扩展来扩展 Web 前端，但是运营团队应负责确保自动扩展规则和限制符合工作负载需求。 

## 资源
<a name="resources"></a>

 **相关文档：** 
+  [Amazon CloudWatch 功能](https://aws.amazon.com/cloudwatch/features/) 
+  [什么是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 

 **相关视频：** 
+  [制定监控计划](https://www.youtube.com/watch?v=OMmiGETJpfU) 

# OPS10-BP03 根据业务影响确定运营事件的优先顺序
<a name="ops_event_response_prioritize_events"></a>

 确保在多个事件需要干预时，优先处理对业务最为重要的事件。人身伤亡、经济损失、名誉或信任损害都是一种影响。 

 **常见反模式：** 
+  您收到一个支持请求，需为用户添加打印机配置。在处理该问题时，您收到一个支持请求，称您的零售网站停机。为您的用户完成打印机配置后，您着手处理网站问题。 
+  您收到通知，指示您的零售网站和薪资系统都发生停机。您不知道应该优先处理哪个问题。 

 **建立此最佳实践的好处：** 优先响应对业务影响最大的意外事件，可以帮助您管理这种影响。 

 **未建立此最佳实践暴露的风险等级：** 中 

## 实施指导
<a name="implementation-guidance"></a>
+  根据业务影响确定运营事件的优先顺序：确保在多个事件需要干预时，优先处理对业务最为重要的事件。影响可能包括人身伤亡、经济损失、违规、名誉或信任损害。 

# OPS10-BP04 定义上报路径
<a name="ops_event_response_define_escalation_paths"></a>

 在运维手册和管理手册中定义上报路径，包括触发上报的事件和上报程序。明确指定每项措施的负责人，以便确保有效而及时地响应运营事件。 

 在采取措施之前，确定何时需要人为决定。与决策者合作，提前做出决策，这样 MTTR 便不会因为等待响应而延长。 

 **常见反模式：** 
+  您的零售网站停机。您不了解用于网站恢复的运行手册。您开始打电话求助同事。 
+  您收到一个关于应用程序无法访问的支持案例。您没有系统管理权限。您不知道谁具有权限。您尝试与创建案例的系统负责人联系，但没有得到响应。您无法联系到系统负责人，而您的同事对此也不太熟悉。 

 **建立此最佳实践的好处：** 通过定义上报、上报触发器和上报程序，您可以适当的影响速率系统地向意外事件添加资源。 

 **未建立这种最佳实践的情况下暴露的风险等级：** 中 

## 实施指导
<a name="implementation-guidance"></a>
+  定义上报路径：在运维手册和管理手册中定义上报路径，包括触发升级的事件和升级程序。例如，当运维手册无法解决问题或者预定义的时间已经过去时，将问题从支持工程师升级给高级支持工程师。当管理手册无法确定修复路径或者预定义的时间已经过去时，将问题从高级工程师升级给开发团队也是一种正确的升级路径。明确指定每项措施的负责人，以便确保有效而及时地响应运营事件。升级可以涉及第三方。例如某个网络连接提供商或软件供应商。升级可以涉及负责受影响的系统并且获得授权的决策者。 

# OPS10-BP05 启用推送通知
<a name="ops_event_response_push_notify"></a>

 在用户使用的服务受到影响以及这些服务的运行状况再次恢复正常时，直接与用户联系（例如通过电子邮件或 SMS），确保用户采取适当的措施。 

 **常见反模式：** 
+  您的应用程序遭到了分布式拒绝服务意外事件，并且已经几天没有响应。没有错误消息。您尚未发送通知电子邮件。您尚未发送文本通知。您尚未在社交媒体上共享信息。您的客户很沮丧，正在寻找其他可以为他们提供支持的供应商。 
+  星期一，您的应用程序在安装补丁后出现问题，停机数小时。星期二，您的应用程序在部署代码后出现问题，而且在数小时内都处于不可靠状态。星期三，为了规避与出现故障的补丁相关的安全漏洞，您的应用程序部署了代码，但之后却出现问题，在部署代码后几个小时内，应用程序都不可用。星期四，您的客户很沮丧，开始寻找其他可以为他们提供支持的供应商。 
+  本周末，您的应用程序会因维护而停机。您没有告知客户。您的部分客户已预先安排了需使用您的应用程序的活动。发现您的应用程序不可用后，他们感到非常沮丧。 

 **建立此最佳实践的好处：** 通过定义通知、通知触发器和通知程序，您可以通知客户并在工作负载问题影响客户时做出响应。 

 **未建立这种最佳实践的情况下暴露的风险等级：** 中 

## 实施指导
<a name="implementation-guidance"></a>
+  启用推送通知：在用户使用的服务受到影响以及这些服务的运行状况恢复正常时，直接与用户联系（例如通过电子邮件或 SMS），以便用户得以采取相应的措施。 
  +  [Amazon SES 功能](https://aws.amazon.com/ses/details/) 
  +  [什么是 Amazon SES？](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html) 
  +  [设置 Amazon SNS 通知](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) 

## 资源
<a name="resources"></a>

 **相关文档：** 
+  [Amazon SES 功能](https://aws.amazon.com/ses/details/) 
+  [设置 Amazon SNS 通知](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) 
+  [什么是 Amazon SES？](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html) 

# OPS10-BP06 通过控制面板展现状况信息
<a name="ops_event_response_dashboards"></a>

 提供为目标受众（例如内部技术团队、领导和客户）专门设计的控制面板，以传达业务当前的运营状况并提供值得关注的指标。 

 您可以使用 [Amazon CloudWatch 控制面板，](https://aws.amazon.com/blogs/aws/cloudwatch-dashboards-create-use-customized-metrics-views/) 在 CloudWatch 控制台中可自定义的主页上创建控制面板。借助像 [Quick](https://aws.amazon.com/quicksight/) 这样的商业智能服务，您可以创建和发布工作负载和运营状况（例如，订单达成率、连接的用户和交易时间）的交互式控制面板。您可以创建控制面板，用来显示指标的系统级和业务级视图。 

 **常见反模式：** 
+  您根据请求运行有关管理应用程序当前使用情况的报告。 
+  在意外事件发生期间，相关系统负责人每二十分钟与您联系一次，想要知道问题是否已解决。 

 **建立此最佳实践的好处：** 创建控制面板后，您可以让客户自助访问信息，这样可让他们获知相关信息，并确定是否需要采取措施。 

 **未建立此最佳实践暴露的风险等级：** 中 

## 实施指导
<a name="implementation-guidance"></a>
+  通过控制面板展现状况信息：提供为目标受众（例如内部技术团队、领导和客户）专门设计的控制面板，以传达业务当前的运营状况并提供值得关注的指标。提供用于获取状态信息的自助选项，可以减少负责处理状态请求的运营团队的中断。示例包括 Amazon CloudWatch 控制面板和 AWS Health Dashboard。 
  +  [CloudWatch 控制面板创建并使用自定义指标视图](https://aws.amazon.com/blogs/aws/cloudwatch-dashboards-create-use-customized-metrics-views/) 

## 资源
<a name="resources"></a>

 **相关文档：** 
+  [Quick](https://aws.amazon.com/quicksight/) 
+  [CloudWatch 控制面板创建并使用自定义指标视图](https://aws.amazon.com/blogs/aws/cloudwatch-dashboards-create-use-customized-metrics-views/) 

# OPS10-BP07 自动响应事件
<a name="ops_event_response_auto_event_response"></a>

 自动响应事件以便减少由手动流程引起的错误，并确保响应及时并且一致。 

 有多种方法可以在 AWS 上自动执行运行手册和行动手册操作。要响应 AWS 资源中的状态更改事件或您自己的自定义事件，您应创建 [CloudWatch Events 规则](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 以通过 CloudWatch 目标（例如，Lambda 函数、Amazon Simple Notification Service（Amazon SNS）主题、Amazon ECS 任务和 AWS Systems Manager Automation）触发响应。 

 要响应超过资源阈值的指标（例如，等待时间），您应创建 [CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 以使用 Amazon EC2 操作或 Auto Scaling 操作执行一个或多个操作，或者向 Amazon SNS 主题发送通知。如果您需要执行自定义操作以响应警报，请通过 Amazon SNS 通知调用 Lambda。使用 Amazon SNS 发布事件通知和升级消息，以便让人们了解情况。 

 AWS 还通过 AWS 服务 API 和 SDK 支持第三方系统。AWS 合作伙伴和第三方提供了许多用于监控、通知和响应的监控工具。其中一些工具包括 New Relic、Splunk、Loggly、SumoLogic 和 Datadog。 

 您应该保留关键的手动程序，以备在自动程序出故障时使用。 

 **常见反模式：** 
+  开发人员检查其代码。发生此事件后，本可开始构建然后执行测试，但您没执行任何操作。 
+  在停止运行前，您的应用程序记录了一个特定的错误。重新启动应用程序的流程易于理解，可编写成脚本。您可以使用日志事件来调用脚本并重新启动应用程序。否则的话，如果错误发生在星期天凌晨 3 点，您作为负责修复系统的随叫随到的资源，将不得不起床去处理。 

 **建立此最佳实践的好处：** 通过自动响应事件，您可以缩短响应时间并减少人工活动中发生的错误。 

 **未建立此最佳实践暴露的风险等级：** 低 

## 实施指导
<a name="implementation-guidance"></a>
+  自动响应事件：自动响应事件以便减少由手动流程引起的错误，并确保响应及时并且一致。 
  +  [什么是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 
  +  [创建在发生事件时触发的 CloudWatch Events 规则](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html) 
  +  [创建在 AWS API 调用上使用 AWS CloudTrail 触发的 CloudWatch Events 规则](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) 
  +  [来自支持的服务的 CloudWatch Events 事件示例](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html) 

## 资源
<a name="resources"></a>

 **相关文档：** 
+  [Amazon CloudWatch 功能](https://aws.amazon.com/cloudwatch/features/) 
+  [来自支持的服务的 CloudWatch Events 事件示例](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html) 
+  [创建在 AWS API 调用上使用 AWS CloudTrail 触发的 CloudWatch Events 规则](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) 
+  [创建在发生事件时触发的 CloudWatch Events 规则](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html) 
+  [什么是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 

 **相关视频：** 
+  [制定监控计划](https://www.youtube.com/watch?v=OMmiGETJpfU) 

 **相关示例：** 