

# Preparar
<a name="prepare"></a>

 Para se preparar para a excelência operacional, é necessário entender suas workloads e os comportamentos esperados. Você poderá projetá-las para fornecer insights sobre seu status e criar os procedimentos para oferecer suporte a elas. 

 Projete sua workload para que as informações necessárias sejam fornecidas a fim de que você entenda seu estado interno (tais como métricas, logs, eventos e rastreamento) em todos os componentes, em apoio à observabilidade e à investigação de problemas. A observabilidade vai além do simples monitoramento, fornecendo uma compreensão abrangente do funcionamento interno de um sistema com base em suas saídas externas. Baseada em métricas, logs e rastreamentos, a observabilidade oferece insights profundos sobre o comportamento e a dinâmica do sistema. Com uma observabilidade eficaz, as equipes podem discernir padrões, anomalias e tendências, permitindo que abordem proativamente possíveis problemas e mantenham a integridade ideal do sistema. Identificar os indicadores-chave de performance (KPIs) é fundamental para garantir o alinhamento entre as atividades de monitoramento e os objetivos de negócios. Esse alinhamento garante que as equipes tomem decisões baseadas em dados usando métricas que realmente importam, otimizando a performance do sistema e os resultados comerciais. Além disso, a observabilidade capacita as empresas a serem proativas em vez de reativas. As equipes podem entender as relações de causa e efeito em seus sistemas, prevendo e prevenindo problemas em vez de apenas reagir a eles. À medida que as workloads evoluem, é essencial revisitar e refinar a estratégia de observabilidade, garantindo que ela permaneça relevante e eficaz. 

 Adote abordagens que melhorem o fluxo de alterações na produção e permitam refatoração, feedbck rápido sobre a qualidade e correção de erros. Isso acelera as alterações benéficas que entram na produção, limita os problemas implantados e permite a rápida identificação e correção dos problemas introduzidos pelas atividades de implantação ou descobertos em seus ambientes. 

 Adote abordagens que forneçam feedback rápido sobre a qualidade e permitam recuperação rápida de alterações que não têm os resultados desejados. O uso dessas práticas reduz o impacto dos problemas introduzidos pela implantação de mudanças. Planeje alterações malsucedidas para que você possa responder mais rapidamente, se necessário, e testar e validar as alterações feitas. Mantenha-se a par das atividades planejadas em seus ambientes para que você possa gerenciar o risco de alterações que afetem as atividades planejadas. Enfatize alterações frequentes, pequenas e reversíveis para limitar o escopo das alterações. Isso resulta em solução de problemas e correção mais rápidas, com a opção de reverter uma alteração. Isso também significa que você pode conseguir o benefício de alterações valiosas com mais frequência. 

 Avalie a prontidão operacional de workload, processos, procedimentos e pessoal para compreender os riscos operacionais relacionados à workload. Use um processo consistente (incluindo listas de verificação manuais ou automatizadas) para saber quando você estiver pronto para trabalhar com sua workload ou fazer uma mudança. Isso também ajudará a encontrar as áreas que você deve abordar. Tenha runbooks que documentem suas atividades de rotina e playbooks que orientem seus processos para a resolução de problemas. Entenda os benefícios e os riscos para tomar decisões informadas e permitir que as alterações entrem na produção. 

 A AWS permite visualizar toda a workload (aplicações, infraestrutura, políticas, governança e operações) como código. Isso significa que você pode aplicar a mesma disciplina de engenharia usada para o código da aplicação a cada elemento da pilha e compartilhá-los entre equipes ou organizações para ampliar os benefícios dos esforços de desenvolvimento. Use operações como código na nuvem e a capacidade de experimentar com segurança para desenvolver sua workload, procedimentos de operações e praticar falhas. O uso do CloudFormation permite que você tenha ambientes consistentes, com modelos, desenvolvimento de sandbox, teste e produção, com níveis crescentes de controle de operações. 

 Invista na implementação de atividades operacionais como código para maximizar a produtividade do pessoal de operações, minimizar taxas de erro e permitir respostas automatizadas. Use estratégias "pre-mortem" para antecipar falhas e criar procedimentos, quando apropriado. Aplique metadados usando tags de recursos e AWS Resource Groups seguindo uma estratégia consistente de marcação com tags para identificar seus recursos. Identifique seus recursos de organização, contabilidade de custos e controles de acesso pensando na execução de atividades operacionais automatizadas. Adote práticas de implantação que aproveitem a elasticidade da nuvem para facilitar as atividades de desenvolvimento e a pré-implantação de sistemas para implementações mais rápidas. Ao fazer alterações nas listas de verificação usadas para avaliar suas workloads, planeje o que você fará com sistemas ativos que não estejam mais em conformidade. 

**Topics**
+ [Implementar a observabilidade](implement-observability.md)
+ [Design das operações](design-for-operations.md)
+ [Mitigar riscos de implantação](mitigate-deployment-risks.md)
+ [Prontidão operacional e gerenciamento de alterações](operational-readiness.md)

# Implementar a observabilidade
<a name="implement-observability"></a>

Implemente a observabilidade na workload para poder entender seu estado e tomar decisões baseadas em dados com base nos requisitos de negócios.

A observabilidade vai além do simples monitoramento, fornecendo uma compreensão abrangente do funcionamento interno de um sistema com base em suas saídas externas. Baseada em métricas, logs e rastreamentos, a observabilidade oferece insights profundos sobre o comportamento e a dinâmica do sistema. Com uma observabilidade eficaz, as equipes podem discernir padrões, anomalias e tendências, permitindo que abordem proativamente possíveis problemas e mantenham a integridade ideal do sistema.

Identificar os indicadores-chave de performance (KPIs) é fundamental para garantir o alinhamento entre as atividades de monitoramento e os objetivos de negócios. Esse alinhamento garante que as equipes tomem decisões baseadas em dados usando métricas que realmente importam, otimizando a performance do sistema e os resultados comerciais.

 Além disso, a observabilidade capacita as empresas a serem proativas em vez de reativas. As equipes podem entender as relações de causa e efeito em seus sistemas, prevendo e prevenindo problemas em vez de apenas reagir a eles. À medida que as workloads evoluem, é essencial revisitar e refinar a estratégia de observabilidade, garantindo que ela permaneça relevante e eficaz. 

**Topics**
+ [OPS04-BP01 Identificar indicadores-chave de performance](ops_observability_identify_kpis.md)
+ [OPS04-BP02 Implementar a telemetria de aplicações](ops_observability_application_telemetry.md)
+ [OPS04-BP03 Implementar telemetria da experiência do usuário](ops_observability_customer_telemetry.md)
+ [OPS04-BP04 Implementar a telemetria de dependências](ops_observability_dependency_telemetry.md)
+ [OPS04-BP05 Implementar rastreamento distribuído](ops_observability_dist_trace.md)

# OPS04-BP01 Identificar indicadores-chave de performance
<a name="ops_observability_identify_kpis"></a>

 A implementação da observabilidade em sua workload começa com a compreensão de seu estado e a tomada de decisões baseadas em dados de acordo com os requisitos de negócios. Uma das formas mais eficazes de garantir o alinhamento entre as atividades de monitoramento e os objetivos de negócios é definir e monitorar os indicadores-chave de performance (KPIs). 

 **Resultado desejado:** práticas de observabilidade eficientes que estão estreitamente alinhadas aos objetivos de negócios, garantindo que os esforços de monitoramento estejam sempre a serviço de resultados comerciais tangíveis. 

 **Práticas comuns que devem ser evitadas:** 
+  KPIs indefinidos: trabalhar sem KPIs claros pode levar ao monitoramento excessivo ou insuficiente, fazendo com que sinais vitais possam ser perdidos. 
+  KPIs estáticos: não revisitar ou refinar os KPIs à medida que a workload ou os objetivos de negócios evoluem. 
+  Desalinhamento: foco em métricas técnicas que não se correlacionam diretamente com os resultados comerciais ou são mais difíceis de correlacionar com problemas do mundo real. 

 **Benefícios de implementar esta prática recomendada:** 
+  Facilidade de identificação de problemas: os KPIs de negócios geralmente mostram os problemas com mais clareza do que as métricas técnicas. Uma queda em um KPI comercial pode identificar um problema com mais eficiência do que analisar várias métricas técnicas. 
+  Alinhamento comercial: garante que as atividades de monitoramento apoiem diretamente os objetivos de negócios. 
+  Eficiência: priorize os recursos de monitoramento e a atenção nas métricas que importam. 
+  Proatividade: reconheça e resolva os problemas antes que eles tenham implicações comerciais mais amplas. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Para definir com eficácia os KPIs da workload: 

1.  **Comece com os resultados comerciais:** antes de mergulhar nas métricas, entenda o resultado comercial desejado. É sobre aumento de vendas, maior engajamento do usuário ou tempos de resposta mais rápidos? 

1.  **Correlacione métricas técnicas com objetivos de negócios:** nem todas as métricas técnicas têm impacto direto nos resultados comerciais. Identifique aquelas que têm, mas muitas vezes é mais fácil identificar um problema usando um KPI comercial. 

1.  **Use o [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html):** utilize o CloudWatch para definir e monitorar métricas que representam seus KPIs. 

1.  **Revise e atualize regularmente os KPIs:** à medida que sua workload e seus negócios evoluem, mantenha seus KPIs relevantes. 

1.  **Envolva as partes interessadas:** envolva as equipes técnicas e comerciais na definição e revisão dos KPIs. 

 **Nível de esforço do plano de implementação:** Médio 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+ [OPS04-BP02 Implementar a telemetria de aplicações](ops_observability_application_telemetry.md)
+ [OPS04-BP03 Implementar telemetria da experiência do usuário](ops_observability_customer_telemetry.md)
+ [OPS04-BP04 Implementar a telemetria de dependências](ops_observability_dependency_telemetry.md)
+ [OPS04-BP05 Implementar rastreamento distribuído](ops_observability_dist_trace.md)

 **Documentos relacionados:** 
+ [Práticas recomendadas de observabilidade da AWS](https://aws-observability.github.io/observability-best-practices/)
+ [Guia do usuário do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [Curso de desenvolvimento de habilidades de observabilidade da AWS](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14688/aws-observability)

 **Vídeos relacionados:** 
+ [Desenvolver de uma estratégia de observabilidade](https://www.youtube.com/watch?v=Ub3ATriFapQ)

 **Exemplos relacionados:** 
+  [Workshop One Observability](https://catalog.workshops.aws/observability/en-US) 

# OPS04-BP02 Implementar a telemetria de aplicações
<a name="ops_observability_application_telemetry"></a>

 A telemetria de aplicações serve como base para a observabilidade da workload. É fundamental emitir uma telemetria que ofereça informações práticas sobre o estado da sua aplicação e a obtenção de resultados técnicos e comerciais. Da solução de problemas à medição do impacto de um novo recurso ou à garantia do alinhamento com os indicadores-chave de performance (KPIs) de negócios, a telemetria de aplicações informa a maneira como você cria, opera e desenvolve sua workload. 

 Métricas, logs e rastreamentos formam os três pilares principais da observabilidade. Eles servem como ferramentas de diagnóstico que descrevem o estado de sua aplicação. Com o tempo, eles auxiliam na criação de linhas de base e na identificação de anomalias. No entanto, para garantir o alinhamento entre as atividades de monitoramento e os objetivos de negócios, é fundamental definir e monitorar os KPIs. Os KPIs de negócios geralmente facilitam a identificação de problemas em comparação com métricas técnicas isoladas. 

 Outros tipos de telemetria, como monitoramento de usuários reais (RUM) e transações sintéticas, complementam essas fontes de dados primárias. O RUM oferece informações sobre as interações do usuário em tempo real, enquanto as transações sintéticas simulam possíveis comportamentos do usuário, ajudando a detectar gargalos antes que usuários reais os encontrem. 

 **Resultado desejado:** obtenha insights acionáveis sobre a performance da sua workload. Esses insights permitem que você tome decisões proativas sobre otimização de performance, tenha maior estabilidade da workload, simplifique os processos de CI/CD e utilize recursos de forma eficaz. 

 **Práticas comuns que devem ser evitadas:** 
+  **Observabilidade incompleta:** negligência da incorporação da observabilidade em todas as camadas da workload, resultando em pontos cegos que podem obscurecer insights vitais sobre performance e comportamento do sistema. 
+  **Visualização fragmentada dos dados:** quando os dados estão espalhados por várias ferramentas e sistemas, torna-se difícil manter uma visão holística da integridade e da performance da sua workload. 
+  **Problemas relatados pelo usuário:** um sinal de que falta a detecção proativa de problemas por meio da telemetria e do monitoramento de KPI de negócios. 

 **Benefícios de implementar esta prática recomendada:** 
+  **Tomada de decisão informada:** com insights de telemetria e KPIs de negócios, você pode tomar decisões baseadas em dados. 
+  **Eficiência operacional aprimorada:** a utilização de recursos baseada em dados leva à redução de custos. 
+  **Estabilidade aprimorada da workload:** detecção e resolução mais rápidas de problemas, levando a um melhor tempo de atividade. 
+  **Processos racionalizados de CI/CD:** os insights dos dados de telemetria facilitam o refinamento dos processos e a entrega confiável de código. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Para implementar a telemetria de aplicações para sua workload, use serviços da AWS como o [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) e o [AWS X-Ray](https://aws.amazon.com/xray/). O Amazon CloudWatch fornece um conjunto abrangente de ferramentas de monitoramento, permitindo que você observe seus recursos e aplicações em ambientes da AWS e on-premises. Ele coleta, rastreia e analisa métricas, consolida e monitora dados de log e reage às mudanças em seus recursos, aprimorando sua compreensão de como a workload opera. Em conjunto, o AWS X-Ray permite rastrear, analisar e depurar suas aplicações, oferecendo uma compreensão profunda do comportamento da workload. Com recursos como mapas de serviços, distribuições de latência e cronogramas de rastreamento, o AWS X-Ray fornece insights sobre a performance da workload e os gargalos que a afetam. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  **Identifique quais dados coletar:** determine as métricas essenciais, os logs e os rastreamentos essenciais que ofereceriam informações substanciais sobre a integridade, a performance e o comportamento da sua workload. 

1.  **Implante o [agente do CloudWatch](https://aws.amazon.com/cloudwatch/):** o agente do CloudWatch é fundamental na aquisição de métricas do sistema e da aplicação e de logs de sua workload e de sua infraestrutura subjacente. O agente do CloudWatch também pode ser usado para coletar OpenTelemetry ou rastreamentos do X-Ray e enviá-los ao X-Ray. 

1.  **Implemente a detecção de anomalias para logs e métricas:** use a [detecção de anomalias do CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/LogsAnomalyDetection.html) e a [detecção de anomalias do CloudWatch Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html) para identificar automaticamente atividades incomuns nas operações da aplicação. Essas ferramentas usam algoritmos de machine learning para detectar e alertar sobre anomalias, o que aprimora os recursos de monitoramento e acelera o tempo de resposta a possíveis interrupções ou ameaças à segurança. Configure esses recursos para gerenciar proativamente a integridade e a segurança das aplicações. 

1.  **Proteja dados de log confidenciais:** use a [proteção de dados do Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html) para mascarar informações confidenciais em seus logs. Esse recurso ajuda a manter a privacidade e a conformidade por meio da detecção automática e do mascaramento de dados confidenciais antes de serem acessados. Implemente o mascaramento de dados para tratar e proteger com segurança detalhes confidenciais, como informações de identificação pessoal (PII). 

1.  **Defina e monitore os KPIs de negócios:** estabeleça [métricas personalizadas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) que se alinhem aos seus [resultados de negócios](https://aws-observability.github.io/observability-best-practices/guides/operational/business/monitoring-for-business-outcomes/). 

1.  **Instrumente sua aplicação com o AWS X-Ray:** além de implantar o agente CloudWatch, é fundamental [instrumentar sua aplicação](https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html) para emitir dados de rastreamento. Esse processo pode fornecer mais insights sobre o comportamento e a performance da workload. 

1.  **Padronize a coleta de dados em toda a sua aplicação:** padronize as práticas de coleta de dados em toda a aplicação. A uniformidade ajuda a correlacionar e analisar dados, fornecendo uma visão abrangente do comportamento da aplicação. 

1.  **Implemente a observabilidade entre contas:** aumente a eficiência do monitoramento entre várias Contas da AWS com a [observabilidade entre contas do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). Com esse recurso, é possível consolidar métricas, logs e alarmes de contas diferentes em uma única visualização, o que simplifica o gerenciamento e melhora os tempos de resposta para problemas identificados em todo o ambiente da AWS da organização. 

1.  **Analise e aja com base em dados:** quando a coleta e a normalização dos dados estiverem implementadas, use o [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/features/) para análise de métricas e logs e o [AWS X-Ray](https://aws.amazon.com/xray/features/) para análise de rastreamento. Essa análise pode gerar informações cruciais sobre a integridade, a performance e o comportamento da workload, orientando o processo de tomada de decisão. 

 **Nível de esforço do plano de implementação:** Alto 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS04-BP01 Definir KPIs da workload](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_identify_kpis.html) 
+  [OPS04-BP03 Implementar a telemetria de atividades dos usuários](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_customer_telemetry.html) 
+  [OPS04-BP04 Implementar a telemetria de dependências](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_dependency_telemetry.html) 
+  [OPS04-BP05 Implementar a rastreabilidade das transações](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_dist_trace.html) 

 **Documentos relacionados:** 
+  [Práticas recomendadas de observabilidade da AWS](https://aws-observability.github.io/observability-best-practices/) 
+  [Guia do usuário do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [AWS X-Ray Guia do desenvolvedor](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Instrumentar sistemas distribuídos para visibilidade operacional](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility) 
+  [Curso de desenvolvimento de habilidades de observabilidade da AWS](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14688/aws-observability) 
+  [Novidades do Amazon CloudWatch](https://aws.amazon.com/about-aws/whats-new/management-and-governance/?whats-new-content.sort-by=item.additionalFields.postDateTime&whats-new-content.sort-order=desc&awsf.whats-new-products=general-products%23amazon-cloudwatch) 
+  [Novidades da AWS X-Ray](https://aws.amazon.com/about-aws/whats-new/developer-tools/?whats-new-content.sort-by=item.additionalFields.postDateTime&whats-new-content.sort-order=desc&awsf.whats-new-products=general-products%23aws-x-ray) 

 **Vídeos relacionados:** 
+  [AWS re:Invent 2022: práticas recomendadas de observabilidade na Amazon](https://youtu.be/zZPzXEBW4P8) 
+  [AWS re:Invent 2022: desenvolver uma estratégia de observabilidade](https://youtu.be/Ub3ATriFapQ) 

 **Exemplos relacionados:** 
+  [Workshop One Observability](https://catalog.workshops.aws/observability) 
+  [Biblioteca de soluções da AWS: monitorar aplicações com o Amazon CloudWatch](https://aws.amazon.com/solutions/implementations/application-monitoring-with-cloudwatch) 

# OPS04-BP03 Implementar telemetria da experiência do usuário
<a name="ops_observability_customer_telemetry"></a>

 É essencial obter insights profundos sobre as experiências dos clientes e as interações com sua aplicação. O monitoramento de usuários reais (RUM) e as transações sintéticas servem como ferramentas poderosas para essa finalidade. O RUM fornece dados sobre interações reais do usuário, oferecendo uma perspectiva não filtrada da satisfação do usuário, enquanto as transações sintéticas simulam as interações do usuário, ajudando a detectar possíveis problemas antes mesmo que eles afetem os usuários reais. 

 **Resultado desejado:** uma visão holística da experiência do cliente, detecção proativa de problemas e otimização das interações do usuário para oferecer experiências digitais perfeitas. 

 **Práticas comuns que devem ser evitadas:** 
+  Aplicações sem monitoramento de usuários reais (RUM): 
  +  Detecção atrasada de problemas: sem o RUM, talvez você não fique ciente dos gargalos ou problemas de performance até que os usuários reclamem. Essa abordagem reativa pode levar à insatisfação do cliente. 
  +  Falta de insights sobre a experiência do usuário: não usar o RUM significa perder dados cruciais que mostram como usuários reais interagem com sua aplicação, limitando sua capacidade de otimizar a experiência do usuário. 
+  Aplicações sem transações sintéticas: 
  +  Casos de borda perdidos: transações sintéticas ajudam você a testar caminhos e funções que podem não ser usados com frequência por usuários comuns, mas são essenciais para determinadas funções de negócios. Sem eles, esses caminhos podem ter problemas de funcionamento e passar despercebidos. 
  +  Verificação de problemas quando a aplicação não está sendo usada: testes sintéticos regulares podem simular momentos em que usuários reais não estão interagindo ativamente com sua aplicação, garantindo que o sistema sempre funcione corretamente. 

 **Benefícios de implementar esta prática recomendada:** 
+  Detecção proativa de problemas: identifique e resolva possíveis problemas antes que eles afetem usuários reais. 
+  Experiência otimizada do usuário: o feedback contínuo do RUM ajuda a refinar e aprimorar a experiência geral do usuário. 
+  Informações sobre a performance do dispositivo e do navegador: entenda a performance da sua aplicação em vários dispositivos e navegadores, permitindo uma maior otimização. 
+  Fluxos de trabalho de negócios validados: transações sintéticas regulares garantem que as principais funcionalidades e os caminhos críticos permaneçam operacionais e eficientes. 
+  Performance aprimorada da aplicação: utilize as informações coletadas de dados reais do usuário para melhorar a capacidade de resposta e a confiabilidade da aplicação. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Para aproveitar o RUM e as transações sintéticas na telemetria da atividade do usuário, a AWS oferece serviços como o [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) e o [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html). Métricas, logs e rastreamentos, juntamente com dados de atividades do usuário, fornecem uma visão abrangente do estado operacional da aplicação e da experiência do usuário. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  **Implemente o Amazon CloudWatch RUM:** integre sua aplicação ao CloudWatch RUM para coletar, analisar e apresentar dados reais do usuário. 

   1.  Use a biblioteca [JavaScript RUM do CloudWatch para integrar o RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) à aplicação. 

   1.  Configure painéis para visualizar e monitorar dados reais do usuário. 

1.  **Configure o CloudWatch Synthetics:** crie canários ou rotinas com script para simular as interações do usuário com sua aplicação. 

   1.  Defina fluxos de trabalho e caminhos de aplicação críticos. 

   1.  Crie canários usando [scripts do CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) para simular as interações do usuário nesses caminhos. 

   1.  Programe e monitore os canários para serem executados em intervalos específicos, garantindo verificações de performance consistentes. 

1.  **Analise e aja sobre os dados:** utilize dados de RUM e transações sintéticas para obter insights e tomar medidas corretivas quando anomalias forem detectadas. Use painéis e alarmes do CloudWatch para se manter informado. 

 **Nível de esforço do plano de implementação:** Médio 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS04-BP01 Identificar indicadores-chave de performance](ops_observability_identify_kpis.md) 
+  [OPS04-BP02 Implementar a telemetria de aplicações](ops_observability_application_telemetry.md) 
+  [OPS04-BP04 Implementar a telemetria de dependências](ops_observability_dependency_telemetry.md) 
+  [OPS04-BP05 Implementar rastreamento distribuído](ops_observability_dist_trace.md) 

 **Documentos relacionados:** 
+ [Guia do Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html)
+ [Guia do Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)

 **Vídeos relacionados:** 
+ [Otimizar aplicações com base em insights do usuário final com o Amazon CloudWatch RUM](https://www.youtube.com/watch?v=NMaeujY9A9Y)
+ [Destaque da AWS On Air: Monitoramento de usuários reais para Amazon CloudWatch ](https://www.youtube.com/watch?v=r6wFtozsiVE)

 **Exemplos relacionados:** 
+ [Workshop One Observability](https://catalog.workshops.aws/observability/en-US/intro)
+ [Repositório do Git para cliente Web do Amazon CloudWatch RUM](https://github.com/aws-observability/aws-rum-web)
+ [Usar o Amazon CloudWatch Synthetics para medir o tempo de carregamento da página](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance)

# OPS04-BP04 Implementar a telemetria de dependências
<a name="ops_observability_dependency_telemetry"></a>

 A telemetria de dependências é essencial para monitorar a integridade e a performance dos serviços e componentes externos dos quais a workload depende. Ela fornece insights valiosos sobre acessibilidade, tempos limite e outros eventos críticos relacionados a dependências, como DNS, bancos de dados ou APIs de terceiros. Ao instrumentar sua aplicação para emitir métricas, logs e rastreamentos sobre essas dependências, você adquire uma compreensão mais clara dos possíveis gargalos, problemas de performance ou falhas que podem afetar a workload. 

 **Resultado desejado:** as dependências das quais a workload depende estão funcionando conforme o esperado, permitindo que você resolva problemas de forma proativa e garanta a performance ideal da workload. 

 **Práticas comuns que devem ser evitadas:** 
+  **Negligenciar as dependências externas:** focar apenas nas métricas internas da aplicação e negligenciar as métricas relacionadas às dependências externas. 
+  **Ausência de monitoramento proativo**: aguardar o surgimento de problemas em vez de monitorar continuamente a integridade e a performance da dependência. 
+  **Monitoramento em silos:** usar várias ferramentas de monitoramento diferentes, o que pode resultar em visualizações fragmentadas e inconsistentes da integridade da dependência. 

 **Benefícios de implementar esta prática recomendada:** 
+  **Maior confiabilidade da workload:** garantia de que as dependências externas estejam consistentemente disponíveis e tenham uma performance ideal. 
+  **Detecção e resolução mais rápidas de problemas:** identificação e resolução proativa de problemas com dependências antes que elas afetem a workload. 
+  **Visão abrangente:** obtenção de uma visão holística dos componentes internos e externos que influenciam a integridade da workload. 
+  **Escalabilidade aprimorada da workload:** compreensão dos limites de escalabilidade e das características de performance das dependências externas. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Implemente a telemetria de dependências começando com a identificação dos serviços, da infraestrutura e dos processos dos quais a workload depende. Quantifique quais são as boas condições quando essas dependências estão funcionando conforme o esperado e determine quais dados serão necessários para medi-las. Com essas informações, você pode criar painéis e alertas que forneçam insights para suas equipes de operações sobre o estado dessas dependências. Use ferramentas da AWS para descobrir e quantificar os impactos quando as dependências não tiverem a performance necessária. Revise continuamente sua estratégia para considerar as mudanças nas prioridades, metas e insights obtidos. 

### Etapas de implementação
<a name="implementation-steps"></a>

 Para implementar a telemetria de dependências de forma eficaz: 

1.  **Identifique dependências externas:** colabore com as partes interessadas para identificar as dependências externas das quais a workload depende. As dependências externas podem abranger serviços como bancos de dados externos, APIs de terceiros, rotas de conectividade de rede para outros ambientes e serviços de DNS. O primeiro passo para uma telemetria de dependências eficaz é entender de forma abrangente quais são essas dependências. 

1.  **Desenvolver uma estratégia de monitoramento:** depois de obter uma visão clara de suas dependências externas, elabore uma estratégia de monitoramento personalizada para elas. Isso envolve entender a importância de cada dependência, seu comportamento esperado e quaisquer contratos ou metas de nível de serviço associados (SLA ou SLTs). Configure alertas proativos para receber notificações sobre mudanças de status ou desvios de performance. 

1.  **Use o [monitoramento de rede](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Network-Monitoring-Sections.html):** use o [Internet Monitor](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-InternetMonitor.html) e o [Network Monitor](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/what-is-network-monitor.html) para obter informações abrangentes sobre as condições globais da Internet e da rede. Essas ferramentas ajudam você a entender e reagir a interrupções ou degradações de performance que afetam as dependências externas. 

1.  **Mantenha-se a par do [AWS Health](https://aws.amazon.com/premiumsupport/technology/aws-health/):** o AWS Health é a fonte de informações confiável sobre a integridade dos seus recursos da Nuvem AWS. Use o AWS Health para visualizar e receber notificações sobre quaisquer eventos de serviço atuais e alterações futuras, como eventos planejados de ciclo de vida, a fim de que possa tomar medidas para mitigar os impactos. 

   1.  [Crie notificações de eventos do AWS Health ajustados à finalidade](https://docs.aws.amazon.com/health/latest/ug/user-notifications.html) para canais de e-mail e chat por meio do [Notificações de Usuários da AWS](https://docs.aws.amazon.com/notifications/latest/userguide/what-is-service.html) e integre-as programaticamente às [suas ferramentas de monitoramento e alerta por meio do Amazon EventBridge](https://docs.aws.amazon.com/health/latest/ug/cloudwatch-events-health.html) ou da [API do AWS Health](https://docs.aws.amazon.com/health/latest/APIReference/Welcome.html). 

   1.  Para planejar e acompanhar o progresso de eventos de integridade que exijam ações, utilize o Amazon EventBridge ou a API do AWS Health para fazer a integração com ferramentas de gerenciamento de alterações ou de ITSM que você já esteja usando (como [Jira](https://docs.aws.amazon.com/smc/latest/ag/cloud-sys-health.html) ou [ServiceNow](https://docs.aws.amazon.com/smc/latest/ag/sn-aws-health.html)). 

   1.  Se você usar o AWS Organizations, habilite a [visualização da organização para o AWS Health](https://docs.aws.amazon.com/health/latest/ug/aggregate-events.html) a fim de agregar eventos do AWS Health em todas as contas. 

1.  **Instrumente sua aplicação com o [AWS X-Ray](https://aws.amazon.com/xray/):** o AWS X-Ray fornece informações sobre a performance das aplicações e de suas respectivas dependências subjacentes. Ao rastrear as solicitações do início ao fim, você pode identificar gargalos ou falhas nos serviços ou componentes externos dos quais sua aplicação depende. 

1.  **Use o [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/):** esse serviço orientado por machine learning identifica problemas operacionais, prevê quando problemas críticos podem ocorrer e recomenda ações específicas a serem tomadas. Ele é inestimável para ter informações sobre dependências e determinar que elas não são a fonte dos problemas operacionais. 

1.  **Monitore regularmente:** monitore continuamente métricas e logs relacionados a dependências externas. Configure alertas para comportamento inesperado ou diminuição de performance. 

1.  **Valide após as alterações:** sempre que houver uma atualização ou alteração em qualquer uma das dependências externas, valide sua performance e verifique o alinhamento com os requisitos da sua aplicação. 

 **Nível de esforço do plano de implementação:** Médio 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS04-BP01 Definir KPIs da workload](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_identify_kpis.html) 
+  [OPS04-BP02 Implementar a telemetria de aplicações](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_application_telemetry.html) 
+  [OPS04-BP03 Implementar a telemetria de atividades dos usuários](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_customer_telemetry.html) 
+  [OPS04-BP05 Implementar a rastreabilidade das transações](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_dist_trace.html) 
+  [OP08-BP04 Criar alertas acionáveis](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_workload_observability_create_alerts.html) 

 **Documentos relacionados:** 
+  [Guia do usuário do Amazon Personal Health Dashboard](https://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html) 
+  [Guia do usuário do AWS Internet Monitor](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-InternetMonitor.html) 
+  [AWS X-Ray Guia do desenvolvedor](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Guia do usuário do AWS DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+  [Visibilidade sobre como as questões da Internet afetam a performance de aplicações](https://www.youtube.com/watch?v=Kuc_SG_aBgQ) 
+  [Introdução ao Amazon DevOps Guru](https://www.youtube.com/watch?v=2uA8q-8mTZY) 
+  [Gerenciar eventos do ciclo de vida dos recursos em grande escala com o AWS Health](https://www.youtube.com/watch?v=VoLLNL5j9NA) 

 **Exemplos relacionados:** 
+  [AWS Health Aware](https://github.com/aws-samples/aws-health-aware/) 
+  [Usar a filtragem baseada em tags para gerenciar o monitoramento e os alertas do AWS Health em grande escala](https://aws.amazon.com/blogs/mt/using-tag-based-filtering-to-manage-health-monitoring-and-alerting-at-scale/) 

# OPS04-BP05 Implementar rastreamento distribuído
<a name="ops_observability_dist_trace"></a>

 O rastreamento distribuído oferece uma maneira de monitorar e visualizar solicitações à medida que elas percorrem vários componentes de um sistema distribuído. Ao capturar dados de rastreamento de várias fontes e analisá-los em uma visão unificada, as equipes podem entender melhor como as solicitações fluem, onde existem gargalos e onde os esforços de otimização devem se concentrar. 

 **Resultado desejado:** obtenha uma visão holística das solicitações que fluem pelo seu sistema distribuído, permitindo depuração precisa, performance otimizada e experiências de usuário aprimoradas. 

 **Práticas comuns que devem ser evitadas:** 
+  Instrumentação inconsistente: nem todos os serviços em um sistema distribuído são instrumentados para rastreamento. 
+  Ignorar a latência: foco apenas nos erros e sem considerar a latência ou as degradações graduais da performance. 

 **Benefícios de implementar esta prática recomendada:** 
+ Visão geral abrangente do sistema: visualização de todo o caminho das solicitações, da entrada à saída.
+  Depuração aprimorada: identificação rápida de onde ocorrem falhas ou problemas de performance. 
+  Experiência de usuário aprimorada: monitoramento e otimização com base nos dados reais do usuário, garantindo que o sistema atenda às demandas do mundo real. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Comece identificando todos os elementos da workload que exigem instrumentação. Depois que todos os componentes forem contabilizados, utilize ferramentas como o AWS X-Ray e o OpenTelemetry para coletar dados de rastreamento para análise com ferramentas como o X-Ray e o Amazon CloudWatch ServiceLens Map. Faça avaliações regulares com desenvolvedores e complemente essas discussões com ferramentas como o Amazon DevOps Guru, o X-Ray Analytics e o X-Ray Insights para ajudar a fazer descobertas mais profundas. Estabeleça alertas a partir de dados de rastreamento para notificar quando os resultados, conforme definido no plano de monitoramento da workload, estiverem em risco. 

### Etapas de implementação
<a name="implementation-steps"></a>

 Para implementar o rastreamento distribuído de forma eficaz: 

1.  **Adote o [AWS X-Ray](https://aws.amazon.com/xray/):** integre o X-Ray à sua aplicação para obter informações sobre seu comportamento, entender sua performance e identificar gargalos. Utilize o X-Ray Insights para análise automática de rastreamento. 

1.  **Instrumente seus serviços:** verifique se cada serviço, de uma função do [AWS Lambda](https://aws.amazon.com/lambda/) a uma [instância do EC2](https://aws.amazon.com/ec2/), envia dados de rastreamento. Quanto mais serviços você instrumentar, mais clara será a visão completa. 

1.  **Incorpore o [monitoramento de usuários reais do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) e o [monitoramento sintético](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html):** integre o monitoramento de usuários reais (RUM) e o monitoramento sintético com o X-Ray. Isso permite capturar experiências reais do usuário e simular as interações do usuário para identificar possíveis problemas. 

1.  **Use o [agente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html):** o agente pode enviar rastreamentos a partir do X-Ray ou do OpenTelemetry, aumentando a profundidade dos insights obtidos. 

1.  **Use o [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/):** o DevOps Guru usa dados do X-Ray, CloudWatch, AWS Config e AWS CloudTrail para fornecer recomendações práticas. 

1.  **Analise os rastreamentos:** revise regularmente os dados de rastreamento para discernir padrões, anomalias ou gargalos que possam afetar a performance da sua aplicação. 

1.  **Configure alertas:** configure alarmes no [CloudWatch](https://aws.amazon.com/cloudwatch/) para padrões incomuns ou latências estendidas, permitindo o tratamento proativo de problemas. 

1.  **Aprimoramento contínuo:** revise sua estratégia de rastreamento à medida que os serviços são adicionados ou modificados para capturar todos os pontos de dados relevantes. 

 **Nível de esforço do plano de implementação:** Médio 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS04-BP01 Identificar indicadores-chave de performance](ops_observability_identify_kpis.md) 
+  [OPS04-BP02 Implementar a telemetria de aplicações](ops_observability_application_telemetry.md) 
+  [OPS04-BP03 Implementar telemetria da experiência do usuário](ops_observability_customer_telemetry.md) 
+  [OPS04-BP04 Implementar a telemetria de dependências](ops_observability_dependency_telemetry.md) 

 **Documentos relacionados:** 
+ [Guia do desenvolvedor do AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
+ [Guia do usuário do agente do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)
+ [Guia do usuário do Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html)

 **Vídeos relacionados:** 
+ [Usar o AWS X-Ray Insights](https://www.youtube.com/watch?v=tl8OWHl6jxw)
+ [Destaque da AWS On Air: Observabilidade: Amazon CloudWatch e AWS X-Ray](https://www.youtube.com/watch?v=qBDBnPkZ-KI)

 **Exemplos relacionados:** 
+ [Instrumentar sua aplicação para o AWS X-Ray](https://aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html)

# Design das operações
<a name="design-for-operations"></a>

Adote abordagens que melhoram o fluxo de alterações na produção e ajudam na refatoração, em comentários rápidos sobre a qualidade e na correção de erros. Isso acelera as alterações benéficas que entram na produção, limita os problemas implantados e oferece rápida identificação e correção dos problemas introduzidos pelas atividades de implantação.

Na AWS, é possível visualizar a workload completa (aplicações, infraestrutura, política, governança e operações) como código. Tudo pode ser definido e atualizado usando o código. Isso significa que você pode aplicar a mesma disciplina de engenharia usada para o código da aplicação em todos os elementos da sua pilha.

**Topics**
+ [OPS05-BP01 Usar controle de versão](ops_dev_integ_version_control.md)
+ [OPS05-BP02 Testar e validar alterações](ops_dev_integ_test_val_chg.md)
+ [OPS05-BP03 Usar sistemas de gerenciamento de configuração](ops_dev_integ_conf_mgmt_sys.md)
+ [OPS05-BP04 Usar sistemas de gerenciamento de compilação e de implantação](ops_dev_integ_build_mgmt_sys.md)
+ [OPS05-BP05 Executar o gerenciamento de patches](ops_dev_integ_patch_mgmt.md)
+ [OPS05-BP06 Compartilhar padrões de design](ops_dev_integ_share_design_stds.md)
+ [OPS05-BP07 Implementar práticas para aprimorar a qualidade do código](ops_dev_integ_code_quality.md)
+ [OPS05-BP08 Usar vários ambientes](ops_dev_integ_multi_env.md)
+ [OPS05-BP09 Fazer alterações frequentes, pequenas e reversíveis](ops_dev_integ_freq_sm_rev_chg.md)
+ [OPS05-BP10 Automatizar totalmente a integração e a implantação](ops_dev_integ_auto_integ_deploy.md)

# OPS05-BP01 Usar controle de versão
<a name="ops_dev_integ_version_control"></a>

 Use o controle de versão para ativar o rastreamento de alterações e liberações. 

 Muitos serviços da AWS oferecem recursos de controle de versão. Use um sistema de revisão ou de [controle de código-fonte](https://aws.amazon.com/devops/source-control/) como o [Git](https://aws.amazon.com/devops/source-control/git/) para gerenciar código e outros artefatos, como modelos do [AWS CloudFormation](https://aws.amazon.com/cloudformation/) com controle de versão da infraestrutura. 

 **Resultado desejado:** suas equipes colaboram no código. Quando mesclado, o código é consistente e nenhuma alteração é perdida. Os erros são facilmente revertidos por meio do versionamento correto. 

 **Práticas comuns que devem ser evitadas:** 
+  Você está desenvolvendo e armazenando seu código na estação de trabalho. Você teve uma falha de armazenamento irrecuperável na estação de trabalho e seu código foi perdido. 
+  Depois de substituir o código existente pelas alterações, você reinicia a aplicação e ela deixa de ser operável. Não é possível reverter a alteração. 
+  Você tem um bloqueio de gravação em um arquivo de relatório que outra pessoa precisa editar. Ela entra em contato com você solicitando que você interrompa o trabalho para que ela possa concluir as tarefas. 
+  Sua equipe de pesquisa tem trabalhado em uma análise detalhada que moldará seu trabalho futuro. Alguém salvou acidentalmente a lista de compras sobre o relatório final. Não é possível reverter a alteração e você terá que recriar o relatório. 

 **Benefícios de implementar esta prática recomendada:** ao usar recursos de controle de versão, você pode reverter facilmente para estados e versões anteriores reconhecidamente bons e limitar o risco de perda de ativos. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Mantenha ativos em repositórios controlados por versão. Fazer isso oferece suporte ao rastreamento de alterações, à implantação de novas versões, à detecção de alterações nas versões existentes e à reversão para versões anteriores (por exemplo, a reversão para um estado reconhecidamente bom no caso de uma falha). Integre os recursos de controle de versão dos sistemas de gerenciamento de configurações aos seus procedimentos. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS05-BP04 Usar sistemas de gerenciamento de compilação e de implantação](ops_dev_integ_build_mgmt_sys.md) 

 **Vídeos relacionados:** 
+ [AWS re:Invent 2023 - How Lockheed Martin builds software faster, powered by DevSecOps ](https://www.youtube.com/watch?v=Q1OSyxYkl5w)
+ [AWS re:Invent 2023 - How GitHub operationalizes AI for team collaboration and productivity ](https://www.youtube.com/watch?v=cOVvGaiusOI)

# OPS05-BP02 Testar e validar alterações
<a name="ops_dev_integ_test_val_chg"></a>

 Cada alteração implantada deve ser testada para evitar erros na produção. A prática recomendada concentra-se em testar alterações do controle de versão na build de artefato. Além das alterações do código da aplicação, o teste deve incluir infraestrutura, configuração, controles de segurança e procedimentos de operações. O teste assume muitas formas, desde testes de unidade à análise dos componentes do software (SCA). Mova os testes mais para a esquerda na integração do software e o processo de entrega resultará em maior certeza da qualidade do artefato. 

 Sua organização deve desenvolver padrões de teste para todos os artefatos de software. Os testes automatizados reduzem o trabalho e evitam erros de testes manuais. Os testes manuais podem ser necessários em alguns casos. Os desenvolvedores precisam ter acesso aos resultados dos testes automatizados para criar loops de feedback que melhorem a qualidade do software. 

 **Resultado desejado:** as alterações do software são testadas antes de serem entregues. Os desenvolvedores têm acesso aos resultados e às validações dos testes. Sua organização tem um padrão de testes que se aplica a todas as alterações do software. 

 **Práticas comuns que devem ser evitadas:** 
+  Você implanta uma nova alteração do software sem nenhum teste. Ele não é executado na produção, o que ocasiona uma interrupção. 
+  Novos grupos de segurança são implantados com o AWS CloudFormation sem serem testados em um ambiente de pré-produção. Os grupos de segurança tornam sua aplicação inacessível para seus clientes. 
+  Um método é modificado, mas não há testes de unidade. O software falha quando é implantado em produção. 

 **Benefícios de implementar esta prática recomendada:** a taxa de falhas em alterações nas implantações de software é reduzida. A qualidade do software é aprimorada. Os desenvolvedores aumentaram a conscientização sobre a viabilidade do código deles. As políticas de segurança podem ser distribuídas com confiança para apoiar a conformidade da organização. Alterações da infraestrutura, como atualizações da política de ajuste de escala automático, são testadas com antecedência para atender às necessidades de tráfego. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Testes são realizados em todas as alterações, desde o código da aplicação à infraestrutura, como parte de sua prática de integração contínua. Os resultados dos testes são publicados para que os desenvolvedores tenham feedback rápido. Sua organização tem um padrão de testes de que todas as alterações devem ser aprovadas. 

 Use o poder da IA generativa com o Amazon Q Developer para melhorar a produtividade do desenvolvedor e a qualidade do código. O Amazon Q Developer inclui a geração de sugestões de código (com base em grandes modelos de linguagem), produção de testes unitários (incluindo condições de limite) e aprimoramentos de segurança de código por meio da detecção e correção de vulnerabilidades de segurança. 

 **Exemplo de cliente** 

 Como parte do pipeline de integração contínua, a AnyCompany Retail realiza alguns tipos de teste em todos os artefatos de software. Eles praticam desenvolvimento orientado a testes para que todo o software tenha testes de unidade. Depois que o artefato é criado, eles executam testes completos. Depois que a primeira etapa de testes é concluída, eles executam uma verificação de segurança da aplicação estática, que procura vulnerabilidades conhecidas. Os desenvolvedores recebem mensagens à medida que cada gate de testes é aprovado. Depois que todos os testes são concluídos, o artefato de software é armazenado em um repositório de artefatos. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Trabalhe com partes interessadas em sua organização para desenvolver um padrão de testes para artefatos de software. Em quais testes padrão todos os artefatos devem ser aprovados? Há requisitos de conformidade ou governança que devem ser incluídos na cobertura de testes? Você precisa realizar testes de qualidade de código? Quando os testes são concluídos, quem precisa saber? 

   1.  A [Arquitetura de referência do pipeline de implantação da AWS](https://pipelines.devops.aws.dev/) contém uma lista confiável de tipos de testes que podem ser conduzidos em artefatos de software como parte de um pipeline de integração. 

1.  Instrumente sua aplicação com os testes necessários com base em seu padrão de testes de software. Cada conjunto de testes deve ser concluído em menos de dez minutos. Os testes devem ser executados como parte de um pipeline de integração. 

   1.  Use o [Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html), uma ferramenta generativa de IA que pode ajudar a criar casos de teste unitários (incluindo condições de limite), gerar funções usando código e comentários e implementar algoritmos conhecidos. 

   1.  Use o [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) para testar defeitos no código da sua aplicação. 

   1.  Você pode usar o [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) para realizar testes em artefatos de software. 

   1.  O [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) pode orquestrar seus testes de software em um pipeline. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS05-BP01 Usar controle de versão](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_version_control.html) 
+  [OPS05-BP06 Compartilhar padrões de design](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_share_design_stds.html) 
+  [OPS05-BP07 Implementar práticas para aprimorar a qualidade do código](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_code_quality.html) 
+  [OPS05-BP10 Automatizar totalmente a integração e a implantação](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_auto_integ_deploy.html) 

 **Documentos relacionados:** 
+  [Adote uma abordagem de desenvolvimento orientado por testes](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Acelerar seu ciclo de vida de desenvolvimento de software com o Amazon Q](https://aws.amazon.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/) 
+  [O Amazon Q Developer, agora disponível ao público em geral, inclui visualizações de novos recursos para reimaginar a experiência do desenvolvedor](https://aws.amazon.com/blogs/aws/amazon-q-developer-now-generally-available-includes-new-capabilities-to-reimagine-developer-experience/) 
+  [A folha de dicas definitiva para usar o Amazon Q Developer em seu IDE](https://community.aws/content/2eYoqeFRqaVnk900emsknDfzhfW/the-ultimate-cheat-sheet-for-using-amazon-q-developer-in-your-ide) 
+  [workload Shift-Left: aproveitando a IA para a criação de testes](https://community.aws/content/2gBZtC94gPzaCQRnt4P0rIYWuBx/shift-left-workload-leveraging-ai-for-test-creation) 
+  [Amazon Q Developer Center](https://aws.amazon.com/developer/generative-ai/amazon-q/) 
+  [Dez maneiras de criar aplicações mais rapidamente com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/10-ways-to-build-applications-faster-with-amazon-codewhisperer/) 
+  [Olhar além da cobertura de código com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/looking-beyond-code-coverage-with-amazon-codewhisperer/) 
+  [Práticas recomendadas para engenharia rápida com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/best-practices-for-prompt-engineering-with-amazon-codewhisperer/) 
+  [Pipeline de teste do AWS CloudFormation automatizado com TaskCat e CodePipeline](https://aws.amazon.com/blogs/devops/automated-cloudformation-testing-pipeline-with-taskcat-and-codepipeline/) 
+  [Criar um pipeline de CI/CD completo do AWS DevSecOps com ferramentas de código aberto SCA, SAST e DAST](https://aws.amazon.com/blogs/devops/building-end-to-end-aws-devsecops-ci-cd-pipeline-with-open-source-sca-sast-and-dast-tools/) 
+  [Conceitos básicos de testes de aplicações com tecnologia sem servidor)](https://aws.amazon.com/blogs/compute/getting-started-with-testing-serverless-applications/) 
+  [Meu pipeline de CI/CD é meu capitão de lançamentos](https://aws.amazon.com/builders-library/cicd-pipeline/) 
+  [Whitepaper Praticar a integração e entrega contínuas na AWS](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/welcome.html) 

 **Vídeos relacionados:** 
+  [Implementar uma API com o Amazon Q Developer Agent para desenvolvimento de software](https://www.youtube.com/watch?v=U4XEvJUvff4) 
+  [Instalar, configurar e usar o Amazon Q Developer com os IDEs da JetBrains (instruções)](https://www.youtube.com/watch?v=-iQfIhTA4J0) 
+  [Dominar a arte do Amazon CodeWhisperer: playlist do YouTube](https://www.youtube.com/playlist?list=PLDqi6CuDzubxzL-yIqgQb9UbbceYdKhpK) 
+  [AWS re:Invent 2020: Infraestrutura testável: teste de integração na AWS](https://www.youtube.com/watch?v=KJC380Juo2w) 
+  [AWS Summit ANZ 2021: Conduzir uma estratégia de primeiro teste com o CDK e desenvolvimento orientado a testes](https://www.youtube.com/watch?v=1R7G_wcyd3s) 
+  [Testar sua infraestrutura como código com o AWS CDK CDK](https://www.youtube.com/watch?v=fWtuwGSoSOU) 

 **Recursos relacionados:** 
+  [Arquitetura de referência do pipeline de implantação da AWS: aplicação](https://pipelines.devops.aws.dev/application-pipeline/index.html) 
+  [Pipeline de DevSecOps de Kubernetes da AWS](https://github.com/aws-samples/devsecops-cicd-containers) 
+  [Executar testes de unidade para uma aplicação Node.js do GitHub usando o AWS CodeBuild](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-unit-tests-for-a-node-js-application-from-github-by-using-aws-codebuild.html) 
+  [Usar o Serverspec para o desenvolvimento orientado por testes de código de infraestrutura](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/use-serverspec-for-test-driven-development-of-infrastructure-code.html) 

 **Serviços relacionados:** 
+  [Amazon Q Developer](https://aws.amazon.com/q/developer/) 
+  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 
+  [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 

# OPS05-BP03 Usar sistemas de gerenciamento de configuração
<a name="ops_dev_integ_conf_mgmt_sys"></a>

 Use os sistemas de gerenciamento de configuração para fazer e rastrear alterações nas configurações. Esses sistemas reduzem os erros causados pelos processos manuais e o nível de esforço para implantar as alterações. 

O gerenciamento da configuração estática define valores ao inicializar um recurso que deve permanecer consistente durante todo o tempo de vida do recurso. O gerenciamento da configuração dinâmica define valores na inicialização que podem ou devem ser alterados durante o tempo de vida de um recurso. Por exemplo, é possível definir um recurso para ativar a funcionalidade em seu código por meio de uma alteração na configuração ou alterar o nível de detalhes do registro durante um incidente.

As configurações devem ser implantadas em um estado conhecido e consistente. Recomenda-se usar a inspeção automatizada para monitorar continuamente as configurações de recursos em todos os ambientes e regiões. Esses controles devem ser definidos como código e gerenciamento automatizados para garantir que as regras sejam aplicadas de forma consistente em todos os ambientes. As alterações nas configurações devem ser atualizadas por meio de procedimentos de controle de alterações acordados e aplicadas de forma consistente, respeitando o controle de versão. A configuração da aplicação deve ser gerenciada independentemente do código da aplicação e da infraestrutura. Isso permite uma implantação consistente em vários ambientes. As alterações na configuração não resultam na reconstrução ou reimplantação da aplicação. 

 **Resultado desejado:** você configura, valida e implanta como parte de seu pipeline de integração contínua e entrega contínua (CI/CD). Você monitora para validar se as configurações estão corretas. Isso minimiza qualquer impacto para usuários finais e clientes. 

 **Práticas comuns que devem ser evitadas:** 
+  Você atualiza manualmente a configuração do servidor Web em toda a frota e vários servidores não respondem devido a erros de atualização. 
+  Você atualiza manualmente a frota do servidor de aplicações ao longo de muitas horas. A inconsistência na configuração durante a alteração causa comportamentos inesperados. 
+  Alguém atualizou seus grupos de segurança e seus servidores Web não estão mais acessíveis. Sem saber o que foi alterado, você gasta muito tempo investigando o problema, ampliando o tempo de recuperação. 
+  Você coloca uma configuração de pré-produção em produção por meio de CI/CD sem validação. Você expõe usuários e clientes a dados e serviços incorretos. 

 **Benefícios de implementar esta prática recomendada:** a adoção de sistemas de gerenciamento de configurações reduz o nível de esforço para fazer e rastrear alterações, bem como a frequência de erros causados por procedimentos manuais. Os sistemas de gerenciamento de configuração fornecem garantias com relação aos requisitos regulatórios, de conformidade e de governança. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Os sistemas de gerenciamento de configuração são usados para rastrear e implementar alterações nas configurações de aplicações e ambientes. Os sistemas de gerenciamento de configuração também são usados para reduzir erros causados por processos manuais, tornar as alterações de configuração repetíveis e auditáveis e reduzir o nível de esforço. 

 Na AWS, é possível usar o [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) para monitorar continuamente suas configurações de recursos da AWS em [todas as contas e regiões](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). Isso ajuda a rastrear o histórico da configuração, compreender como a alteração de uma configuração afeta outros recursos e auditá-la em relação a configurações esperadas ou desejadas, usando o [Regras do AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) e o [AWS Config Conformance Packs](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

 Para configurações dinâmicas em suas aplicações executadas em instâncias do Amazon EC2, AWS Lambda, contêineres, aplicações móveis ou dispositivos de IoT do Amazon EC2, você pode usar o [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html)para configurá-los, valida-los, implantá-los e monitorá-los em seus ambientes. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Identifique os proprietários da configuração. 

   1.  Informe os proprietários das configurações sobre quaisquer necessidades regulatórias, de conformidade ou de controle. 

1.  Identifique os itens de configuração e os resultados. 

   1.  Os itens de configuração são todas as configurações de aplicações e ambientes afetadas por uma implantação em seu pipeline de CI/CD. 

   1.  Os resultados incluem critérios de sucesso, validação e o que monitorar. 

1.  Selecione ferramentas para gerenciamento de configuração com base nos requisitos de seus negócios e no pipeline de entrega. 

1.  Considere implantações ponderadas, como implantações canário, para alterações significativas na configuração, a fim de minimizar o impacto de configurações incorretas. 

1.  Integre seu gerenciamento de configuração ao seu pipeline de CI/CD. 

1.  Valide todas as alterações enviadas. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS06-BP01 Preparar-se para alterações malsucedidas](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) 
+  [OPS06-BP02 Testar implantações](ops_mit_deploy_risks_test_val_chg.md) 
+  [OPS06-BP03 Utilizar estratégias de implantação seguras](ops_mit_deploy_risks_deploy_mgmt_sys.md) 
+  [OPS06-BP04 Automatizar os testes e a reversão](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Documentos relacionados:** 
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
+ [Acelerador de zona de pouso da AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/)
+ [AWS Config](https://aws.amazon.com/config/)
+ [O que é o AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+ [O que é o AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+  [Ferramentas de desenvolvedor AWS](https://aws.amazon.com/products/developer-tools/) 
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+ [AWS CodePipeline](https://aws.amazon.com/codepipeline/)
+ [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)

 **Vídeos relacionados:** 
+ [AWS re:Invent 2022: governança e conformidade proativas para workloads da AWS](https://youtu.be/PpUnH9Y52X0?si=82wff87KHXcc6nbT)
+ [AWS re:Invent 2020: Alcançar a conformidade como código usando o AWS Config](https://youtu.be/m8vTwvbzOfw?si=my4DP0FLq1zwKjho)
+ [Gerenciar e implantar configurações de aplicações com o AWS AppConfig](https://youtu.be/ztIxMY3IIu0?si=ovYGsxWOBysyQrg0)

# OPS05-BP04 Usar sistemas de gerenciamento de compilação e de implantação
<a name="ops_dev_integ_build_mgmt_sys"></a>

 Use sistemas de gerenciamento de compilação e implantação. Esses sistemas reduzem os erros causados pelos processos manuais e o nível de esforço para implantar as alterações. 

 Na AWS, é possível criar pipelines de integração contínua/implantação contínua (CI/CD) usando serviços como as [Ferramentas de desenvolvedor da AWS](https://aws.amazon.com/products/developer-tools/) (por exemplo, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/) e [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)). 

 **Resultado desejado:** seus sistemas de gerenciamento de compilação e implantação oferecem suporte ao sistema de integração contínua (CI/CD) de sua organização, que fornece recursos para automatizar implementações seguras com as configurações corretas. 

 **Práticas comuns que devem ser evitadas:** 
+  Depois de compilar o código no sistema de desenvolvimento e copiar o executável nos sistemas de produção, há uma falha na inicialização. Os arquivos de log locais indicam que a falha ocorreu devido à ausência de dependências. 
+  Você cria a aplicação com êxito com os novos recursos em seu ambiente de desenvolvimento e fornece o código à garantia de qualidade (QA). Ele falha no QA porque não há ativos estáticos. 
+  Na sexta-feira, após muito esforço, você consegue criar a aplicação manualmente em seu ambiente de desenvolvimento, incluindo os recursos recém-codificados. Na segunda-feira, você não consegue repetir as etapas que permitiram criar a aplicação com êxito. 
+  Você executa os testes que criou para a nova versão. Então você passa a próxima semana configurando um ambiente de teste e executando todos os testes de integração existentes, seguidos pelos testes de performance. O novo código tem um impacto inaceitável na performance e deve ser desenvolvido e testado novamente. 

 **Benefícios de implementar esta prática recomendada:** ao fornecer mecanismos para gerenciar atividades de criação e implantação, você reduz o nível de esforço para executar tarefas repetitivas, libera os membros da equipe para se concentrarem em tarefas criativas de alto valor e limita o surgimento de erros provenientes de procedimentos manuais. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Os sistemas de gerenciamento de compilação e implantação são usados para rastrear e implementar mudanças, reduzir erros causados por processos manuais e reduzir o nível de esforço necessário para implantações seguras. Automatize totalmente o pipeline de integração e implantação desde o check-in do código até a compilação, o teste, a implantação e a validação. Isso reduz o tempo de espera, diminui os custos, incentiva o aumento da frequência de mudanças, reduz o nível de esforço e aumenta a colaboração. 

### Etapas de implementação
<a name="implementation-steps"></a>

![\[Diagrama que mostra um pipeline de CI/CD usando o AWS CodePipeline e serviços relacionados\]](http://docs.aws.amazon.com/pt_br/wellarchitected/latest/operational-excellence-pillar/images/deployment-pipeline-tooling.png)


 

1.  Use um sistema de controle de versão para armazenar e gerenciar ativos (como documentos, código-fonte e arquivos binários). 

1.  Use o CodeBuild para compilar código-fonte, executar testes de unidade e produzir artefatos prontos para implantação. 

1.  Use o CodeDeploy como um serviço de implantação que automatiza implantações de aplicações em instâncias do [Amazon EC2](https://aws.amazon.com/ec2/), instâncias on-premises, [funções AWS Lambda com tecnologia sem servidor](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ou [Amazon ECS](https://aws.amazon.com/ecs/). 

1.  Monitore suas implantações. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS06-BP04 Automatizar os testes e a reversão](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Documentos relacionados:** 
+  [Ferramentas de desenvolvedor AWS](https://aws.amazon.com/products/developer-tools/) 
+  [O que é AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+  [O que é AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+ [AWS re:Invent 2022: Práticas recomendadas do AWS Well-Architected para DevOps na AWS](https://youtu.be/hfXokRAyorA)

# OPS05-BP05 Executar o gerenciamento de patches
<a name="ops_dev_integ_patch_mgmt"></a>

 Execute o gerenciamento de patches para obter recursos, solucionar problemas e manter a conformidade com a governança. Automatize o gerenciamento de patches para reduzir erros causados por processos manuais, escalar e facilitar a realização de patches. 

 O gerenciamento de patches e vulnerabilidades faz parte de suas atividades de gerenciamento de benefícios e riscos. É preferível ter infraestruturas imutáveis e implantar workloads em bons estados verificados e conhecidos. Quando isso não é viável, a aplicação de patches é a opção restante. 

 O [AWS Health](https://aws.amazon.com/premiumsupport/technology/aws-health/) é a fonte confiável de informações sobre eventos planejados do ciclo de vida e outros eventos que requerem ações e afetam a integridade de dos recursos da Nuvem AWS. Você deve estar ciente das próximas alterações e atualizações que devem ser realizadas. Os principais eventos planejados do ciclo de vida são enviados com pelo menos seis meses de antecedência. 

 O [Amazon EC2 Image Builder](https://aws.amazon.com/image-builder/) fornece pipelines para atualizar imagens de máquinas. Como parte do gerenciamento de patches, considere utilizar [imagens de máquina da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html       ) (AMIs) com um [pipeline de imagens de AMI](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html) ou imagens de contêiner com um [pipeline de imagem Docker](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-container-pipeline.html). Ao mesmo tempo, o AWS Lambda fornece padrões para [runtimes personalizados e bibliotecas adicionais](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html) para remover vulnerabilidades. 

 Você deve gerenciar as atualizações das [imagens de máquina da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) para Linux ou Windows Server usando o [Amazon EC2 Image Builder](https://aws.amazon.com/image-builder/). É possível usar o [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) com seu pipeline existente para gerenciar imagens do Amazon ECS e gerenciar imagens do Amazon EKS. O Lambda inclui [recursos de gerenciamento de versões](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html). 

 A aplicação de patches não deve ser realizada em sistemas de produção sem antes testá-los em um ambiente seguro. Os patches só deverão ser aplicados se forem compatíveis com um resultado operacional ou comercial. Na AWS, é possível usar o [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) para automatizar o processo de aplicação de patches em sistemas gerenciados e programar a atividade usando as [Janelas de manutenção do Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Resultado desejado:** suas imagens de AMI e contêiner receberam os patches e estão atualizadas e prontas para o lançamento. É possível rastrear o status de todas as imagens implantadas e conhecer a conformidade do patch. Você também pode emitir relatórios do status atual e ter um processo para atender às suas necessidades de conformidade. 

 **Práticas comuns que devem ser evitadas:** 
+  Você recebe uma ordem para aplicar todos os novos patches de segurança em até duas horas, resultando em várias interrupções devido à incompatibilidade da aplicação com os patches. 
+  Uma biblioteca sem patches resulta em consequências indesejadas, pois partes desconhecidas usam vulnerabilidades dentro dela para acessar a workload. 
+  Você aplica patches nos ambientes do desenvolvedor automaticamente, sem notificar os desenvolvedores. Você recebe várias reclamações dos desenvolvedores afirmando que o ambiente deles não está funcionando conforme o esperado. 
+  Você não aplicou patches no software pronto para uso comercial em uma instância persistente. Quando você tiver um problema com o software e entrar em contato com o fornecedor, ele informará que a versão não é compatível e será necessário aplicar patches a um nível específico para receber assistência. 
+  Um patch lançado recentemente para o software de criptografia que você usou tem melhorias significativas de performance. Seu sistema sem patches tem problemas de performance que permanecem enquanto a aplicação de patches não é feita. 
+  Você é notificado sobre uma vulnerabilidade de dia zero que exige uma correção de emergência e precisa fazer isso em todos os seus ambientes manualmente. 
+  Você não está ciente das ações básicas necessárias para manter seus recursos, como atualizações obrigatórias de versão, porque não analisa os próximos eventos planejados do ciclo de vida e outras informações. Você perde um tempo significativo para planejar e executar, o que resulta em alterações emergenciais para suas equipes e em possíveis impactos ou tempo de inatividade inesperado. 

 **Benefícios de implementar esta prática recomendada:** ao estabelecer um processo de gerenciamento de patches, incluindo seus critérios de aplicação de patches e metodologia para distribuição em seus ambientes, você pode escalar e gerar relatórios sobre os níveis de patch. Isso fornece garantias sobre a aplicação de patches de segurança e garante uma visibilidade clara do status das correções conhecidas em vigor. Isso permite a adoção de recursos e capacidades desejados, a remoção rápida de problemas e a conformidade contínua com a governança. Implemente sistemas de gerenciamento de patches e automação para reduzir o nível de esforço na implantação de patches e limitar erros causados por processos manuais. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Aplique patches nos sistemas para corrigir problemas, obter os recursos ou capacidades desejados e permanecer em conformidade com a política de governança e os requisitos de suporte do fornecedor. Em sistemas imutáveis, implante com o conjunto de patches adequado para alcançar o resultado desejado. Automatize o mecanismo de gerenciamento de patches para reduzir o tempo decorrido na aplicação de patches, reduzir erros causados por processos manuais e reduzir o nível de esforço para corrigir. 

### Etapas de implementação
<a name="implementation-steps"></a>

 Para Amazon EC2 Image Builder: 

1.  Usando o Amazon EC2 Image Builder, especifique os detalhes do pipeline: 

   1.  Crie um pipeline de imagens e atribua um nome a ele 

   1.  Defina a programação e o fuso horário do pipeline 

   1.  Configure todas as dependências 

1.  Escolha uma fórmula: 

   1.  Selecione a fórmula existente ou crie uma nova. 

   1.  Selecione o tipo de imagem 

   1.  Nomeie e crie a versão da sua fórmula 

   1.  Selecione sua imagem base 

   1.  Adicione componentes de compilação e adicione ao registro de destino 

1.  Opcional: defina sua configuração de infraestrutura. 

1.  Opcional: defina as configurações. 

1.  Revise as configurações. 

1.  Mantenha a higiene da fórmula regularmente. 

 Para o Gerenciador de patches do Systems Manager: 

1.  Crie uma lista de referência de patches. 

1.  Selecione um método de operações de patch. 

1.  Habilite relatórios e verificações de conformidade. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS06-BP04 Automatizar os testes e a reversão](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Documentos relacionados:** 
+ [O que é o Amazon EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html)
+ [Criar um pipeline de imagens usando o Amazon EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html)
+ [Criar um pipeline de imagens de contêiner](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-container-pipeline.html)
+  [Gerenciador de patches do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 
+ [Trabalhar com o Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-console.html)
+ [Trabalhar com relatórios de conformidade de patches](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-compliance-reports.html)
+ [Ferramentas de desenvolvedor da AWS](https://aws.amazon.com/products/developer-tools)

 **Vídeos relacionados:** 
+  [CI/CD para aplicações de tecnologia sem servidor na AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
+  [Design com Ops em mente](https://youtu.be/uh19jfW7hw4) 

   **Exemplos relacionados:** 
+ [Tutoriais do Gerenciador de patches do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-tutorials.html)

# OPS05-BP06 Compartilhar padrões de design
<a name="ops_dev_integ_share_design_stds"></a>

 Compartilhe práticas recomendadas entre equipes para aumentar a conscientização e maximizar os benefícios dos esforços de desenvolvimento. Documente-as e mantenha-as atualizadas à medida que sua arquitetura evolui. Se padrões compartilhados forem aplicados na sua organização, será fundamental que existam mecanismos para solicitar adições, alterações e exceções para os padrões. Sem essa opção, os padrões se tornam uma restrição à inovação. 

 **Resultado desejado:** os padrões de design são compartilhados entre as equipes nas organizações. Eles são documentados e mantidos atualizados de acordo com a evolução das práticas recomendadas. 

 **Práticas comuns que devem ser evitadas:** 
+ Cada uma das duas equipes de desenvolvimento criou um serviço de autenticação de usuários. Os usuários devem manter um conjunto separado de credenciais para cada parte do sistema que desejam acessar. 
+ Cada equipe gerencia sua própria infraestrutura. Um novo requisito de conformidade força uma alteração na infraestrutura e cada equipe o implementa de maneira diferente.

 **Benefícios de implementar esta prática recomendada:** usar padrões compartilhados contribui para a adoção das práticas recomendadas e maximiza os benefícios dos esforços de desenvolvimento. A documentação e atualização dos padrões de design mantém a organização atualizada com relação às práticas recomendadas e aos requisitos de segurança e conformidade. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Compartilhe as práticas recomendadas, os padrões de design, as listas de verificação, os procedimentos operacionais, as orientações e os requisitos de governança entre equipes. Adote procedimentos para solicitar alterações, adições e exceções para padrões de design a fim de apoiar a melhoria e a inovação. As equipes devem estar cientes do conteúdo publicado. Adote um mecanismo para manter os padrões de design atualizados à medida que surgem novas práticas recomendadas. 

 **Exemplo de cliente** 

 A AnyCompany Retail tem uma equipe de arquitetura multifuncional que cria padrões de arquitetura de software. Essa equipe cria a arquitetura com conformidade e governança integradas. As equipes que adotam esses padrões compartilhados recebem os benefícios de ter a conformidade e governança integradas. Elas podem criar rapidamente com base no padrão de design. A equipe de arquitetura se reúne trimestralmente para avaliar os padrões de arquitetura e atualizá-los, se necessário. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Identifique uma equipe multifuncional que seja responsável pelo desenvolvimento e pela atualização dos padrões de design. Essa equipe deverá trabalhar com as partes interessadas na organização para desenvolver os padrões de design, os procedimentos operacionais, as listas de verificações, as orientações e os requisitos de governança. Documente os padrões de design e compartilhe-os na organização. 

   1.  O [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) pode ser usado para criar portfólios representando os padrões de design usando infraestrutura como código. É possível compartilhar portfólios entre contas. 

1.  Tenha um mecanismo em vigor para manter os padrões de design atualizados à medida que novas práticas recomendadas são identificadas. 

1.  Se os padrões de design forem aplicados centralmente, tenha um processo para solicitar alterações, atualizações e isenções. 

 **Nível de esforço do plano de implementação:** Médio. O desenvolvimento de um processo para criar e compartilhar padrões de design pode exigir coordenação e cooperação com as partes interessadas na organização. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS01-BP03 Avaliar os requisitos de governança](ops_priorities_governance_reqs.md): os requisitos de governança influenciam os padrões de design. 
+  [OPS01-BP04 Avaliar os requisitos de conformidade](ops_priorities_compliance_reqs.md): a conformidade é um fator fundamental na criação dos padrões de design. 
+  [OPS07-BP02 Garantir uma revisão consistente da prontidão operacional](ops_ready_to_support_const_orr.md): as listas de verificação de prontidão operacional são um mecanismo para implementar os padrões de design ao projetar a workload. 
+  [OPS11-BP01 Adotar um processo para melhoria contínua](ops_evolve_ops_process_cont_imp.md): a atualização dos padrões de design faz parte da melhoria contínua. 
+  [OPS11-BP04 Gerenciar o conhecimento](ops_evolve_ops_knowledge_management.md): como parte da sua prática de gerenciamento de conhecimento, documente e compartilhe os padrões de design. 

 **Documentos relacionados:** 
+ [Automatizar AWS Backups com o AWS Service Catalog](https://aws.amazon.com/blogs/mt/automate-aws-backups-with-aws-service-catalog/)
+ [Conta do AWS Service Catalog aprimorada de fábrica](https://aws.amazon.com/blogs/mt/aws-service-catalog-account-factory-enhanced/)
+ [Como o Expedia Group criou uma oferta de banco de dados como serviço (DBaaS) usando o AWS Service Catalog](https://aws.amazon.com/blogs/mt/how-expedia-group-built-database-as-a-service-dbaas-offering-using-aws-service-catalog/)
+ [Manter a visibilidade sobre o uso dos padrões de arquitetura de nuvem](https://aws.amazon.com/blogs/architecture/maintain-visibility-over-the-use-of-cloud-architecture-patterns/)
+ [Simplifique o compartilhamento de seus portfólios do AWS Service Catalog em uma configuração do AWS Organizations](https://aws.amazon.com/blogs/mt/simplify-sharing-your-aws-service-catalog-portfolios-in-an-aws-organizations-setup/)

 **Vídeos relacionados:** 
+ [Conceitos básicos do AWS Service Catalog](https://www.youtube.com/watch?v=A9kKy6WhqVA)
+ [AWS re:Invent 2020: gerenciar seus portfólios do AWS Service Catalog como um especialista](https://www.youtube.com/watch?v=lVfXkWHAtR8)

 **Exemplos relacionados:** 
+ [Arquitetura de referência do AWS Service Catalog](https://github.com/aws-samples/aws-service-catalog-reference-architectures)
+ [Workshop do AWS Service Catalog](https://catalog.us-east-1.prod.workshops.aws/workshops/d40750d7-a330-49be-9945-cde864610de9/en-US)

 **Serviços relacionados:** 
+  [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) 

# OPS05-BP07 Implementar práticas para aprimorar a qualidade do código
<a name="ops_dev_integ_code_quality"></a>

 Implemente práticas para aprimorar a qualidade do código e minimizar os defeitos. Alguns exemplos incluem desenvolvimento orientado por testes, análises de código, adoção de padrões e programação de pares. Incorpore essas práticas em seu processo de entrega e integração contínua. 

 **Resultado desejado:** sua organização usa práticas recomendadas como análises de código ou programação de pares para melhorar a qualidade do código. Os desenvolvedores e os operadores adotam práticas recomendadas de qualidade do código como parte do ciclo de vida de desenvolvimento de software. 

 **Práticas comuns que devem ser evitadas:** 
+  Você confirma o código para a ramificação principal da aplicação sem uma análise de código. A alteração é implantada automaticamente na produção e causa uma interrupção. 
+  Uma nova aplicação é desenvolvida sem nenhum teste de integração, completo ou de unidade. Não há como testar a aplicação antes da implantação. 
+  Sua equipe faz alterações manuais na produção para solucionar os defeitos. As alterações não passam por testes nem análises de código e não são capturadas nem registradas por processos contínuos de entrega e integração. 

 **Benefícios de implementar esta prática recomendada:** ao adotar práticas para melhorar a qualidade do código, é possível reduzir os problemas introduzidos na produção. As práticas recomendadas de qualidade do código incluem programação de pares, análises de código e implementação de ferramentas de produtividade de IA. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Implemente práticas para melhorar a qualidade do código visando a minimizar os defeitos antes que eles sejam implantados. Use práticas como desenvolvimento orientado por testes, análises de código e programação de pares para aumentar a qualidade do desenvolvimento. 

 Use o poder da IA generativa com o Amazon Q Developer para melhorar a produtividade do desenvolvedor e a qualidade do código. O Amazon Q Developer inclui a geração de sugestões de código (com base em grandes modelos de linguagem), produção de testes unitários (incluindo condições de limite) e aprimoramentos de segurança de código por meio da detecção e correção de vulnerabilidades de segurança. 

 **Exemplo de cliente** 

 A AnyCompany Retail adota várias práticas para melhorar a qualidade do código. O desenvolvimento orientado por testes foi adotado com o padrão para escrever aplicações. Para alguns recursos novos, os desenvolvedores farão a programação de pares em conjunto durante um sprint. Cada pull request passa por uma análise de código feita por um desenvolvedor sênior antes de ser integrada e implantada. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Adote práticas de qualidade de código como desenvolvimento orientado por testes, análises de código e programação de pares em seu processo de entrega e integração contínua. Use essas técnicas para melhorar a qualidade do software. 

   1.  Use o [Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html), uma ferramenta de IA generativa que pode ajudar a criar casos de teste unitários (incluindo condições de limite), gerar funções usando código e comentários, implementar algoritmos conhecidos, detectar violações de políticas de segurança e vulnerabilidades em seu código, detectar segredos, examinar infraestrutura como código (IaC) e código de documentos e aprender bibliotecas de código de terceiros mais rapidamente. 

   1.  O [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) pode fornecer recomendações de programação para código Java e Python usando machine learning. 

 **Nível de esforço do plano de implementação:** Médio. Há muitas maneiras de implementar essa prática recomendada, mas pode ser difícil garantir a adesão organizacional. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS05-BP02 Testar e validar alterações](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_test_val_chg.html) 
+  [OPS05-BP06 Compartilhar padrões de design](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_share_design_stds.html) 

 **Documentos relacionados:** 
+  [Adote uma abordagem de desenvolvimento orientado por testes](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Acelerar seu ciclo de vida de desenvolvimento de software com o Amazon Q](https://aws.amazon.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/) 
+  [O Amazon Q Developer, agora disponível ao público em geral, inclui visualizações de novos recursos para reimaginar a experiência do desenvolvedor](https://aws.amazon.com/blogs/aws/amazon-q-developer-now-generally-available-includes-new-capabilities-to-reimagine-developer-experience/) 
+  [A folha de dicas definitiva para usar o Amazon Q Developer em seu IDE](https://community.aws/content/2eYoqeFRqaVnk900emsknDfzhfW/the-ultimate-cheat-sheet-for-using-amazon-q-developer-in-your-ide) 
+  [workload Shift-Left: aproveitando a IA para a criação de testes](https://community.aws/content/2gBZtC94gPzaCQRnt4P0rIYWuBx/shift-left-workload-leveraging-ai-for-test-creation) 
+  [Amazon Q Developer Center](https://aws.amazon.com/developer/generative-ai/amazon-q/) 
+  [Dez maneiras de criar aplicações mais rapidamente com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/10-ways-to-build-applications-faster-with-amazon-codewhisperer/) 
+  [Olhar além da cobertura de código com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/looking-beyond-code-coverage-with-amazon-codewhisperer/) 
+  [Práticas recomendadas para engenharia rápida com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/best-practices-for-prompt-engineering-with-amazon-codewhisperer/) 
+  [Guia do software Agile](https://martinfowler.com/agile.html) 
+  [Meu pipeline de CI/CD é meu capitão de lançamentos](https://aws.amazon.com/builders-library/cicd-pipeline/) 
+  [Automatizar as revisões de código com o Amazon CodeGuru Reviewer](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/) 
+  [Adote uma abordagem de desenvolvimento orientado por testes](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Como o DevFactory cria melhores aplicações com o Amazon CodeGuru](https://aws.amazon.com/blogs/machine-learning/how-devfactory-builds-better-applications-with-amazon-codeguru/) 
+  [Sobre a programação de pares](https://martinfowler.com/articles/on-pair-programming.html) 
+  [RENGA Inc. automatiza as revisões de código com o Amazon CodeGuru)](https://aws.amazon.com/blogs/machine-learning/renga-inc-automates-code-reviews-with-amazon-codeguru/) 
+  [A arte do desenvolvimento ágil: desenvolvimento orientado por testes](http://www.jamesshore.com/v2/books/aoad1/test_driven_development) 
+  [Por que as revisões de código são importantes (e economizam tempo\$1)](https://www.atlassian.com/agile/software-development/code-reviews) 

 **Vídeos relacionados:** 
+  [Implementar uma API com o Amazon Q Developer Agent para desenvolvimento de software](https://www.youtube.com/watch?v=U4XEvJUvff4) 
+  [Instalar, configurar e usar o Amazon Q Developer com os IDEs da JetBrains (instruções)](https://www.youtube.com/watch?v=-iQfIhTA4J0) 
+  [Dominar a arte do Amazon CodeWhisperer: playlist do YouTube](https://www.youtube.com/playlist?list=PLDqi6CuDzubxzL-yIqgQb9UbbceYdKhpK) 
+  [AWS re:Invent 2020: Melhoria contínua da qualidade do código com o Amazon CodeGuru](https://www.youtube.com/watch?v=iX1i35H1OVw) 
+  [AWS Summit ANZ 2021: Conduzir uma estratégia de primeiro teste com o CDK e desenvolvimento orientado a testes](https://www.youtube.com/watch?v=1R7G_wcyd3s) 

 **Serviços relacionados:** 
+  [Amazon Q Developer](https://aws.amazon.com/q/developer/) 
+  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 
+  [Amazon CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 

# OPS05-BP08 Usar vários ambientes
<a name="ops_dev_integ_multi_env"></a>

 Use vários ambientes para experimentar, desenvolver e testar a workload. Use níveis crescentes de controles à medida que os ambientes se aproximam da produção para adquirir confiança de que sua workload operará conforme pretendido quando implantada. 

 **Resultado desejado:** você tem vários ambientes que refletem suas necessidades de conformidade e governança. Você testa e promove o código por meio de ambientes em seu caminho para a produção. 

1.  Sua organização faz isso por meio do estabelecimento de uma zona de pouso, que fornece governança, controles, automações de contas, rede, segurança e observabilidade operacional. Gerencie esses recursos da zona de pouso usando vários ambientes. Um exemplo comum é uma organização de sandbox para desenvolver e testar mudanças em uma zona de pouso baseada no [AWS Control Tower](https://aws.amazon.com/controltower/), que inclui [Centro de Identidade do AWS IAM](https://aws.amazon.com/iam/identity-center/) e políticas como [políticas de controle de serviços (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html). Todos esses elementos podem impactar significativamente o acesso e a operação das Contas da AWS dentro da zona de pouso. 

1.  Além desses serviços, as equipes ampliam as capacidades das zonas de pouso com soluções publicadas pela AWS ou por parceiros da AWS, ou na forma de soluções personalizadas desenvolvidas na sua organização. Exemplos de soluções publicadas pela AWS incluem [Personalizações para AWS Control Tower (CfCT)](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/) e [AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html). 

1.  Sua organização aplica os mesmos princípios de teste, promoção de código e mudanças de políticas para a zona de pouso por meio de ambientes no caminho para a produção. Essa estratégia fornece um ambiente de zona de pouso estável e seguro para as equipes de aplicações e workloads. 

 **Práticas comuns que devem ser evitadas:** 
+  Você está trabalhando em um desenvolvimento em um ambiente de desenvolvimento compartilhado e outro desenvolvedor substitui suas alterações de código. 
+  Os controles de segurança restritivos em seu ambiente de desenvolvimento compartilhado estão impedindo que você experimente novos serviços e recursos. 
+  Você realiza testes de carga em seus sistemas de produção e causa uma interrupção para seus usuários. 
+  Ocorreu um erro crítico na produção que resulta na perda de dados. No ambiente de produção, você tenta recriar as condições que levaram à perda de dados para identificar como isso aconteceu e impedir a recorrência. Para evitar mais perda de dados durante o teste, você é forçado a tornar indisponível a aplicação para seus usuários. 
+  Você está operando um serviço multilocatário e não consegue oferecer suporte a uma solicitação do cliente para um ambiente dedicado. 
+  Nem sempre você testa, mas, quando o faz, o teste acontece em seu ambiente de produção. 
+  Você acredita que a simplicidade de um único ambiente substitui o escopo do impacto das alterações dentro do ambiente. 
+  Você atualiza um recurso importante da zona de pouso, mas a mudança prejudica a capacidade da equipe de vender contas para novos projetos ou para workloads existentes. 
+  Você aplica novos controles às Contas da AWS, mas a mudança afeta a capacidade da sua equipe de workload de implantar mudanças dentro das Contas da AWS dela. 

 **Benefícios de implementar essa prática recomendada:** ao implantar vários ambientes, é possível oferecer suporte a vários ambientes simultâneos de desenvolvimento, teste e produção sem criar conflitos entre desenvolvedores ou comunidades de usuários. Para recursos complexos, como zonas de pouso, isso reduz significativamente o risco de mudanças, simplifica o processo de melhoria e reduz o risco de atualizações críticas no ambiente. Organizações que usam zonas de pouso naturalmente se beneficiam de várias contas no ambiente da AWS delas, com configurações de estrutura de contas, governança, rede e segurança. Com o tempo, à medida que a organização cresce, a zona de pouso pode evoluir para proteger e organizar as workloads e recursos. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Use vários ambientes e forneça aos desenvolvedores ambientes de sandbox com controles minimizados para permitir a experimentação. Forneça ambientes de desenvolvimento individuais para ajudar o trabalho em paralelo, aumentando a agilidade do desenvolvimento. Implemente controles mais rigorosos nos ambientes ao se aproximar da produção para permitir que os desenvolvedores inovem. Use a infraestrutura como sistemas de gerenciamento de código e configuração para implantar ambientes que são configurados de maneira consistente com os controles presentes na produção para garantir que os sistemas operem conforme o esperado quando implantados. Quando os ambientes não estiverem em uso, desligue-os para evitar custos associados a recursos inativos (por exemplo, sistemas de desenvolvimento à noite e fins de semana). Implante ambientes equivalentes de produção ao carregar o teste para melhorar resultados válidos. 

 Equipes como engenharia de plataforma, redes e operações de segurança geralmente gerenciam recursos no nível da organização com requisitos distintos. A separação de contas por si só é insuficiente para fornecer e manter ambientes separados para experimentação, desenvolvimento e teste. Nesses casos, crie instâncias separadas do AWS Organizations. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+ [Agendador de instâncias na AWS](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/)
+  [O que é AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+ [Organizing Your AWS Environment Using Multiple Accounts - Multiple organizations - Test changes to your overall AWS environment](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/multiple-organizations.html#test-changes-to-your-overall-aws-environment)
+ [Guia do AWS Control Tower](https://catalog.workshops.aws/control-tower)

# OPS05-BP09 Fazer alterações frequentes, pequenas e reversíveis
<a name="ops_dev_integ_freq_sm_rev_chg"></a>

 Alterações frequentes, pequenas e reversíveis reduzem o escopo e o impacto de uma alteração. Quando usadas em conjunto com sistemas de gerenciamento de alterações, sistemas de gerenciamento de configuração e sistemas de compilação e entrega, alterações frequentes, pequenas e reversíveis reduzem o escopo e o impacto de uma mudança. Isso resulta em solução de problemas mais eficaz e correção mais rápida, com a opção de reverter alterações. 

 **Práticas comuns que devem ser evitadas:** 
+  Você implanta uma nova versão de sua aplicação trimestralmente com uma janela de alteração que significa que um serviço principal está desativado. 
+  Você frequentemente faz alterações no esquema do banco de dados sem rastrear as alterações nos sistemas de gerenciamento. 
+  Você realiza atualizações manuais no local, substituindo as instalações e configurações existentes e não tem um plano claro de reversão. 

 **Benefícios de implantar esta prática recomendada:** os esforços de desenvolvimento são mais rápidos com a implantação frequente de pequenas alterações. Quando as alterações são pequenas, é muito mais fácil identificar se elas têm consequências indesejadas e são mais fáceis de serem revertidas. Quando as alterações são reversíveis, há menos risco de implementar a alteração à medida que a recuperação é simplificada. O processo de mudança tem um risco reduzido e o impacto de uma alteração malsucedida é reduzido. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Baixo 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Use alterações frequentes, pequenas e reversíveis para reduzir o escopo e o impacto de uma mudança. Isso facilita a solução de problemas, ajuda a fazer uma correção mais rápida e oferece a opção de reverter uma alteração. Além disso, aumenta a taxa na qual você pode agregar valor aos negócios. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS05-BP03 Usar sistemas de gerenciamento de configuração](ops_dev_integ_conf_mgmt_sys.md) 
+  [OPS05-BP04 Usar sistemas de gerenciamento de compilação e de implantação](ops_dev_integ_build_mgmt_sys.md) 
+  [OPS06-BP04 Automatizar os testes e a reversão](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Documentos relacionados:** 
+ [Implementar microsserviços na AWS](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/microservices-on-aws.html)
+ [Microservices: observabilidade](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/observability.html)

# OPS05-BP10 Automatizar totalmente a integração e a implantação
<a name="ops_dev_integ_auto_integ_deploy"></a>

 Automatize a construção, a implantação e o teste da workload. Isso reduz os erros causados pelos processos manuais e reduz o esforço para implantar alterações. 

 Aplique metadados usando [tags de recursos](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) e [AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/Welcome.html) seguindo uma estratégia consistente de [marcação com tags](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) para identificar seus recursos. Marque com tags seus recursos de organização, contabilidade de custos, controles de acesso pensando na execução de atividades operacionais automatizadas. 

 **Resultado desejado:** os desenvolvedores usam ferramentas para entregar códigos e levá-los até a produção. Os desenvolvedores não precisam fazer login no Console de gerenciamento da AWS para fazer atualizações. Há uma trilha de auditoria completa de alterações e configurações, o que atende às necessidades de governança e conformidade. Os processos são repetíveis e padronizados entre as equipes. Os desenvolvedores podem se concentrar no desenvolvimento e na introdução de código, aumentando a produtividade. 

 **Práticas comuns que devem ser evitadas:** 
+  Na sexta-feira, você conclui a criação do novo código para a ramificação do recurso. Na segunda-feira, depois de executar os scripts de teste de qualidade de código e cada um dos scripts de teste de unidade, você registra seu código para a próxima versão agendada. 
+  Você tem a tarefa de codificar uma correção para um problema crítico que afeta um grande número de clientes em produção. Depois de testar a correção, você confirma o gerenciamento de alterações de e-mail e código para solicitar aprovação para implantá-lo na produção. 
+  Como desenvolvedor, você faz login no Console de gerenciamento da AWS para criar um novo ambiente de desenvolvimento usando métodos e sistemas que não são padrão. 

 **Benefícios de implementar esta prática recomendada:**: ao implementar sistemas automatizados de gerenciamento de criação e implantação, você reduz os erros causados por processos manuais e o esforço para implantar alterações, ajudando os membros da equipe a se concentrarem na entrega de valor para a empresa. Você aumenta a velocidade de entrega à medida que avança até a produção. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Baixo 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Você usa sistemas de gerenciamento de criação e implantação para rastrear e implementar alterações, reduzir erros causados por processos manuais e reduzir o nível de esforço. Automatize totalmente o pipeline de integração e implantação desde o check-in do código até a compilação, o teste, a implantação e a validação. Isso reduz o tempo de espera, aumenta a frequência de alterações, reduz o nível de esforço, aumenta a velocidade de entrada no mercado, resulta em maior produtividade e aumenta a segurança do seu código à medida que você o leva até a produção. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS05-BP03 Usar sistemas de gerenciamento de configuração](ops_dev_integ_conf_mgmt_sys.md) 
+  [OPS05-BP04 Usar sistemas de gerenciamento de compilação e de implantação](ops_dev_integ_build_mgmt_sys.md) 

 **Documentos relacionados:** 
+  [O que é AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [O que é AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+ [AWS re:Invent 2022: Práticas recomendadas do AWS Well-Architected para DevOps na AWS](https://youtu.be/hfXokRAyorA)

# Mitigar riscos de implantação
<a name="mitigate-deployment-risks"></a>

Adote abordagens que forneçam feedback rápido sobre a qualidade e permitam recuperação rápida de alterações que não têm os resultados desejados. O uso dessas práticas reduz o impacto dos problemas introduzidos pela implantação de mudanças.

O projeto da sua workload deve incluir como ela será implantada, atualizada e operada. Você deseja implementar práticas de engenharia alinhadas com a redução de defeitos e correções rápidas e seguras.

**Topics**
+ [OPS06-BP01 Preparar-se para alterações malsucedidas](ops_mit_deploy_risks_plan_for_unsucessful_changes.md)
+ [OPS06-BP02 Testar implantações](ops_mit_deploy_risks_test_val_chg.md)
+ [OPS06-BP03 Utilizar estratégias de implantação seguras](ops_mit_deploy_risks_deploy_mgmt_sys.md)
+ [OPS06-BP04 Automatizar os testes e a reversão](ops_mit_deploy_risks_auto_testing_and_rollback.md)

# OPS06-BP01 Preparar-se para alterações malsucedidas
<a name="ops_mit_deploy_risks_plan_for_unsucessful_changes"></a>

Planeje reverter para um bom estado anterior ou realize reparos no ambiente de produção se a implantação causar um resultado indesejado. Ter uma política para estabelecer esse plano ajuda todas as equipes a desenvolver estratégias para se recuperar de alterações com falha. Alguns exemplos de estratégias são etapas de implantação e reversão, políticas de alteração, sinalizadores de atributos, isolamento de tráfego e mudança de tráfego. Uma única versão pode incluir várias alterações de componentes relacionadas. A estratégia deve fornecer a possibilidade de resistir ou se recuperar de uma falha de qualquer alteração de componente.

 **Resultado desejado:** você preparou um plano de recuperação detalhado para a alteração, caso ela não tenha êxito. Além disso, você reduziu o tamanho da sua versão para minimizar o impacto potencial em outros componentes da workload. Como resultado, você reduziu o impacto nos negócios ao diminuir o possível tempo de inatividade decorrente de uma alteração malsucedida e aumentou a flexibilidade e a eficiência dos tempos de recuperação. 

 **Práticas comuns que devem ser evitadas:** 
+  Você executou uma implantação e sua aplicação se tornou instável, mas parece haver usuários ativos no sistema. Você precisa decidir se deseja reverter a alteração e afetar os usuários ativos ou esperar para reverter a alteração sabendo que, mesmo assim, os usuários podem ser afetados. 
+  Depois de fazer uma alteração de rotina, os novos ambientes ficam acessíveis, mas uma de suas sub-redes se tornou inacessível. Você precisa decidir se deseja reverter tudo ou tentar corrigir a sub-rede inacessível. Enquanto você estiver fazendo essa determinação, a sub-rede permanecerá inacessível. 
+  Seus sistemas não são arquitetados de uma forma que permita que sejam atualizados com versões menores. Como resultado, você tem dificuldade em reverter essas alterações em massa durante uma implantação com falha. 
+  Você não usa infraestrutura como código (IaC) e atualizações manuais foram feitas em sua infraestrutura que resultaram em uma configuração indesejada. Você não consegue rastrear e reverter com eficácia as alterações manuais. 
+  Como você não mediu o aumento da frequência das implantações, sua equipe não é incentivada a reduzir o tamanho das mudanças e melhorar seus planos de reversão para cada uma delas, gerando mais riscos e maiores taxas de falha. 
+  Você não mede a duração total de uma interrupção causada por alterações malsucedidas. A equipe não consegue priorizar e melhorar a eficácia do processo de implantação e do plano de recuperação. 

 **Benefícios de implementar esta prática recomendada:** ter um plano para se recuperar de mudanças malsucedidas minimiza o tempo médio de recuperação (MTTR) e reduz o impacto nos negócios. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 A adoção de uma política e prática documentadas e consistentes por parte das equipes de lançamento permitem que a organização planeje o que deve ocorrer se houver mudanças malsucedidas. A política deve permitir a correção em circunstâncias específicas. Seja qual for a situação, um plano de correção antecipada ou reversão deve ser bem documentado e testado antes da implantação na produção em tempo real, a fim de que o tempo necessário para reverter uma alteração seja minimizado. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Documente as políticas que exigem que as equipes tenham planos efetivos para reverter as mudanças dentro de um período especificado. 

   1.  As políticas devem especificar quando uma situação de correção antecipada é permitida. 

   1.  Exija que um plano de reversão documentado seja acessível a todos os envolvidos. 

   1.  Especifique os requisitos de reversão (por exemplo, quando for constatado que foram implantadas alterações não autorizadas). 

1.  Analise o nível de impacto de todas as mudanças relacionadas a cada componente de uma workload. 

   1.  Permita que alterações repetíveis sejam padronizadas, modeladas e pré-autorizadas se seguirem um fluxo de trabalho consistente que imponha políticas de mudança. 

   1.  Reduza o impacto potencial de qualquer alteração diminuindo o tamanho dela para que a recuperação leve menos tempo e cause um impacto menor nos negócios. 

   1.  Garanta que os procedimentos de reversão revertam o código para um bom estado conhecido a fim de evitar incidentes sempre que possível. 

1.  Integre ferramentas e fluxos de trabalho para aplicar suas políticas de forma programática. 

1.  Torne os dados sobre as alterações visíveis para outros proprietários da workload a fim de melhorar a velocidade do diagnóstico de qualquer alteração malsucedida que não possa ser revertida. 

   1.  Avalie o sucesso dessa prática usando dados de mudança visíveis e identifique melhorias iterativas. 

1.  Use ferramentas de monitoramento para verificar o sucesso ou a falha de uma implantação a fim de acelerar a tomada de decisões sobre a reversão. 

1.  Meça a duração da interrupção durante uma alteração malsucedida para melhorar continuamente seus planos de recuperação. 

 **Nível de esforço do plano de implementação:** Médio 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS06-BP04 Automatizar os testes e a reversão](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Documentos relacionados:** 
+ [AWS Builders Library \$1 Garantir a segurança das reversões durante implantações](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments/)
+ [Whitepaper da AWS \$1 Gerenciamento de alterações na nuvem](https://docs.aws.amazon.com/whitepapers/latest/change-management-in-the-cloud/change-management-in-the-cloud.html)

 **Vídeos relacionados:** 
+ [re:Invent 2019 \$1 A abordagem da Amazon a implantações de alta disponibilidade](https://aws.amazon.com/builders-library/amazon-approach-to-high-availability-deployment/)

# OPS06-BP02 Testar implantações
<a name="ops_mit_deploy_risks_test_val_chg"></a>

 Teste os procedimentos de lançamento na pré-produção usando a mesma configuração de implantação, controles de segurança, etapas e procedimentos da produção. Valide se todas as etapas implantadas foram concluídas conforme o esperado, como inspecionar arquivos, configurações e serviços. Teste mais detalhadamente todas as alterações com testes funcionais, de integração e de carga, além de qualquer monitoramento, como verificações de integridade. Ao fazer esses testes, você pode identificar problemas de implantação com antecedência, podendo planejá-los e mitigá-los antes da produção. 

 Você pode criar ambientes paralelos temporários para testar cada alteração. Automatize a implantação dos ambientes de teste usando a infraestrutura como código (IaC) para ajudar a reduzir a quantidade de trabalho envolvido e garantir estabilidade, consistência e entrega mais rápida de atributos. 

 **Resultado desejado:** a organização adota uma cultura de desenvolvimento orientada a testes que inclui testes de implantações. Isso garante que as equipes se concentrem em oferecer valor empresarial em vez de gerenciar lançamentos. As equipes são engajadas desde o início após a identificação dos riscos de implantação para determinar o curso apropriado da mitigação. 

 **Práticas comuns que devem ser evitadas:** 
+  Durante as versões de produção, implantações não testadas causam problemas frequentes que exigem soluções e encaminhamento. 
+  Sua versão contém infraestrutura como código (IaC) que atualiza os recursos existentes. Você não tem certeza se a IaC será executada com êxito ou causará impacto nos recursos. 
+  Você implanta um novo recurso na aplicação. Ele não funciona conforme o esperado e não há visibilidade até que o problema seja relatado pelos usuários afetados. 
+  Você atualiza seus certificados. Você instala acidentalmente os certificados nos componentes errados, o que não é detectado e afeta os visitantes do site porque não é possível estabelecer uma conexão segura. 

 **Benefícios de implementar esta prática recomendada:** testes extensivos na pré-produção dos procedimentos de implantação, considerando-se que as mudanças introduzidas por eles minimizam o impacto potencial na produção causado pelas etapas de implantação. Isso aumenta a confiança durante o lançamento para produção e minimiza o suporte operacional sem diminuir a velocidade das alterações que estão sendo entregues. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Testar seu processo de implantação é tão importante quanto testar as alterações resultantes da implantação. Isso poderá ser realizado testando-se suas etapas de implantação em um ambiente de pré-produção que se assemelhe o máximo possível à produção. Problemas comuns, como etapas de implantação incompletas ou incorretas, ou configurações incorretas, podem ser detectados como resultado antes da produção. Além disso, você pode testar suas etapas de recuperação. 

 **Exemplo de cliente** 

 Como parte do pipeline de integração e entrega contínuas (CI/CD), a AnyCompany Retail executa as etapas definidas necessárias para lançar atualizações de infraestrutura e software para seus clientes em um ambiente semelhante ao de produção. O pipeline é composto por pré-verificações para detectar desvios (detecção de alterações nos recursos executados fora da IaC) nos recursos antes da implantação, bem como validar as ações que a IaC realiza após seu início. Ele valida as etapas de implantação, como verificar se determinados arquivos e configurações estão em vigor e se os serviços estão em execução e respondendo corretamente às verificações de integridade no host local antes de serem registrados novamente no balanceador de carga. Além disso, todas as alterações sinalizam vários testes automatizados, como testes funcionais e de segurança, regressão, integração e carga. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Execute verificações de pré-instalação para espelhar o ambiente de pré-produção na produção. 

   1.  Use a [detecção de desvios](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html) para detectar quando os recursos foram alterados fora do CloudFormation. 

   1.  Use [conjuntos de alterações](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) para validar se a intenção da atualização da pilha corresponde às ações que o CloudFormation realiza quando o conjunto de alterações é iniciado. 

1.  Isso aciona uma etapa de aprovação manual ao [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/approvals.html) para autorizar a implantação no ambiente de pré-produção. 

1.  Use configurações de implantação, como arquivos [AppSpec do AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/application-specification-files.html), para definir as etapas de implantação e validação. 

1.  Quando aplicável, [integre o AWS CodeDeploy a outros serviços da AWS](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws.html) ou [integre o AWS CodeDeploy a produtos e serviços de parceiros](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-partners.html). 

1.  [Monitore implantações](https://docs.aws.amazon.com/codedeploy/latest/userguide/monitoring.html) usando o Amazon CloudWatch, o AWS CloudTrail e as notificações de eventos do Amazon SNS. 

1.  Execute testes automatizados pós-implantação, incluindo testes funcionais, de segurança, regressão, integração e carga. 

1.  [Solucione](https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting.html) problemas de implantação. 

1.  A validação bem-sucedida das etapas anteriores deve iniciar um fluxo de trabalho de aprovação manual para autorizar a implantação na produção. 

 **Nível de esforço do plano de implementação:** Alto 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS05-BP02 Testar e validar alterações](ops_dev_integ_test_val_chg.md) 

 **Documentos relacionados:** 
+ [AWS Builders' Library \$1 Automatizar implantações autônomas e seguras \$1 Testar implantações ](https://aws.amazon.com/builders-library/automating-safe-hands-off-deployments/#Test_deployments_in_pre-production_environments)
+ [Whitepaper da AWS \$1 Praticar a integração e entrega contínuas na AWS](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/testing-stages-in-continuous-integration-and-continuous-delivery.html)
+ [A história da Apollo: o mecanismo de implantação da Amazon](https://www.allthingsdistributed.com/2014/11/apollo-amazon-deployment-engine.html)
+  [Como testar e depurar o AWS CodeDeploy localmente antes de enviar seu código](https://aws.amazon.com/blogs/devops/how-to-test-and-debug-aws-codedeploy-locally-before-you-ship-your-code/) 
+ [Integrar testes de conectividade de rede com implantação da infraestrutura](https://aws.amazon.com/blogs/networking-and-content-delivery/integrating-network-connectivity-testing-with-infrastructure-deployment/)

 **Vídeos relacionados:** 
+ [re:Invent 2020 \$1 Testar software e sistemas na Amazon](https://www.youtube.com/watch?v=o1sc3cK9bMU)

 **Exemplos relacionados:** 
+ [Tutorial \$1 Implantar um serviço do Amazon ECS com um teste de validação](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-ecs-deployment-with-hooks.html)

# OPS06-BP03 Utilizar estratégias de implantação seguras
<a name="ops_mit_deploy_risks_deploy_mgmt_sys"></a>

 Implantações seguras de produção controlam o fluxo de mudanças benéficas com o objetivo de minimizar qualquer impacto percebido dessas alterações para os clientes. Os controles de segurança fornecem mecanismos de inspeção para validar os resultados desejados e limitar o escopo do impacto dos defeitos introduzidos pelas alterações ou das falhas de implantação. As implementações seguras podem incluir estratégias como sinalizadores de atributos e implantações one-box, contínuas (versões canário), imutáveis, de divisão de tráfego e azuis/verdes. 

 **Resultado desejado:** sua organização usa um sistema de integração e entrega contínuas (CI/CD) que fornece recursos para automatizar implementações seguras. As equipes devem usar estratégias apropriadas de implantação seguras. 

 **Práticas comuns que devem ser evitadas:** 
+  Você implanta uma alteração malsucedida em toda a produção de uma só vez. Como resultado, todos os clientes são afetados simultaneamente. 
+  Um defeito introduzido em uma implantação simultânea em todos os sistemas requer um lançamento de emergência. A correção para todos os clientes leva vários dias. 
+  O gerenciamento da versão de produção requer planejamento e participação de várias equipes. Isso restringe sua capacidade de atualizar atributos com frequência para seus clientes. 
+  Você executa uma implantação mutável modificando os sistemas existentes. Depois de descobrir que a alteração não foi bem-sucedida, você será forçado a modificar os sistemas novamente para restaurar a versão antiga, aumentando o seu tempo de recuperação. 

 **Benefícios de implementar esta prática recomendada:** as implantações automatizadas equilibram a velocidade das implementações com a entrega consistente de mudanças benéficas para os clientes. Limitar o impacto evita falhas de implantação dispendiosas e maximiza a capacidade das equipes de responder às falhas de forma eficiente. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Falhas na entrega contínua podem levar à redução da disponibilidade do serviço e a uma experiência ruim para o cliente. Para maximizar a taxa de implantações bem-sucedidas, implemente controles de segurança no processo de lançamento de ponta a ponta para minimizar os erros de implantação e eliminar as falhas. 

 **Exemplo de cliente** 

 A AnyCompany Retail tem a missão de alcançar implantações com tempo de inatividade entre mínimo e zero, ou seja, sem impacto perceptível para seus usuários durante as implantações. Para fazer isso, a empresa estabeleceu padrões de implantação (consulte o diagrama de fluxo de trabalho a seguir), como implantações azuis/verdes e contínuas. Todas as equipes adotam um ou mais desses padrões no pipeline de CI/CD. 


| Fluxo de trabalho do CodeDeploy para Amazon EC2 | Fluxo de trabalho do CodeDeploy para Amazon ECS | Fluxo de trabalho do CodeDeploy para Lambda | 
| --- | --- | --- | 
|  ![\[Fluxo do processo de implantação para Amazon EC2\]](http://docs.aws.amazon.com/pt_br/wellarchitected/latest/operational-excellence-pillar/images/deployment-process-ec2.png)  |  ![\[Fluxo do processo de implantação para Amazon ECZ\]](http://docs.aws.amazon.com/pt_br/wellarchitected/latest/operational-excellence-pillar/images/deployment-process-ecs.png)  |  ![\[Fluxo do processo de implantação para Lambda\]](http://docs.aws.amazon.com/pt_br/wellarchitected/latest/operational-excellence-pillar/images/deployment-process-lambda.png)  | 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Use um fluxo de trabalho de aprovação para iniciar a sequência das etapas de implantação na promoção para implantação. 

1.  Use um sistema de implantação automatizado, como o [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html). As as [opções de implantação do AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html) incluem implantações no local para EC2/on-premises e implantações azuis/verdes para EC2/on-premises, AWS Lambda e Amazon ECS (consulte o diagrama do fluxo de trabalho anterior). 

   1.  Quando aplicável, [integre o AWS CodeDeploy a outros serviços da AWS](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws.html) ou [integre o AWS CodeDeploy a produtos e serviços de parceiros](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-partners.html). 

1.  Use implantações azuis/verdes para bancos de dados como [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) e [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html). 

1.  [Monitore implantações](https://docs.aws.amazon.com/codedeploy/latest/userguide/monitoring.html) usando o Amazon CloudWatch, o AWS CloudTrail e as notificações de eventos do Amazon Simple Notiﬁcation Service (Amazon SNS). 

1.  Realize testes automatizados pós-implantação, incluindo testes funcionais, de segurança, regressão, integração e testes de carga. 

1.  [Solucione](https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting.html) problemas de implantação. 

 **Nível de esforço do plano de implementação:** Médio 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS05-BP02 Testar e validar alterações](ops_dev_integ_test_val_chg.md) 
+  [OPS05-BP09 Fazer alterações frequentes, pequenas e reversíveis](ops_dev_integ_freq_sm_rev_chg.md) 
+  [OPS05-BP10 Automatizar totalmente a integração e a implantação](ops_dev_integ_auto_integ_deploy.md) 

 **Documentos relacionados:** 
+ [AWS Builders' Library \$1 Automatizar implantações seguras e sem intervenção manual \$1 Implantações de produção](https://aws.amazon.com/builders-library/automating-safe-hands-off-deployments/?did=ba_card&trk=ba_card#Production_deployments)
+ [AWS Builders Library \$1 Meu pipeline de CI/CD é meu capitão de lançamentos \$1 Lançamentos de produção seguros e automáticos](https://aws.amazon.com//builders-library/cicd-pipeline/#Safe.2C_automatic_production_releases)
+ [Whitepaper da AWS \$1 Praticar integração e entrega contínuas na AWS \$1 Métodos de implantação](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/deployment-methods.html)
+ [AWS CodeDeploy Guia do usuário do](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [Trabalhar com configurações de implantação no AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)
+ [Configurar uma implantação de versão canário do API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html)
+ [Tipos de implantação do Amazon ECS](https://docs.aws.amazon.com/)
+ [Implantações azuis/verdes totalmente gerenciadas no Amazon Aurora e no Amazon RDS](https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/)
+ [Implantações azuis/verdes com o AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html)

 **Vídeos relacionados:** 
+ [re:Invent 2020 \$1 Sem intervenção manual: como automatizar os pipelines de entrega contínua na Amazon](https://www.youtube.com/watch?v=ngnMj1zbMPY)
+ [re:Invent 2019 \$1 A abordagem da Amazon a implantações de alta disponibilidade](https://www.youtube.com/watch?v=bCgD2bX1LI4)

 **Exemplos relacionados:** 
+ [Testar uma implantação azul/verde de exemplo no AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html)
+ [ Workshop \$1 Building CI/CD pipelines for Lambda canary deployments using AWS CDK](https://catalog.workshops.aws/cdk-cicd-for-lambda-canary-deployment/en-US) 
+ [ Workshop \$1 Building your first DevOps Blue/Green pipeline with Amazon ECS ](https://catalog.us-east-1.prod.workshops.aws/workshops/4b59b9fb-48b6-461c-9377-907b2e33c9df/en-US)
+ [ Workshop \$1 Building your first DevOps Blue/Green pipeline with Amazon EKS ](https://catalog.us-east-1.prod.workshops.aws/workshops/4eab6682-09b2-43e5-93d4-1f58fd6cff6e/en-US)
+ [ Workshop \$1 EKS GitOps with ArgoCD ](https://catalog.workshops.aws/eksgitops-argocd-githubactions)
+ [ Workshop \$1 CI/CD on AWS Workshop ](https://catalog.workshops.aws/cicdonaws/en-US)
+ [Implementar CI/CD entre contas com AWS SAM para funções do Lambda baseadas em contêineres ](https://aws.amazon.com/blogs/compute/implementing-cross-account-cicd-with-aws-sam-for-container-based-lambda/)

# OPS06-BP04 Automatizar os testes e a reversão
<a name="ops_mit_deploy_risks_auto_testing_and_rollback"></a>

 Para aumentar a velocidade, a confiabilidade e a confiança do seu processo de implantação, tenha uma estratégia para testes automatizados e recursos de reversão em ambientes de pré-produção e produção. Automatize os testes ao implantar na produção para simular interações entre humanos e sistemas que verifiquem as alterações que estão sendo implantadas. Automatize a reversão para voltar rapidamente a um estado anterior em boas condições. A reversão deve ser iniciada automaticamente em condições predefinidas, como quando o resultado desejado da alteração não é alcançado ou quando o teste automatizado falha. A automação dessas duas atividades melhora a taxa de sucesso das implantações, minimiza o tempo de recuperação e reduz o impacto potencial nos negócios. 

 **Resultado desejado:** os testes automatizados e as estratégias de reversão são integrados ao pipeline de integração e entrega contínuas (CI/CD). O monitoramento é capaz de validar seus critérios de sucesso e iniciar a reversão automática em caso de falha. Isso minimiza qualquer impacto para usuários finais e clientes. Por exemplo, quando todos os resultados do teste são satisfatórios, você promove seu código no ambiente de produção em que o teste de regressão automatizado é iniciado, utilizando os mesmos casos de teste. Se os resultados do teste de regressão não corresponderem às expectativas, a reversão automática será iniciada no fluxo de trabalho do pipeline. 

 **Práticas comuns que devem ser evitadas:** 
+  Seus sistemas não são arquitetados de uma forma que permita que sejam atualizados com versões menores. Como resultado, você tem dificuldade em reverter essas alterações em massa durante uma implantação com falha. 
+  O processo de implantação consiste em uma série de etapas manuais. Depois de implantar as alterações na workload, você inicia os testes pós-implantação. Após o teste, você percebe que a workload está inoperante e os clientes estão desconectados. Em seguida, você começa a reverter para a versão anterior. Todas essas etapas manuais atrasam a recuperação geral do sistema e causam um impacto prolongado para os clientes. 
+  Você dedicou tempo para desenvolver casos de teste automatizados para funcionalidades que não são usadas com frequência na aplicação, minimizando o retorno sobre o investimento no recurso de teste automatizado. 
+  Sua versão é composta de atualizações de aplicações, infraestrutura, patches e configuração que são independentes umas das outras. No entanto, você tem um único pipeline de CI/CD que fornece todas as alterações de uma só vez. Uma falha em um componente força você a reverter todas as alterações, tornando a reversão complexa e ineficiente. 
+  A equipe conclui o trabalho de codificação no primeiro sprint e inicia o trabalho no segundo sprint, mas seu plano não incluiu testes até o terceiro sprint. Como resultado, os testes automatizados revelaram defeitos do primeiro sprint que precisavam ser resolvidos antes que o teste dos resultados do segundo sprint pudesse ser iniciado, adiando todo o lançamento e desvalorizando seus testes automatizados. 
+  Seus casos de teste de regressão automatizados para a versão de produção estão completos, mas você não está monitorando a integridade da workload. Como você não tem visibilidade sobre se o serviço foi reiniciado, você não tem certeza se a reversão é necessária ou se ela já ocorreu. 

 **Benefícios de implementar esta prática recomendada:** o teste automatizado aumenta a transparência do processo de teste e a capacidade de abranger mais atributos em um período mais curto. Ao testar e validar as mudanças na produção, é possível identificar problemas imediatamente. A melhoria na consistência com ferramentas de teste automatizadas permite uma melhor detecção de defeitos. Ao reverter automaticamente para a versão anterior, o impacto sobre seus clientes é minimizado. A reversão automatizada acaba inspirando mais confiança em seus recursos de implantação ao reduzir o impacto nos negócios. No geral, esses recursos reduzem o tempo de entrega e, ao mesmo tempo, garantem a qualidade. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Automatize os testes dos ambientes implantados para confirmar os resultados desejados mais rapidamente. Automatize a reversão para um bom estado anterior conhecido quando os resultados predefinidos não forem alcançados, para minimizar o tempo de recuperação e reduzir os erros causados por processos manuais. Integre ferramentas de teste com seu fluxo de trabalho de pipeline para testar e minimizar as entradas manuais de forma consistente. Priorize a automação de casos de teste, como aqueles que mitigam os maiores riscos e precisam ser testados com frequência a cada alteração. Além disso, automatize a reversão com base em condições específicas predefinidas no plano de teste. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Estabeleça um ciclo de vida de teste para o ciclo de vida de desenvolvimento que defina cada estágio do processo de teste, desde o planejamento dos requisitos até o desenvolvimento do caso de teste, a configuração da ferramenta, o teste automatizado e o encerramento do caso de teste. 

   1.  Crie uma abordagem de teste específica para workloads com base em sua estratégia geral de teste. 

   1.  Considere uma estratégia de teste contínuo, quando apropriado, durante o ciclo de vida do desenvolvimento. 

1.  Selecione ferramentas automatizadas para testes e reversões com base em seus requisitos de negócios e investimentos em pipeline. 

1.  Decida quais casos de teste você deseja automatizar e quais deverão ser executados manualmente. Eles podem ser definidos com base na prioridade do valor comercial do atributo que está sendo testado. Alinhe todos os membros da equipe a esse plano e verifique a responsabilidade pela realização de testes manuais. 

   1.  Aplique recursos de teste automatizados a casos de teste específicos que façam sentido para automação, como casos repetíveis ou executados com frequência, aqueles que exigem tarefas repetitivas ou aqueles que são necessários em várias configurações. 

   1.  Defina scripts de automação de testes, bem como os critérios de sucesso na ferramenta de automação, para que a automação contínua do fluxo de trabalho possa ser iniciada quando casos específicos falharem. 

   1.  Defina critérios de falha específicos para a reversão automatizada. 

1.  Priorize a automação de testes para gerar resultados consistentes com o desenvolvimento completo de casos de teste em que a complexidade e a interação humana têm um risco maior de falha. 

1.  Integre as ferramentas automatizadas de teste e reversão no pipeline de CI/CD. 

   1.  Desenvolva critérios claros de sucesso para as alterações. 

   1.  Monitore e observe para detectar esses critérios e reverter automaticamente as alterações quando critérios específicos de reversão forem atendidos. 

1.  Execute diferentes tipos de teste de produção automatizados, como: 

   1.  Teste A/B para mostrar resultados em comparação com a versão atual entre dois grupos de teste de usuários. 

   1.  Teste canário, que permite implantar a alteração em um subconjunto de usuários antes de lançá-la para todos. 

   1.  Teste de sinalização de atributos, que permite que a sinalização de um único atributo da nova versão seja ativada e desativada de fora da aplicação para que cada novo atributo possa ser validado individualmente. 

   1.  Teste de regressão para verificar novas funcionalidades com componentes inter-relacionados existentes. 

1.  Monitore os aspectos operacionais da aplicação, das transações e das interações com outras aplicações e componentes. Desenvolva relatórios para mostrar o sucesso das alterações por workload e identificar quais partes da automação e do fluxo de trabalho podem ser otimizadas ainda mais. 

   1.  Desenvolva relatórios de resultados de testes que ajudem você a tomar decisões rápidas sobre se os procedimentos de reversão devem ou não ser invocados. 

   1.  Implemente uma estratégia que permita a reversão automatizada com base em condições de falha predefinidas que resultam de um ou mais de seus métodos de teste. 

1.  Desenvolva seus casos de teste automatizados para permitir a reutilização em futuras alterações repetíveis. 

 **Nível de esforço do plano de implementação:** Médio 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS06-BP01 Preparar-se para alterações malsucedidas](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) 
+  [OPS06-BP02 Testar implantações](ops_mit_deploy_risks_test_val_chg.md) 

 **Documentos relacionados:** 
+ [AWS Builders Library \$1 Garantir a segurança das reversões durante implantações](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments/)
+  [Reimplantar e reverter uma implantação com a AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-rollback-and-redeploy.html) 
+ [Oito práticas recomendadas para automatizar suas implantações com o AWS CloudFormation](https://aws.amazon.com/blogs/infrastructure-and-automation/best-practices-automating-deployments-with-aws-cloudformation/)

 **Exemplos relacionados:** 
+ [Teste de interface do usuário sem servidor usando Selenium, AWS Lambda, AWS Fargate e as Ferramentas de desenvolvedor da AWS](https://aws.amazon.com/blogs/devops/using-aws-codepipeline-aws-codebuild-and-aws-lambda-for-serverless-automated-ui-testing/)

 **Vídeos relacionados:** 
+ [re:Invent 2020 \$1 Sem intervenção manual: como automatizar os pipelines de entrega contínua na Amazon](https://www.youtube.com/watch?v=ngnMj1zbMPY)
+ [re:Invent 2019 \$1 A abordagem da Amazon a implantações de alta disponibilidade](https://www.youtube.com/watch?v=bCgD2bX1LI4)

# Prontidão operacional e gerenciamento de alterações
<a name="operational-readiness"></a>

Avalie a prontidão operacional de workload, processos, procedimentos e pessoal para compreender os riscos operacionais relacionados à workload. Gerencie o fluxo de alterações em seus ambientes.

Você deve usar um processo consistente (incluindo listas de verificação manuais ou automatizadas) para saber quando está pronto para trabalhar com sua workload ou para fazer uma mudança. Isso também ajudará a encontrar as áreas que você precisa abordar. Você terá runbooks que documentam suas atividades de rotina e playbooks que orientam seus processos para a resolução de problemas. Use um mecanismo para gerenciar alterações que apoie a entrega de valor empresarial e ajude a mitigar riscos associados a mudanças.

**Topics**
+ [OPS07-BP01 Garantir a capacidade da equipe](ops_ready_to_support_personnel_capability.md)
+ [OPS07-BP02 Garantir uma revisão consistente da prontidão operacional](ops_ready_to_support_const_orr.md)
+ [OPS07-BP03 Usar runbooks para realizar procedimentos](ops_ready_to_support_use_runbooks.md)
+ [OPS07-BP04 Usar playbooks para investigar problemas](ops_ready_to_support_use_playbooks.md)
+ [OPS07-BP05 Tomar decisões embasadas para implantar sistemas e alterações](ops_ready_to_support_informed_deploy_decisions.md)
+ [OPS07-BP06 Criar planos de suporte para workloads de produção](ops_ready_to_support_enable_support_plans.md)

# OPS07-BP01 Garantir a capacidade da equipe
<a name="ops_ready_to_support_personnel_capability"></a>

Adote um mecanismo para validar que você tem o número adequado de funcionários treinados para fornecer suporte à workload. Eles devem ter treinamento para a plataforma e os serviços que compõem sua workload. Forneça a eles o conhecimento necessário para operar a workload. É necessário ter o número suficiente de funcionários treinados para oferecer suporte à operação da workload e solucionar os incidentes que ocorrerem. Tenha funcionários suficientes para que seja possível fazer uma rotação durante plantões e férias a fim de evitar a exaustão. 

 **Resultado desejado:** 
+  Há um número suficiente de funcionários treinados para oferecer suporte à workload quando ela estiver disponível. 
+  Você fornece treinamento para seus funcionários sobre software e serviços que compõem a workload. 

 **Práticas comuns que devem ser evitadas:** 
+ Implantar uma workload sem membros da equipe treinados para operar a plataforma e os serviços em uso. 
+  Não ter funcionários suficientes para oferecer suporte à rotaçõ\$1es de plantão ou folga de funcionários. 

 **Benefícios de implementar esta prática recomendada:** 
+  Ter membros da equipe qualificados possibilita o suporte eficaz da sua workload. 
+  Com um número suficiente de membros na equipe, é possível dar conta da workload e das rotações de plantão, reduzindo o risco de exaustão. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Valide se há um número suficiente de funcionários treinados para oferecer suporte à workload. Verifique se você tem membros da equipe suficientes para cobrir as atividades operacionais normais, incluindo rotações de plantão. 

 **Exemplo de cliente** 

 A AnyCompany Retail garante que as equipes que oferecem suporte à workload estejam completas e treinadas. Há engenheiros suficientes para oferecer suporte a uma rotação de plantão. Os funcionários têm treinamento referente ao software e à plataforma na qual a workload é criada e são incentivados a obter certificações. Há funcionários suficientes para que as pessoas possam tirar folgas enquanto mantêm o suporte à workload e à rotação de plantões. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Atribua um número adequado de funcionários para operar e fornecer suporte à sua workload, incluindo tarefas de plantão, questões de segurança e eventos de ciclo de vida, como fim do suporte e tarefas de alternância de certificados. 

1.  Treine seus funcionários referente ao software e às plataformas que compõem a workload. 

   1.  A [AWS Training and Certification](https://aws.amazon.com/training/) oferece uma biblioteca de cursos sobre a AWS. Cursos pagos e gratuitos, online e presenciais, estão disponíveis. 

   1.  A [AWS organiza eventos e webinars](https://aws.amazon.com/events/) nos quais você aprende com especialistas da AWS. 

1. Realize o seguinte regularmente: 
   +  Avalie o tamanho e as habilidades da equipe à medida que as condições operacionais e a workload mudam. 
   +  Ajuste o tamanho e as habilidades da equipe para corresponderem aos requisitos operacionais. 
   +  Verifique a habilidade e a capacidade de lidar com [eventos planejados do ciclo de vida](https://docs.aws.amazon.com/health/latest/ug/aws-health-planned-lifecycle-events.html), segurança não planejada e notificações operacionais por meio do AWS Health. 

 **Nível de esforço do plano de implementação:** Alto. Contratar e treinar uma equipe para fornecer suporte a uma workload pode exigir um esforço significativo, mas traz benefícios substanciais de longo prazo. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS11-BP04 Gerenciar o conhecimento](ops_evolve_ops_knowledge_management.md): os membros da equipe devem ter as informações necessárias para operar e fornecer suporte à workload. O gerenciamento de conhecimento é fundamental para isso. 

 **Documentos relacionados:** 
+  [Eventos e webinars da AWS](https://aws.amazon.com/events/) 
+  [AWS Training and Certification](https://aws.amazon.com/training/) 

# OPS07-BP02 Garantir uma revisão consistente da prontidão operacional
<a name="ops_ready_to_support_const_orr"></a>

Use revisões de prontidão operacional (ORRs) para validar que você pode operar sua workload. A ORR é um mecanismo desenvolvido na Amazon para validar que as equipes podem operar as workloads com segurança. Uma ORR é um processo de análise e inspeção que usa uma lista de verificação de requisitos. Uma ORR é uma experiência de autoatendimento que as equipes usam para certificar suas workloads. As ORRs incluem práticas recomendadas de lições aprendidas de nossos anos de experiência na criação de software. 

 Uma lista de verificação de ORR é composta de recomendações de arquitetura, processo operacional, gerenciamento de evento e qualidade de lançamento. Nosso processo de Correção de erros (CoE) é um motivador principal desses itens. Sua própria análise pós-incidente deve impulsionar a evolução de sua própria ORR. Uma ORR não é apenas sobre seguir as práticas recomendadas, mas evitar a recorrência de eventos que você já viu. Por fim, os requisitos de segurança, governança e conformidade também podem ser incluídos em uma ORR. 

 Execute ORRs antes do lançamento de uma workload para disponibilidade geral e por todo o ciclo de vida de desenvolvimento do software. A execução da ORR antes do lançamento aumenta a capacidade de operar a workload com segurança. Execute a ORR periodicamente na workload para identificar qualquer desvio das práticas recomendadas. Você pode ter listas de verificação da ORR para o lançamento de outros serviços e ORRs para avaliações periódicas. Isso ajuda a manter você em dia com as novas práticas recomendadas que surgem e incorporar as lições aprendidas da análise pós-incidente. À medida que seu uso da nuvem amadurece, é possível criar requisitos de ORR em sua arquitetura como padrões. 

 **Resultado desejado:** você tem uma lista de verificação da ORR com as práticas recomendadas para sua organização. As ORRs são realizadas antes do lançamento das workloads. As ORRs são executadas periodicamente ao longo do ciclo de vida da workload. 

 **Práticas comuns que devem ser evitadas:** 
+ Você lança uma workload sem saber se pode operá-la. 
+ Os requisitos de governança e segurança não estão incluídos na certificação de uma workload para o lançamento. 
+ As workloads não são reavaliadas periodicamente. 
+ As workloads são lançadas sem a aplicação dos procedimentos exigidos. 
+ Você vê a repetição das mesmas falhas da causa-raiz em várias workloads. 

 **Benefícios de implementar esta prática recomendada:** 
+  Suas workloads incluem práticas recomendadas de arquitetura, processo e gerenciamento. 
+  As lições aprendidas são incorporadas em seu processo de ORR. 
+  Os procedimentos exigidos estão em vigor no lançamento das workloads. 
+  As ORRs são executadas durante todo o ciclo de vida do software das workloads. 

 **Nível de risco se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Uma ORR é composta por dois elementos: um processo e uma lista de verificação. O processo da ORR deve ser adotado pela organização e ter o apoio de um patrocinador executivo. No mínimo, as ORRs devem ser realizadas antes do lançamento da workload para disponibilidade geral. Execute a ORR ao longo de todo o ciclo de vida de desenvolvimento do software para mantê-la atualizada com as práticas recomendadas ou os novos requisitos. A lista de verificação da ORR deve incluir itens de configuração, requisitos de segurança e governança e práticas recomendadas de sua organização. Com o tempo, você pode usar serviços como [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html), [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) e [AWS Control Tower Guardrails](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html) para criar as práticas recomendadas do ORR em grades de proteção para a detecção automática de práticas recomendadas. 

 **Exemplo de cliente** 

 Depois de vários incidentes na produção, a AnyCompany Retail decidiu implementar um processo de ORR. Ela criou uma lista de verificação composta de práticas recomendadas, requisitos de governança e conformidade e lições aprendidas de interrupções. As novas workloads passam pelo processo de ORR antes do lançamento. Uma ORR é realizada anualmente para cada workload com um subconjunto de práticas recomendadas para incorporar novas práticas recomendadas e requisitos que são adicionados à lista de verificação da ORR. A AnyCompany Retail usava o [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) para detectar algumas das práticas recomendadas, acelerando o processo de ORR. 

 **Etapas de implementação** 

 Para saber mais sobre ORRs, leia o whitepaper [Revisões de prontidão operacional (ORR](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/wa-operational-readiness-reviews.html)). Ele fornece informações detalhadas sobre o histórico do processo de ORR, como criar sua própria prática de ORR e como desenvolver sua lista de verificação da ORR. As etapas a seguir são uma versão resumida desse documento. Para uma compreensão aprofundada do que são as ORRs e de como criar sua própria revisão, recomendamos a leitura desse whitepaper. 

1. Reúna as principais partes interessadas, incluindo os representantes de segurança, operações e desenvolvimento. 

1. Peça para cada parte interessada fornecer pelo menos um requisito. Para a primeira iteração, tente limitar o número de itens para trinta ou menos. 
   +  O [Apêndice B: Perguntas de exemplo sobre ORR](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/appendix-b-example-orr-questions.html) do whitepaper Revisões de prontidão operacional (ORR) contém exemplos de perguntas que você pode usar para começar. 

1. Reúna seus requisitos em uma planilha. 
   + Você pode usar [lentes personalizadas](https://docs.aws.amazon.com/wellarchitected/latest/userguide/lenses-custom.html) no [AWS Well-Architected Tool](https://console.aws.amazon.com/wellarchiected/) para desenvolver sua ORR e compartilhá-la entre suas contas e sua organização da AWS. 

1. Identifique uma workload na qual realizar a ORR. O ideal seria em uma workload em pré-lançamento ou uma workload interna. 

1. Execute a lista de verificação completa da ORR e anote as descobertas feitas. As descobertas poderão ser aceitáveis caso esteja ocorrendo uma mitigação. Para descobertas que não tenham uma mitigação, acrescente-as à sua lista de pendências e implemente-as antes do lançamento. 

1. Continue a adicionar práticas recomendadas e requisitos à sua lista de verificação de ORR ao longo do tempo. 

 Os clientes do Suporte com Enterprise Support podem solicitar o [workshop Revisões de prontidão operacional](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/) a seus gerentes técnicos de conta. O workshop é uma sessão de *trabalho retroativo* interativa que permite desenvolver sua própria lista de verificação de ORR. 

 **Nível de esforço do plano de implementação:** Alto. Adotar uma prática de ORR em sua organização exige a adesão de um patrocinador executivo e das partes interessadas. Crie e atualize a lista de verificação com as opiniões de toda a sua organização. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+ [OPS01-BP03 Avaliar os requisitos de governança](ops_priorities_governance_reqs.md): os requisitos de governança são uma opção natural para uma lista de verificação de ORR. 
+ [OPS01-BP04 Avaliar os requisitos de conformidade](ops_priorities_compliance_reqs.md): os requisitos de conformidade algumas vezes são incluídos em uma lista de verificação de ORR. Em outras, eles constituem um processo separado. 
+ [OPS03-BP07 Fornecer recursos adequados às equipes](ops_org_culture_team_res_appro.md): a capacidade da equipe é uma boa candidata para um requisito de ORR. 
+ [OPS06-BP01 Preparar-se para alterações malsucedidas](ops_mit_deploy_risks_plan_for_unsucessful_changes.md): um plano de reversão ou avanço deve ser estabelecido antes do lançamento da workload. 
+ [OPS07-BP01 Garantir a capacidade da equipe](ops_ready_to_support_personnel_capability.md): para acomodar uma workload, você deve ter o pessoal necessário. 
+ [SEC01-BP03 Identificar e validar objetivos de controle](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_control_objectives.html): os objetivos de controle de segurança são excelentes requisitos de ORR. 
+ [REL13-BP01 Definir objetivos de recuperação tempo de inatividade e perda de dados](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_planning_for_recovery_objective_defined_recovery.html): planos de recuperação de desastres são um bom requisito de ORR. 
+ [COST02-BP01 Desenvolver políticas com base nos requisitos da sua organização](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_govern_usage_policies.html): políticas de gerenciamento de custos podem ser incluídas em sua lista de verificação de ORR. 

 **Documentos relacionados:** 
+  [AWS Control Tower: barreiras de proteção no AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html) 
+  [AWS Well-Architected Tool: perspectivas personalizadas](https://docs.aws.amazon.com/wellarchitected/latest/userguide/lenses-custom.html) 
+  [Modelo de revisão de prontidão operacional, por Adrian Hornsby](https://medium.com/the-cloud-architect/operational-readiness-review-template-e23a4bfd8d79) 
+  [Whitepaper Revisões de prontidão operacional (ORR)](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/wa-operational-readiness-reviews.html) 

 **Vídeos relacionados:** 
+  [AWS Supports You \$1 Criar uma Revisão de prontidão operacional (ORR) eficaz](https://www.youtube.com/watch?v=Keo6zWMQqS8) 

 **Exemplos relacionados:** 
+  [Exemplo da perspectiva da Revisão de prontidão operacional (ORR)](https://github.com/aws-samples/custom-lens-wa-sample/tree/main/ORR-Lens) 

 **Serviços relacionados:** 
+  [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html) 
+  [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) 
+  [AWS Well-Architected Tool](https://docs.aws.amazon.com/wellarchitected/latest/userguide/intro.html) 

# OPS07-BP03 Usar runbooks para realizar procedimentos
<a name="ops_ready_to_support_use_runbooks"></a>

 Um *runbook* é um processo documentado para alcançar um resultado específico. Os runbooks consistem em uma série de etapas seguidas por alguém para realizar alguma coisa. Os runbooks são usados em operações desde os primórdios da aviação. Nas operações na nuvem, usamos runbooks para reduzir riscos e alcançar os resultados desejados. Simplificando ao máximo, um runbook é uma lista de verificação para concluir uma tarefa. 

 Os runbooks são fundamentais para a operação de uma workload. Da integração de um novo membro da equipe à implantação de um lançamento importante, os runbooks são os processos codificados que fornecem resultados consistentes independentemente de quem os usa. Os runbooks devem ser publicados em um local central e ser atualizados à medida que o processo evolui, uma vez que a atualização dos runbooks é um aspecto fundamental de um processo de gerenciamento de mudanças. Eles também devem incluir orientação sobre tratamento de erros, ferramentas, permissões, exceções e encaminhamentos em caso de problema. 

 À medida que sua organização amadurece, comece a automatizar os runbooks. Comece com runbooks que sejam curtos e usados com frequência. Use linguagens de scripts para automatizar as etapas ou facilitar a realização delas. À medida que você automatiza os primeiros runbooks, você dedicará tempo à automação de runbooks mais complexos. Com o tempo, a maioria dos seus runbooks deverá ter algum nível de automação. 

 **Resultado desejado:** sua equipe tem um conjunto de guias detalhados para realizar tarefas de workload. Os runbooks contêm o resultado desejado, as ferramentas e as permissões necessárias e instruções para tratamento de erros. Eles são armazenados em um local central (sistema de controle de versão) e atualizados com frequência. Por exemplo, seus runbooks fornecem recursos para que suas equipes monitorem, se comuniquem e reajam a eventos do AWS Health para contas críticas durante alarmes de aplicações, problemas operacionais e eventos planejados do ciclo de vida. 

 **Práticas comuns que devem ser evitadas:** 
+  Depender da memória para concluir cada etapa de um processo. 
+  Implantar mudanças manualmente sem uma lista de verificação. 
+  Diferentes membros da equipe realizando o mesmo processo, mas com etapas ou resultados diferentes. 
+  Deixar que os runbooks fiquem desatualizados em relação às alterações no sistema e à automação. 

 **Benefícios de implementar esta prática recomendada:** 
+  Redução das taxas de erros em tarefas manuais. 
+  Operações realizadas de maneira consistente. 
+  Novos membros da equipe podem começar a realizar as tarefas mais cedo. 
+  Os runbooks podem ser automatizados para reduzir o esforço. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Os runbooks podem assumir diversos formatos dependendo do nível de maturidade da sua organização. No mínimo, devem consistir em um documento de texto detalhado. O resultado desejado deve estar claramente identificado. Documente claramente as permissões ou ferramentas especiais necessárias. Forneça orientação detalhada sobre tratamento de erros e encaminhamentos em caso de problema. Liste o proprietário do runbook e publique-o em um local central. Depois que o runbook estiver documentado, valide-o pedindo que outro membro da equipe o execute. À medida que os procedimentos evoluem, atualize os runbooks de acordo com seu processo de gerenciamento de mudanças. 

 Os runbooks em texto devem ser automatizados à medida que a organização amadurece. Ao usar serviços como o [AWS Systems Manager Automations](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html), é possível transformar texto plano em automações que podem ser executadas na workload. Essas automações podem ser executadas em resposta a eventos, reduzindo a sobrecarga operacional de manutenção da workload. AWS O Systems Manager Automation também fornece uma [experiência de design visual](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-visual-designer.html) com código simples para criar runbooks de automação com mais facilidade. 

 **Exemplo de cliente** 

 A AnyCompany Retail precisa realizar atualizações no esquema de banco de dados durante as implantações de software. A equipe de operações na nuvem trabalhou com a equipe de administração do banco de dados para criar um runbook para implantação manual dessas alterações. O runbook lista cada etapa do processo em um formato de lista de verificação. Ele inclui uma seção sobre tratamento de erros em caso de problema. A equipe de operações na nuvem publicou o runbook na wiki interna junto com outros runbooks. Ela planeja automatizar o runbook em um sprint futuro. 

### Etapas de implementação
<a name="implementation-steps"></a>

 Se você não tem um repositório de documentos, um repositório de controle de versão é um ótimo lugar para começar a criar a biblioteca de runbooks. Você pode criar runbooks usando Markdown. Disponibilizamos um modelo de runbook que pode ser usado para começar a criar runbooks. 

```
# Runbook Title
## Runbook Info
| Runbook ID | Description | Tools Used | Special Permissions | Runbook Author | Last Updated | Escalation POC | 
|-------|-------|-------|-------|-------|-------|-------|
| RUN001 | What is this runbook for? What is the desired outcome? | Tools | Permissions | Your Name | 2022-09-21 | Escalation Name |
## Steps
1. Step one
2. Step two
```

1.  Se você não tiver um repositório de documentação ou uma wiki, crie um repositório de controle de versão no sistema de controle de versão. 

1.  Identifique um processo que não tenha um runbook. Um processo ideal é um que seja realizado quase regularmente, que tenha poucas etapas e que tenha falhas de baixo impacto. 

1.  No repositório de documentos, crie um rascunho de documento em Markdown usando o modelo. Preencha o Título do runbook e os campos obrigatórios em Informações do runbook. 

1.  Começando com a primeira etapa, preencha a parte Etapas do runbook. 

1.  Dê o runbook para um membro da equipe. Peça que ele use o runbook para validar as etapas. Se algo estiver faltando ou não estiver claro, atualize o runbook. 

1.  Disponibilize o runbook em seu armazenamento interno de documentos. Depois, informe sua equipe e outras partes interessadas. 

1.  Com o passar do tempo, você terá uma biblioteca de runbooks. À medida que essa biblioteca cresce, comece a trabalhar na automatização dos runbooks. 

 **Nível de esforço do plano de implementação:** Baixo. O padrão mínimo para um runbook é um guia de texto detalhado. A automatização dos runbooks pode aumentar o esforço de implementação. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS02-BP02 Processos e procedimentos com proprietários identificados](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_ops_model_def_proc_owners.html) 
+  [OPS07-BP04 Usar playbooks para investigar problemas](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_ready_to_support_use_playbooks.html) 
+  [OPS10-BP01 Usar um processo para gerenciamento de eventos, incidentes e problemas](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_event_response_event_incident_problem_process.html) 
+  [OPS10-BP02 Adotar um processo por alerta](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_event_response_process_per_alert.html) 
+  [OPS11-BP04 Gerenciar o conhecimento](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_evolve_ops_knowledge_management.html) 

 **Documentos relacionados:** 
+  [Como alcançar excelência operacional usando playbooks e runbooks automatizados](https://aws.amazon.com/blogs/mt/achieving-operational-excellence-using-automated-playbook-and-runbook/) 
+  [AWS Systems Manager: trabalhar com runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 
+  [Playbook de migração para grandes migrações da AWS – Tarefa 4: como melhorar runbooks de migração](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-migration-playbook/task-four-migration-runbooks.html) 
+  [Como usar runbooks do AWS Systems Manager Automation para resolver tarefas operacionais](https://aws.amazon.com/blogs/mt/use-aws-systems-manager-automation-runbooks-to-resolve-operational-tasks/) 

 **Vídeos relacionados:** 
+  [AWS re:Invent 2019: Guia de faça você mesmo para runbooks, relatórios de incidentes e resposta a incidentes](https://www.youtube.com/watch?v=E1NaYN_fJUo) 
+  [Como automatizar as operações de TI na AWS \$1 Amazon Web Services](https://www.youtube.com/watch?v=GuWj_mlyTug) 
+  [Integrar scripts ao AWS Systems Manager](https://www.youtube.com/watch?v=Seh1RbnF-uE) 

 **Exemplos relacionados:** 
+  [Laboratórios do Well-Architected: Automatização de operações com playbooks e runbooks](https://wellarchitectedlabs.com/operational-excellence/200_labs/200_automating_operations_with_playbooks_and_runbooks/) 
+  [AWS Publicação no blog da : Criar uma prática de automação de nuvem para excelência operacional: práticas recomendadas do AWS Managed Services](https://aws.amazon.com/blogs/mt/build-a-cloud-automation-practice-for-operational-excellence-best-practices-from-aws-managed-services/) 
+  [AWS Systems Manager: orientações sobre automação](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html) 
+  [AWS Systems Manager: runbook para restauração de um volume raiz usando o snapshot mais recente](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-document-sample-restore.html) 
+  [Criar um runbook de resposta a incidentes da AWS usando cadernos Jupyter e o CloudTrail Lake](https://catalog.us-east-1.prod.workshops.aws/workshops/a5801f0c-7bd6-4282-91ae-4dfeb926a035/en-US) 
+  [Gitlab: runbooks](https://gitlab.com/gitlab-com/runbooks) 
+  [Rubix: uma biblioteca de Python para criação de runbooks em cadernos Jupyter](https://github.com/Nurtch/rubix) 
+  [Usar o Document Builder para criar um runbook personalizado](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk-document-builder.html) 

 **Serviços relacionados:** 
+  [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 

# OPS07-BP04 Usar playbooks para investigar problemas
<a name="ops_ready_to_support_use_playbooks"></a>

 Os *playbooks* são guias detalhados usados para investigar incidentes. Quando incidentes ocorrem, os playbooks são usados para investigar, definir o escopo do impacto e identificar a causa-raiz. Os playbooks são usados em diversos cenários, desde falhas em implantações até incidentes de segurança. Em muitos casos, os playbooks identificam a causa-raiz que um runbook costuma mitigar. Os playbooks são essenciais aos planos de resposta a incidentes de sua organização. 

 Um bom playbook abrange vários aspectos importantes. Ele guia o usuário, detalhadamente, ao longo do processo de descoberta. Considerando várias perspectivas, quais etapas devem ser seguidas para diagnosticar um incidente? Defina claramente no playbook se ferramentas especiais ou permissões elevadas são necessárias. Ter um plano de comunicação para atualizar as partes interessadas sobre o status da investigação é essencial. Em situações em que a causa-raiz ainda não foi identificada, o playbook deve ter um plano de escalação. Se a causa-raiz tiver sido identificada, o playbook deverá indicar um runbook que descreva como resolvê-la. Os playbooks devem ser armazenados em um local central e atualizados com frequência. Caso os playbooks sejam usados para alertas específicos, forneça às equipes indicadores para o playbook no alerta. 

 À medida que sua organização continuar amadurecendo, automatize seus playbooks. Comece com playbooks para abordar incidentes de baixo risco. Use scripts para automatizar as etapas de descoberta. Tenha runbooks complementares para mitigar as causas-raiz comuns. 

 **Resultado desejado:** sua organização tem playbooks para incidentes comuns. Os playbooks são armazenados em um local central e estão disponíveis para os membros da equipe. Os playbooks são atualizados com frequência. Runbooks complementares são criados para todas as causas-raiz conhecidas. 

 **Práticas comuns que devem ser evitadas:** 
+  Não há uma maneira padrão de investigar um incidente. 
+  Os membros da equipe precisam confiar na própria memória ou no conhecimento institucional para solucionar uma falha na implantação. 
+  Os novos membros da equipe aprendem a investigar os problemas por meio de tentativa e erro. 
+  As práticas recomendadas para a investigação dos problemas não são compartilhadas entre as equipes. 

 **Benefícios de implementar esta prática recomendada:** 
+  Os playbooks impulsionam seus esforços para mitigar os incidentes. 
+  Diferentes membros da equipe podem usar o mesmo playbook para identificar uma causa-raiz de maneira consistente. 
+  As causas-raiz conhecidas podem ter runbooks desenvolvidos para elas, diminuindo o tempo de recuperação. 
+  Os playbooks permitem que os membros da equipe comecem a contribuir o quanto antes. 
+  As equipes podem escalar seus processos com playbooks repetíveis. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 A maneira que você cria e usa os playbooks depende da maturidade da sua organização. Se você é iniciante na nuvem, crie playbooks no formato de texto em um repositório central de documentos. À medida que sua organização amadurecer, os playbooks poderão passar a ser semiautomatizados com linguagens de script, como Python. Esses scripts podem ser executados em um caderno Jupyter para acelerar a descoberta. As organizações avançadas têm playbooks totalmente automatizados para problemas comuns que são corrigidos automaticamente com runbooks. 

 Comece a criar seus playbooks listando incidentes comuns que ocorrem com sua workload. Para começar, escolha playbooks para incidentes com baixo risco e nos quais a causa-raiz tenha sido restrita a poucos problemas. Quando já tiver playbooks para os cenários mais simples, passe para cenários de alto risco ou cenários em que a causa-raiz não é bem conhecida. 

 Seus playbooks em texto deverão ser automatizados à medida que sua organização amadurecer. Usando serviços como o [AWS Systems Manager Automations](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html), o texto simples pode ser transformado em automações. Essas automações podem ser executadas na workload para acelerar as investigações. Elas podem ser ativadas em resposta a eventos, o que reduz o tempo necessário para descobrir e resolver incidentes. 

 Os clientes podem usar o [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) para responder a incidentes. Esse serviço fornece uma interface única para fazer a triagem de incidentes, informar as partes interessadas durante a descoberta e a mitigação e permitir a colaboração durante todo o incidente. Ele usa o AWS Automations para acelerar a detecção e a recuperação. 

 **Exemplo de cliente** 

 Um incidente na produção afetou a AnyCompany Retail. O engenheiro de plantão usou um playbook para investigar o problema. À medida que foi avançando pelas etapas, ele manteve as principais partes interessadas informadas, as quais estão identificadas no playbook. O engenheiro identificou a causa-raiz como uma condição de corrida em um serviço de backend. Usando um runbook, o engenheiro reiniciou o serviço, colocando a AnyCompany Retail online novamente. 

### Etapas de implementação
<a name="implementation-steps"></a>

 Se você não tem um repositório de documentos, sugerimos criar um repositório de controle de versão para a biblioteca de playbooks. É possível criar os playbooks usando o Markdown, que é compatível com a maioria dos sistemas de automação de playbooks. Se você estiver iniciando do zero, use o modelo de exemplo de playbook a seguir. 

```
# Playbook Title
## Playbook Info
| Playbook ID | Description | Tools Used | Special Permissions | Playbook Author | Last Updated | Escalation POC | Stakeholders | Communication Plan |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| RUN001 | What is this playbook for? What incident is it used for? | Tools | Permissions | Your Name | 2022-09-21 | Escalation Name | Stakeholder Name | How will updates be communicated during the investigation? |
## Steps
1. Step one
2. Step two
```

1.  Se você não tiver um repositório de documentos ou uma wiki, crie um repositório de controle de versão para seus playbooks no sistema de controle de versão. 

1.  Identifique um problema comum que requer investigação. Ele deve ser um cenário em que a causa-raiz está limitada a poucos problemas e a resolução é de baixo risco. 

1.  Usando o modelo Markdown, preencha a seção Nome do playbook e os campos em Informações do playbook. 

1.  Preencha as etapas de resolução de problemas. Seja o mais claro possível sobre quais ações devem ser executadas ou quais áreas devem ser investigadas. 

1.  Dê o playbook a um membro da equipe e peça para essa pessoa analisá-lo a fim de validá-lo. Caso algo esteja faltando ou não esteja claro, atualize o playbook. 

1.  Publique o playbook no repositório de documentos e informe sua equipe e as partes interessadas. 

1.  Essa biblioteca de playbooks crescerá à medida que você adicionar outros playbooks. Quando tiver vários playbooks, comece a automatizá-los usando ferramentas como o AWS Systems Manager Automations a fim de manter a automação e os playbooks sincronizados. 

 **Nível de esforço do plano de implementação:** Baixo. Os playbooks devem ser documentos de texto armazenados em um local central. Organizações mais consolidadas passarão a automatizar os respectivos playbooks. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS02-BP02 Processos e procedimentos com proprietários identificados](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_ops_model_def_proc_owners.html) 
+  [OPS07-BP03 Usar runbooks para realizar procedimentos](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_ready_to_support_use_runbooks.html) 
+  [OPS10-BP01 Usar um processo para gerenciamento de eventos, incidentes e problemas](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_event_response_event_incident_problem_process.html) 
+  [OPS10-BP02 Adotar um processo por alerta](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_event_response_process_per_alert.html) 
+  [OPS11-BP04 Gerenciar o conhecimento](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_evolve_ops_knowledge_management.html) 

 **Documentos relacionados:** 
+  [Como alcançar excelência operacional usando playbooks e runbooks automatizados](https://aws.amazon.com/blogs/mt/achieving-operational-excellence-using-automated-playbook-and-runbook/) 
+  [AWS Systems Manager: trabalhar com runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 
+  [Como usar runbooks do AWS Systems Manager Automation para resolver tarefas operacionais](https://aws.amazon.com/blogs/mt/use-aws-systems-manager-automation-runbooks-to-resolve-operational-tasks/) 

 **Vídeos relacionados:** 
+  [AWS re:Invent 2019: Guia de faça você mesmo para runbooks, relatórios de incidentes e resposta a incidentes (SEC318-R1)](https://www.youtube.com/watch?v=E1NaYN_fJUo) 
+  [AWS Systems Manager Incident Manager: workshops virtuais da AWS](https://www.youtube.com/watch?v=KNOc0DxuBSY) 
+  [Integrar scripts ao AWS Systems Manager](https://www.youtube.com/watch?v=Seh1RbnF-uE) 

 **Exemplos relacionados:** 
+  [AWS Framework do playbook do cliente da](https://github.com/aws-samples/aws-customer-playbook-framework) 
+  [AWS Systems Manager: orientações sobre automação](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html) 
+  [Criar um runbook de resposta a incidentes da AWS usando cadernos Jupyter e o CloudTrail Lake](https://catalog.workshops.aws/workshops/a5801f0c-7bd6-4282-91ae-4dfeb926a035/en-US) 
+  [Rubix: uma biblioteca Python para criação de runbooks em cadernos Jupyter](https://github.com/Nurtch/rubix) 
+  [Usar o Document Builder para criar um runbook personalizado](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk-document-builder.html) 

 **Serviços relacionados:** 
+  [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 
+  [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) 

# OPS07-BP05 Tomar decisões embasadas para implantar sistemas e alterações
<a name="ops_ready_to_support_informed_deploy_decisions"></a>

Adote processos para lidar com as alterações com e sem êxito feitas na workload. Uma estratégia pre-mortem é um exercício em que uma equipe simula uma falha para desenvolver estratégias de mitigação. Use as estratégias pre-mortem para antecipar falhas e criar procedimentos, quando apropriado. Avalie os benefícios e os riscos de implantar alterações na workload. Verifique se todas as alterações estão em conformidade com a governança. 

 **Resultado desejado:** 
+  Você toma decisões embasadas ao implantar alterações na workload. 
+  As alterações estão em conformidade com a governança. 

 **Práticas comuns que devem ser evitadas:** 
+ Implantar uma alteração em nossa workload sem um processo para lidar com uma implantação com falha.
+ Fazer alterações no ambiente de produção que estão fora da conformidade com os requisitos de governança.
+ Implantar uma nova versão da workload sem estabelecer uma referência para a utilização de recursos.

 **Benefícios de implementar esta prática recomendada:** 
+  Você está preparado para alterações sem êxito na workload. 
+  As alterações na workload estão em conformidade com as políticas de governança. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Baixo 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Use estratégias pre-mortem para desenvolver processos para lidar com alterações sem êxito. Documente os processos de alterações sem êxito. Garanta que todas as alterações estejam em conformidade com a governança. Avalie os benefícios e os riscos de implantar alterações na workload. 

 **Exemplo de cliente** 

 A AnyCompany Retail realiza estratégias pre-mortem regularmente para validar seus processos de alterações sem êxito. Os processos são documentados em uma Wiki compartilhada e atualizados regularmente. Todas as alterações estão em conformidade com os requisitos de governança. 

 **Etapas de implementação** 

1.  Tome decisões embasadas ao implantar alterações na workload. Estabeleça e revise os critérios de uma implantação bem-sucedida. Desenvolva cenários ou critérios que acionariam a reversão de uma alteração. Pondere os benefícios de implantar alterações considerando os riscos de uma alteração sem êxito. 

1.  Verifique se todas as alterações estão em conformidade com as políticas de governança. 

1.  Use estratégias pre-mortem para alterações sem êxito e documente as estratégias de migração. Realize um exercício de simulação para modelar uma alteração sem êxito e validar os procedimentos de reversão. 

 **Nível de esforço do plano de implementação:** Moderado. Implementar uma prática de estratégias pre-mortem requer coordenação e esforço das partes interessadas na organização 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS01-BP03 Avaliar os requisitos de governança](ops_priorities_governance_reqs.md): os requisitos de governança são um fator fundamental para determinar se uma alteração deve ser implementada. 
+  [OPS06-BP01 Preparar-se para alterações malsucedidas](ops_mit_deploy_risks_plan_for_unsucessful_changes.md): estabeleça planos para mitigar uma implantação sem êxito e use estratégias pre-mortem para validá-los. 
+  [OPS06-BP02 Testar implantações](ops_mit_deploy_risks_test_val_chg.md): toda alteração de software deve ser testada adequadamente antes da implantação para reduzir os defeitos na produção. 
+  [OPS07-BP01 Garantir a capacidade da equipe](ops_ready_to_support_personnel_capability.md): ter um número suficiente de funcionários treinados para fornecer suporte à workload é essencial para tomar uma decisão embasada quanto à implantação de uma alteração no sistema. 

 **Documentos relacionados:** 
+ [Amazon Web Services: risco e conformidade](https://docs.aws.amazon.com/whitepapers/latest/aws-risk-and-compliance/welcome.html)
+ [Modelo de responsabilidade compartilhada da AWS](https://aws.amazon.com/compliance/shared-responsibility-model/)
+ [Governança na Nuvem AWS: o equilíbrio certo entre agilidade e segurança](https://aws.amazon.com/blogs/apn/governance-in-the-aws-cloud-the-right-balance-between-agility-and-safety/)

# OPS07-BP06 Criar planos de suporte para workloads de produção
<a name="ops_ready_to_support_enable_support_plans"></a>

 Habilite o suporte para qualquer software e quaisquer serviços dos quais sua workload de produção dependa. Selecione um nível de suporte apropriado para atender às necessidades de nível de serviço da produção. Planos de suporte para essas dependências são necessários no caso de interrupção de um serviço ou de um problema de software. Documente os planos de suporte e como solicitar suporte para todos os fornecedores de serviços e software. Implemente mecanismos que verifiquem se os pontos de contato do suporte são mantidos atualizados. 

 **Resultado desejado:** 
+  Implemente planos de suporte para software e serviços dos quais as workloads de produção dependem. 
+  Escolha um plano de suporte apropriado com base nas necessidades de nível de serviço. 
+  Documente os planos de suporte, os níveis de suporte e como solicitar suporte. 

 **Práticas comuns que devem ser evitadas:** 
+  Você não tem nenhum plano de suporte junto a um fornecedor de software essencial. Sua workload é afetada por isso e você não pode fazer nada para agilizar a correção ou obter atualizações em tempo hábil do fornecedor. 
+  Um desenvolvedor que era o principal ponto de contato com um fornecedor de software deixou a empresa. Você não consegue entrar em contato com o suporte do fornecedor diretamente. Você precisa despender tempo pesquisando e navegando por sistemas de contato genéricos, aumentando o tempo requerido para responder quando necessário. 
+  Uma interrupção ocorre na produção relacionada a um fornecedor de software. Não há nenhuma documentação sobre como abrir um caso de suporte. 

 **Benefícios de implementar esta prática recomendada:** 
+  Com o nível de suporte apropriado, você é capaz de obter uma resposta no espaço de tempo requerido para atender às necessidades de nível de serviço. 
+  Como um cliente com suporte, você pode encaminhar a questão se houver problemas na produção. 
+  Os fornecedores de software e serviços podem ajudar na resolução de problemas durante um incidente. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Baixo 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Habilite planos de suporte para qualquer software e quaisquer serviços dos quais sua workload de produção dependa. Estabeleça planos de suporte apropriados para atender a necessidades de nível de serviço. Para clientes da AWS, isso significa habilitar o AWS Business Support ou superior em quaisquer contas em que você tenha workloads de produção. Entre em contato regularmente com os fornecedores de suporte para obter atualizações sobre ofertas, processos e contatos de suporte. Documente como solicitar suporte de fornecedores de software e serviços e sobre como encaminhar problemas se houver uma interrupção. Implemente mecanismos para manter os contatos de suporte atualizados. 

 **Exemplo de cliente** 

 Na AnyCompany Retail, todas dependências de software e serviços comerciais contam com planos de suporte. Por exemplo, eles têm o AWS Enterprise Support ativado em todas as contas com workloads de produção. Qualquer desenvolvedor pode abrir um caso de suporte quando há um problema. Há uma página de wiki com informações sobre como solicitar suporte, a quem notificar e as práticas recomendadas para agilizar um caso. 

 **Etapas de implementação** 

1.  Trabalhe com as partes interessadas em sua organização para identificar fornecedores de software e serviços dos quais sua workload dependa. Documente essas dependências. 

1.  Determine as necessidades de nível de serviço para sua workload. Selecione um plano de suporte alinhado a elas. 

1.  Para software e serviços comerciais, estabeleça um plano de suporte com os fornecedores. 

   1.  A assinatura do AWS Business Support ou superior para todas as contas de produção fornece um tempo de resposta rápido do AWS Support e é altamente recomendada. Se você não tiver suporte premium, precisará de um plano de ação para lidar com os problemas, o que requer a ajuda do AWS Support. O AWS Supportoferece ferramentas e tecnologias, pessoas e programas projetados para ajudar você de forma proativa a otimizar o desempenho, reduzir os custos e inovar mais depressa. Além disso, o AWS Business Support oferece benefícios adicionais, como acesso à API para o AWS Trusted Advisor e o AWS Health para integração programática com seus sistemas, além de outros métodos de acesso, como o Console de gerenciamento da AWS e os canais do Amazon EventBridge. 

1.  Documente o plano de suporte em sua ferramenta de gerenciamentos de conhecimentos. Inclua como solicitar suporte, a quem notificar se for aberto um caso de suporte e como encaminhar o problema durante um incidente. Uma wiki é um bom mecanismo para possibilitar que todos façam as atualizações necessárias na documentação quando forem informados sobre alterações em processos ou contatos de suporte. 

 **Nível de esforço do plano de implementação:** Baixo. A maioria dos fornecedores de software e serviços oferece planos de suporte que requerem adesão. Documentar e compartilhar práticas recomendadas no sistema de gerenciamento de conhecimentos garante que sua equipe saiba o que fazer quando houver um problema na produção. 

## Recursos
<a name="resources"></a>

 **Práticas recomendadas relacionadas:** 
+  [OPS02-BP02 Processos e procedimentos com proprietários identificados](ops_ops_model_def_proc_owners.md) 

 **Documentos relacionados:** 
+ [Planos do AWS Support](https://docs.aws.amazon.com/awssupport/latest/user/aws-support-plans.html)

 **Serviços relacionados:** 
+ [AWS Business Support ](https://aws.amazon.com/premiumsupport/plans/business/)
+ [AWS Enterprise Support ](https://aws.amazon.com/premiumsupport/plans/enterprise/)