

# 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. 

 **Antipadrões comuns:** 
+  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 estabelecer esta prática recomendada:** implantações automatizadas equilibram a velocidade das implementações com a entrega consistente de mudanças benéficas aos 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 clientes** 

 A Loja UmaEmpresa tem a missão de alcançar implantações com tempo de inatividade entre mínimo e zero, isto é, 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 do Amazon EC2\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2023-10-03/framework/images/deployment-process-ec2.png)  |  ![\[Fluxo do processo de implantação do Amazon ECS\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2023-10-03/framework/images/deployment-process-ecs.png)  |  ![\[Fluxo do processo de implantação do Lambda\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2023-10-03/framework/images/deployment-process-lambda.png)  | 

### Etapas da 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 opções de implantação do AWS CodeDeploy [incluem](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html) implantações locais do EC2/on-premises e implantações azuis/verdes do EC2/on-premises, do AWS Lambda e do Amazon ECS (consulte o diagrama de 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 o [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html). 

1.  [Monitore as implantações](https://docs.aws.amazon.com/codedeploy/latest/userguide/monitoring.html) usando notificações de eventos do Amazon CloudWatch, do AWS CloudTrail e do 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.  [Solução de problemas](https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting.html) 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 valide as 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 Automating safe, hands-off deployments \$1 Production deployments ](https://aws.amazon.com/builders-library/automating-safe-hands-off-deployments/?did=ba_card&trk=ba_card#Production_deployments)
+ [AWS Builders Library \$1 My CI/CD pipeline is my release captain \$1 Safe, automatic production releases](https://aws.amazon.com//builders-library/cicd-pipeline/#Safe.2C_automatic_production_releases)
+ [Whitepaper da AWS \$1 Practicing Continuous Integration and Continuous Delivery on AWS \$1 Deployment methods](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/deployment-methods.html)
+ [Guia do usuário do AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [Working with deployment configurations in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)
+ [Set up an API Gateway canary release deployment ](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html)
+ [Amazon ECS Deployment Types](https://docs.aws.amazon.com/)
+ [Fully Managed Blue/Green Deployments in Amazon Aurora and Amazon RDS](https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/)
+ [Blue/Green deployments with 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 para implantação de alta disponibilidade](https://www.youtube.com/watch?v=bCgD2bX1LI4)

 **Exemplos relacionados:** 
+ [Try a Sample Blue/Green Deployment in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html)
+ [Workshop \$1 Buiding CI/CD pipelines for Lambda canary deployments using AWS CDK](https://catalog.us-east-1.prod.workshops.aws/workshops/5195ab7c-5ded-4ee2-a1c5-775300717f42/en-US)
+ [Workshop \$1 Implantação canário e azul/verde para o EKS e o ECS](https://catalog.us-east-1.prod.workshops.aws/workshops/2175d94a-cd79-4ed2-8e7e-1f0dd1956a3a/en-US)
+ [Workshop \$1 Criar um pipeline de CI/CD entre contas](https://catalog.us-east-1.prod.workshops.aws/workshops/00bc829e-fd7c-4204-9da1-faea3cf8bd88/en-US)