Esse conteúdo está desatualizado. Esta versão da Well-Architected Framework agora pode ser encontrada em:  https://docs.aws.amazon.com/pt_br/wellarchitected/2022-03-31/framework/operational-excellence.html
     
 
         OPS 5: Como você reduz defeitos, facilita a correção e melhora o fluxo na produção?
         
         
            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.
            
         
         Recursos
          CI/CD for Serverless Applications on AWS 
 Design with Ops in Mind
 AWS Developer Tools
         Melhores práticas:
         
            - 
               Usar controle de versão: 
                  Use o controle de versão para habilitar o rastreamento de alterações e liberações.
                  
                
- 
               Testar e validar alterações: 
                  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.
                  
                
- 
               Usar sistemas de gerenciamento de configurações: 
                  Use sistemas de gerenciamento de configurações 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. 
                  
                
- 
               Usar sistemas de gerenciamento de compilação e implantação: 
                  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.
                  
                  
                
- 
               Executar gerenciamento de patches: 
                  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.
                  
                
- 
               Compartilhar padrões de projetos: 
                  Compartilhe as melhores práticas entre as equipes para aumentar a conscientização
                  e maximizar os benefícios dos esforços de desenvolvimento.
                  
                
- 
               Implementar práticas para aprimorar a qualidade do código: 
                  Implemente práticas para aprimorar a qualidade do código e minimizar os defeitos.
                  Por exemplo, desenvolvimento orientado por testes, análises de código e adoção de
                  padrões.
                  
                
- 
               Usar vários ambientes: 
                  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.
                  
                
- 
               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.
                  
                
- 
               Automatize totalmente a integração e a implantação: 
                  Automatize a compilaçã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.
                  
                
Plano de melhoria
         Usar controle de versão
Usar controle de versão: 
               Manter 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
 What is AWS CodeCommit?
         
         Testar e validar alterações
Testar e validar 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.
               
 What is AWS CodeBuild?
 Local build support for AWS CodeBuild
         
         Usar sistemas de gerenciamento de configurações
Usar sistemas de gerenciamento de configurações: 
               Use sistemas de gerenciamento de configurações para acompanhar e implementar alterações,
               reduzir erros causados por processos manuais e diminuir o nível de esforço.
               
 Infrastructure configuration management
 AWS Config
 What is AWS Config?
 Introduction to AWS CloudFormation
 What is AWS CloudFormation?
 AWS OpsWorks
 What is AWS OpsWorks?
 Introduction to AWS Elastic Beanstalk
 What is AWS Elastic Beanstalk?
         
         Usar sistemas de gerenciamento de compilação e implantação
Usar sistemas de gerenciamento de compilação e implantação: 
               Use sistemas de gerenciamento de compilaçã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, 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. 
               
 What is AWS CodeBuild?
 Continuous integration best practices for software development
 Slalom: CI/CD for serverless applications on AWS
 Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
 What is AWS CodeDeploy?
         
         Executar gerenciamento de patches
Gerenciamento de patches: 
               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 para aplicar patches, reduzir erros causados
               por processos manuais e reduzir o nível de esforço para corrigir.
               
 AWS Systems Manager Patch Manager
         
         Compartilhar padrões de projetos
Compartilhar padrões de projetos: 
               Compartilhe as melhores práticas existentes, padrões de projeto, listas de verificação,
               procedimentos operacionais e requisitos de orientação e governança entre 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.
               
 Delegating access to your AWS environment
 Share an AWS CodeCommit repository
 Easy authorization of AWS Lambda functions
 Sharing an AMI with specific AWS accounts
 Speed template sharing with an AWS CloudFormation designer URL
 Using AWS Lambda with Amazon SNS
         
         Implementar práticas para aprimorar a qualidade do código
Implementar práticas para aprimorar a qualidade do código: 
               Implemente práticas para melhorar a qualidade do código, minimizando 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.
               
            
         
         Usar vários ambientes
Usar vários ambientes: 
               Forneça aos ambientes de sandbox dos desenvolvedores 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 que se aproximam da produção para permitir aos desenvolvedores
               a liberdade necessária para a inovação. 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.
               
 What is AWS CloudFormation?
 How do I stop and start Amazon EC2 instances at regular intervals using AWS Lambda?
         
         Fazer alterações frequentes, pequenas e reversíveis
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.
               
            
         
         Automatize totalmente a integração e a implantação
Usar sistemas de gerenciamento de compilação e implantação: 
               Use sistemas de gerenciamento de compilaçã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, 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. 
               
 What is AWS CodeBuild?
 Continuous integration best practices for software development
 Slalom: CI/CD for serverless applications on AWS
 Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
 What is AWS CodeDeploy?