

# OPS 5  Como você reduz defeitos, facilita a correção e melhora o fluxo na produção?
<a name="w2aac19b5b7b7"></a>

 Adote abordagens que melhoram o fluxo de alterações na produção, que permitem refatoração, feedback 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. 

**Topics**
+ [OPS05-BP01 Usar o controle de versão](ops_dev_integ_version_control.md)
+ [OPS05-BP02 Testar e validar as 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 os 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 o controle de versão
<a name="ops_dev_integ_version_control"></a>

 Use o controle de versão para habilitar 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 controle de origem como o [AWS CodeCommit](https://aws.amazon.com/codecommit/) para gerenciar código e outros artefatos, como modelos do [AWS CloudFormation](https://aws.amazon.com/cloudformation/) com controle de versão da sua infraestrutura. 

 **Antipadrões comuns:** 
+  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 em que seu código foi perdido. 
+  Depois de substituir o código existente pelas alterações, você reinicia o aplicativo e ele deixa de ser operável. Não é possível reverter para 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 sua lista de compras no relatório final. Não é possível reverter a alteração e você terá que recriar o relatório. 

 **Benefícios do estabelecimento desta prática recomendada:** Ao usar recursos de controle de versão, você pode reverter facilmente para bons estados conhecidos, versões anteriores e limitar o risco de perda de ativos. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Alto 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Usar o controle de versão: mantenha os ativos em repositórios controlados por versão. Fazer isso oferece suporte para o rastreamento de alterações, a implantação de novas versões, a detecção de alterações nas versões existentes e a reversão para versões anteriores (por exemplo, a reversão para um estado bom e conhecido no caso de uma falha). Integre os recursos de controle de versão dos sistemas de gerenciamento de configurações aos seus procedimentos. 
  +  [Introduction to AWS CodeCommit (Introdução ao AWS CodeCommit)](https://youtu.be/46PRLMW8otg) 
  +  [O que é o AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

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

 **Documentos relacionados:** 
+  [O que é o AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+  [Introduction to AWS CodeCommit (Introdução ao AWS CodeCommit)](https://youtu.be/46PRLMW8otg) 

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

 Teste e valide as alterações para ajudar a limitar e detectar erros. Automatize os testes para reduzir erros causados por processos manuais e reduzir o nível de esforço para testar. 

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

 **Antipadrões comuns:** 
+  Ao implantar novo código na produção, os clientes começam a ligar porque a aplicação não está mais funcionando. 
+  Você aplica novos grupos de segurança para aprimorar a segurança do perímetro. Isso funciona com consequências indesejadas. Os usuários não conseguem acessar as aplicações. 
+  Você modifica um método invocado pela nova função. Outra função também dependia desse método e não funciona mais. O problema não é detectado e entra em produção. A outra função não é invocada por algum tempo e, finalmente, falha na produção sem qualquer correlação com a causa. 

 **Benefícios do estabelecimento desta prática recomendada:** Ao testar e validar alterações antecipadamente, você pode resolver problemas com custos reduzidos e limitar o impacto sobre seus clientes. Ao testar antes da implantação, você reduz a possibilidade de erros. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Alto 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Testar e validar as alterações: as alterações devem ser testadas, e os resultados validados, em todas as etapas do ciclo de vida (por exemplo, desenvolvimento, teste e produção). Use os resultados dos testes para confirmar novos recursos e reduzir o risco e o impacto de implantações com falha. Automatize os testes e a validação para garantir a consistência da análise, reduzir erros causados por processos manuais e reduzir o nível de esforço. 
  +  [O que é o AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Suporte de compilação local do AWS CodeBuild](https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/) 

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

 **Documentos relacionados:** 
+  [Ferramentas do desenvolvedor da AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Suporte de compilação local do AWS CodeBuild](https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/) 
+  [O que é o AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/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. Alguns exemplos incluem a definição da configuração do servidor web ou de aplicação em uma instância, ou a definição da configuração de um serviço da AWS no [Console de gerenciamento da AWS](https://docs.aws.amazon.com/awsconsolehelpdocs/index.html) ou por meio da [AWS CLI](https://aws.amazon.com/cli/). 

 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 a alternância de um recurso para ativar uma funcionalidade no código por meio de uma alteração na configuração, ou alterar o nível de detalhes do log durante um incidente para capturar mais dados e alterar de volta depois do incidente, eliminando os logs agora desnecessários e a despesa associada. 

 Se tiver configurações dinâmicas em suas aplicações executadas em instâncias, contêineres, funções de tecnologia sem servidor ou dispositivos, você poderá usar o [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) para gerenciar e implantá-las entre seus ambientes. 

 No AWS, você pode usar o [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) para monitorar continuamente as configurações de seus recursos da AWS [entre contas e regiões](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). Isso permite 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 [os pacotes de conformidade do AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

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

 Tenha um calendário de alterações e monitore quando atividades ou eventos comerciais ou operacionais significativos que estão planejados podem ser afetados pela implementação da alteração. Ajuste as atividades para gerenciar riscos relacionados a esses planos. [Calendário de alterações do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) fornece um mecanismo para documentar blocos de tempo como abertos ou fechados para alterações e o motivo desses eventos, bem como para [compartilhar essas informações](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-calendar-share.html) com outras Contas da AWS. Os scripts do AWS Systems Manager Automation podem ser configurados para aderir ao estado de calendário de alteração. 

 [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) pode ser usado para programar a execução de scripts de Run Command ou de Automação do AWS SSM, invocações do AWS Lambda ou atividades do AWS Step Functions em horários especificados. Marque essas atividades no calendário de alterações para que elas possam ser incluídas na avaliação. 

 **Antipadrões comuns:** 
+  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 aplicativos 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. 

 **Benefícios do estabelecimento desta 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. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Médio 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Usar sistemas de gerenciamento de configuração: use sistemas de gerenciamento de configuração para rastrear e implementar alterações, reduzir erros causados por processos manuais e diminuir o nível de esforço. 
  +  [Gerenciamento de configuração de infraestrutura](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
  +  [AWS Config](https://aws.amazon.com/config/) 
  +  [O que é o AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
  +  [Introduction to AWS CloudFormation (Introdução ao AWS CloudFormation)](https://youtu.be/Omppm_YUG2g) 
  +  [O que é o AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
  +  [O que é o AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 
  +  [Introduction to AWS Elastic Beanstalk (Introdução ao AWS Elastic Beanstalk)](https://youtu.be/SrwxAScdyT0) 
  +  [O que é o AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 

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

 **Documentos relacionados:** 
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+  [Ferramentas do desenvolvedor da AWS](https://aws.amazon.com/products/developer-tools/) 
+  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
+  [Calendário de alterações do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) 
+  [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) 
+  [Gerenciamento de configuração de infraestrutura](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
+  [O que é o AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [O que é o AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [O que é o AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
+  [O que é o AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+  [Introduction to AWS CloudFormation (Introdução ao AWS CloudFormation)](https://youtu.be/Omppm_YUG2g) 
+  [Introduction to AWS Elastic Beanstalk (Introdução ao AWS Elastic Beanstalk)](https://youtu.be/SrwxAScdyT0) 

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

 Usar 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: [Ferramentas do desenvolvedor da AWS](https://aws.amazon.com/products/developer-tools/) (por exemplo, AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)e aos [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 **Antipadrões comuns:** 
+  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 registro locais indicam que ele falhou devido à ausência de dependências. 
+  Você cria sua aplicação com êxito com os novos recursos em seu ambiente de desenvolvimento e fornece o código à garantia de qualidade (QA). Ele falha na QA porque não há ativos estáticos. 
+  Na sexta-feira, após muito esforço, você consegue criar o aplicativo 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 do estabelecimento desta 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 exposição a riscos quando esta prática recomendada não é estabelecida:** Médio 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Usar sistemas de gerenciamento de compilação e de implantação: use sistemas de gerenciamento de compilação e de 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, teste, implantação e validação. Isso reduz o tempo de execução, permite maior frequência de mudança e reduz o nível de esforço. 
  +  [O que é o AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [As melhores práticas de integração contínua para equipes de desenvolvimento de software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD para aplicações de tecnologia sem servidor na AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introduction to AWS CodeDeploy: automated software deployment with Amazon Web Services (Introdução ao AWS CodeDeploy: implantação de software automatizada com a Amazon Web Services)](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [O que é o AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

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

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

 **Vídeos relacionados:** 
+  [As melhores práticas de integração contínua para equipes de desenvolvimento de software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Introduction to AWS CodeDeploy: automated software deployment with Amazon Web Services (Introdução ao AWS CodeDeploy: implantação de software automatizada com a Amazon Web Services)](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD para aplicações de tecnologia sem servidor na AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# 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 e reduzir o nível de esforço para corrigir. 

 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 cargas de trabalho em bons estados verificados e conhecidos. Quando isso não é viável, a aplicação de patches é a opção restante. 

 Atualizar imagens de máquinas, imagens de contêineres ou o Lambda [tempos de execução personalizados e bibliotecas adicionais](https://docs.aws.amazon.com/lambda/latest/dg/security-configuration.html) do Lambda para remover vulnerabilidades faz parte do gerenciamento de patches. Você deve gerenciar atualizações em [Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (AMIs) para imagens do Linux ou Windows Server usando o [EC2 Image Builder](https://aws.amazon.com/image-builder/). Você pode usar [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) com seu pipeline existente para [gerenciar imagens do Amazon ECS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html) e [gerenciar imagens do Amazon EKS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_EKS.html). O AWS Lambda inclui recursos de gerenciamento de [versão](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 testar em um ambiente seguro. Os patches só deverão ser aplicados se forem compatíveis com um resultado operacional ou comercial. No AWS, você pode 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 o [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Antipadrões comuns:** 
+  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 sua carga de trabalho. 
+  Você aplica patches nos ambientes do desenvolvedor automaticamente, sem notificar os desenvolvedores. Você recebe várias reclamações dos desenvolvedores, dizendo que o ambiente deles deixa de funcionar conforme o esperado. 
+  Você não aplicou os 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 não for feita a aplicação de patches. 

 **Benefícios do estabelecimento desta prática recomendada:** Ao estabelecer um processo de gerenciamento de patches, incluindo critérios de aplicação de patches e metodologia para distribuição em seus ambientes, você poderá perceber os benefícios e controlar o impacto. Isso permitirá a adoção de recursos e capacidades desejados, a remoção 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 para implantar patches e limitar erros causados por processos manuais. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Médio 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Gerenciamento de patches: aplique patches aos sistemas para corrigir problemas, obter as capacidades ou os recursos desejados e permanecer em conformidade com a política de governança e com 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 para aplicar patches, reduzir erros causados por processos manuais e reduzir o nível de esforço para corrigir. 
  +  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

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

 **Documentos relacionados:** 
+  [Ferramentas do desenvolvedor da AWS](https://aws.amazon.com/products/developer-tools/) 
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

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

   **Exemplos relacionados:** 
+  [Well-Architected Labs – Inventory and Patch Management (Laboratórios do Well-Architected: Gerenciamento de inventário e patches)](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 

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

 Compartilhe as melhores práticas entre as equipes para aumentar a conscientização e maximizar os benefícios dos esforços de desenvolvimento. 

 Na AWS, aplicativos, computação, infraestrutura e operações podem ser definidos e gerenciados usando metodologias de código. Isso permite fácil liberação, compartilhamento e adoção. 

 Muitos serviços e recursos da AWS foram projetados para serem compartilhados entre contas, permitindo que você compartilhe aprendizados e ativos criados com suas equipes. Por exemplo, você pode compartilhar repositórios do [CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) , funções do [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html) , buckets do [Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/)e aos [AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) com contas específicas. 

 Ao publicar novos recursos ou atualizações, use o Amazon SNS para fornecer [notificações entre contas](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html). Os assinantes podem usar o Lambda para obter novas versões. 

 Se houver padrões compartilhados na sua organização, será fundamental a presença de mecanismos para solicitar adições, alterações e exceções para os padrões em suporte às atividades das equipes. Sem essa opção, os padrões se tornam uma restrição à inovação. 

 **Antipadrões comuns:** 
+  Você criou seu próprio mecanismo de autenticação de usuário, assim como cada uma das outras equipes de desenvolvimento em sua organização. Seus usuários precisam manter um conjunto separado de credenciais para cada parte do sistema que desejam acessar. 
+  Você criou seu próprio mecanismo de autenticação de usuário, assim como cada uma das outras equipes de desenvolvimento em sua organização. Sua organização recebe um novo requisito de conformidade que deve ser atendido. Agora, cada equipe de desenvolvimento deve investir os recursos para implementar o novo requisito. 
+  Você criou seu próprio layout de tela, assim como cada uma das outras equipes de desenvolvimento em sua organização. Seus usuários estão reclamando sobre a dificuldade de navegar pelas interfaces inconsistentes. 

 **Benefícios do estabelecimento desta prática recomendada:** Use padrões compartilhados para apoiar a adoção de melhores práticas e aumentar os benefícios dos esforços de desenvolvimento em que os padrões atendem aos requisitos de vários aplicativos ou organizações. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Médio 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Compartilhar os padrões de design: compartilhe as práticas recomendadas existentes, os padrões de design, as listas de verificação, os procedimentos operacionais e os requisitos de orientações e de governança entre as equipes para reduzir a complexidade e maximizar os benefícios dos esforços de desenvolvimento. Garanta a existência de procedimentos para solicitar alterações, acréscimos e exceções aos padrões de projeto para apoiar a melhoria e inovação contínuas. Garanta que as equipes estejam cientes do conteúdo publicado, para que possam tirar proveito do conteúdo e limitar o retrabalho e o esforço desperdiçado. 
  +  [Delegação de acesso ao ambiente da AWS](https://www.youtube.com/watch?v=0zJuULHFS6A&t=849s) 
  +  [Compartilhar um repositório do AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-share-repository.html) 
  +  [Fácil autorização das funções do AWS Lambda](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) 
  +  [Compartilhamento de uma AMI com Contas da AWS específicas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) 
  +  [Acelerar o compartilhamento de modelos com uma URL do designer do AWS CloudFormation](https://aws.amazon.com/blogs/devops/speed-template-sharing-with-an-aws-cloudformation-designer-url/) 
  +  [Usar o AWS Lambda com o Amazon SNS](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html) 

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

 **Documentos relacionados:** 
+  [Fácil autorização das funções do AWS Lambda](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) 
+  [Compartilhar um repositório do AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-share-repository.html) 
+  [Compartilhamento de uma AMI com Contas da AWS específicas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) 
+  [Acelerar o compartilhamento de modelos com uma URL do designer do AWS CloudFormation](https://aws.amazon.com/blogs/devops/speed-template-sharing-with-an-aws-cloudformation-designer-url/) 
+  [Usar o AWS Lambda com o Amazon SNS](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html) 

 **Vídeos relacionados:** 
+  [Delegação de acesso ao ambiente da AWS](https://www.youtube.com/watch?v=0zJuULHFS6A&t=849s) 

# 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 e adoção de padrões. 

 Na AWS, é possível integrar serviços, como o [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) , com o pipeline para identificar [automaticamente os problemas potenciais de código e de segurança](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/how-codeguru-reviewer-works.html) usando a análise de programa e o machine learning. O CodeGuru fornece orientações de como implementar as práticas recomendadas da AWS para resolver esses problemas. 

 **Antipadrões comuns:** 
+  Para poder testar seu recurso precocemente, você decidiu não integrar a biblioteca padrão de tratamento de entradas. Depois de testar, você confirma o código sem se lembrar de concluir a incorporação da biblioteca. 
+  Você tem pouca experiência com o conjunto de dados que está processando e não sabe que pode existir uma série de casos de borda no seu conjunto de dados. Esses casos de borda não são compatíveis com o código que você implementou. 

 **Benefícios do estabelecimento desta prática recomendada:** Com a adoção das práticas para melhorar a qualidade do código, é possível minimizar os problemas ocorridos na produção. 

 **Nível de exposição a riscos quando esta prática recomendada não for estabelecida:** Médio 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Implementar práticas para melhorar a qualidade do código: implemente práticas para melhorar a qualidade do código para minimizar os defeitos e o risco de serem implantados. Por exemplo, desenvolvimento orientado por testes, programação em pares, análises de código e adoção de padrões. 
  +  [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 

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

 **Documentos relacionados:** 
+  [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.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 carga de trabalho. Use níveis crescentes de controles à medida que os ambientes se aproximam da produção para adquirir confiança de que sua carga de trabalho operará conforme pretendido quando implantada. 

 **Antipadrões comuns:** 
+  Você está realizando o 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 a aplicação indisponível para os 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. 
+  Talvez você não teste sempre, mas quando o faz, já está em produção. 
+  Você acredita que a simplicidade de um único ambiente substitui o escopo do impacto das alterações dentro do ambiente. 

 **Benefícios do estabelecimento desta prática recomendada:** Ao implantar vários ambientes, você pode oferecer suporte a vários ambientes simultâneos de desenvolvimento, teste e produção, sem criar conflitos entre desenvolvedores ou comunidades de usuários. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Médio 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Usar vários ambientes: forneça aos desenvolvedores ambientes de área restrita para testes com controles minimizados para permitir a experimentação. Forneça ambientes de desenvolvimento individuais para permitir 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 habilitar resultados válidos. 
  +  [O que é o AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [Como interrompo e inicio instâncias do Amazon EC2 em intervalos regulares usando o AWS Lambda?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 

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

 **Documentos relacionados:** 
+  [Como interrompo e inicio instâncias do Amazon EC2 em intervalos regulares usando o AWS Lambda?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 
+  [O que é o AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 

# 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. Isso facilita a solução de problemas, permite uma correção mais rápida e oferece a opção de reverter uma alteração. 

 **Antipadrões comuns:** 
+  Você implanta uma nova versão do seu aplicativo trimestralmente. 
+  Você faz alterações no esquema de banco de dados com frequência. 
+  Você realiza atualizações manuais no local, substituindo instalações e configurações existentes. 

 **Benefícios do estabelecimento desta prática recomendada:** Você reconhece os benefícios dos esforços de desenvolvimento mais rapidamente implantando pequenas alterações com frequência. Quando as alterações são pequenas, é muito mais fácil identificar se elas têm consequências indesejadas. Quando as alterações são reversíveis, há menos risco de implementar a alteração à medida que a recuperação é simplificada. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Baixo 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Fazer alterações frequentes, pequenas e reversíveis: alterações frequentes, pequenas e reversíveis reduzem o escopo e o impacto de uma alteração. Isso facilita a solução de problemas, permite uma correção mais rápida e oferece a opção de reverter uma alteração. Também aumenta a taxa na qual você pode agregar valor aos negócios. 

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

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

 Aplique metadados usando o [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 [de marcação consistente](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) para permitir a identificação dos seus recursos. Identifique seus recursos para organização, contabilidade de custos, controles de acesso e direcione a execução de atividades operacionais automatizadas. 

 **Antipadrões comuns:** 
+  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 em cada um dos scripts de testes unitários, você verificará o código para o próximo lançamento programado. 
+  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 do código para solicitar aprovação para implantação na produção. 

 **Benefícios do estabelecimento desta 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, permitindo que os membros da equipe se concentrem na entrega de valor empresarial. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** Baixo 

## Orientações para a implementação
<a name="implementation-guidance"></a>
+  Usar sistemas de gerenciamento de compilação e de implantação: use sistemas de gerenciamento de compilação e de 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, teste, implantação e validação. Isso reduz o tempo de execução, permite maior frequência de mudança e reduz o nível de esforço. 
  +  [O que é o AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [As melhores práticas de integração contínua para equipes de desenvolvimento de software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD para aplicações de tecnologia sem servidor na AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introduction to AWS CodeDeploy: automated software deployment with Amazon Web Services (Introdução ao AWS CodeDeploy: implantação de software automatizada com a Amazon Web Services)](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [O que é o AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

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

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

 **Vídeos relacionados:** 
+  [As melhores práticas de integração contínua para equipes de desenvolvimento de software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Introduction to AWS CodeDeploy: automated software deployment with Amazon Web Services (Introdução ao AWS CodeDeploy: implantação de software automatizada com a Amazon Web Services)](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD para aplicações de tecnologia sem servidor na AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 