Rollback automático para uma implantação ECS Fargate com falha, sem scripts personalizados.
→Habilite o disjuntor de implantação do ECS com rollback no serviço ECS.
Por quê: Recurso nativo do ECS que faz rollback automaticamente se as novas tarefas falharem ao estabilizar. Menor sobrecarga operacional em comparação com sondagem personalizada do CodeBuild ou configurações complexas do CodeDeploy.
Referência↗
Implante em uma região primária, valide com testes automatizados e, em seguida, implante em outras regiões em paralelo.
→Use um único CodePipeline com estágios sequenciais: (1) Implantação na Região A, (2) um estágio de teste CodeBuild que executa a validação, (3) um estágio de implantação paralela para as Regiões B e C.
Por quê: O CodeBuild atua como um portão programático automatizado. Um único pipeline é mais simples do que orquestrar múltiplos pipelines com Step Functions.
Um script de validação de longa execução em um hook de ciclo de vida do CodeDeploy causa sucesso prematuro da implantação.
→Aumente a propriedade `timeout` para o script de hook de ciclo de vida específico no arquivo `AppSpec.yml`.
Por quê: O timeout é configurado por hook no arquivo AppSpec, não no nível do grupo de implantação. Isso garante que o script de validação tenha tempo suficiente para ser concluído.
Acelerar builds lentas de imagens Docker do CodeBuild causadas pelo re-download de dependências e camadas de imagem a cada execução.
→Na configuração do projeto CodeBuild, habilite `LOCAL_DOCKER_LAYER_CACHE` e configure um cache S3 para diretórios de dependência (por exemplo, `.m2`, `node_modules`).
Por quê: Aborda diretamente ambas as causas de lentidão. O cache de camadas Docker reutiliza camadas de imagem inalteradas; o cache S3 reutiliza dependências de aplicativos baixadas.
Implementar uma implantação canário para uma função Lambda com rollback automatizado e baseado em métricas.
→Use o AWS SAM com `DeploymentPreference` (por exemplo, tipo `Canary10Percent5Minutes`). Adicione um alarme do CloudWatch na métrica `Errors` como um gatilho de rollback.
Por quê: O SAM se integra nativamente ao CodeDeploy para Lambda, automatizando a mudança de tráfego de alias, monitoramento e rollback sem scripts personalizados.
Referência↗
Configurar o IAM para um CodePipeline na Conta A para implantar recursos na Conta B.
→A função do pipeline (Conta A) assume uma função de ação (Conta B). A função de ação em B confia na função do pipeline e tem permissões de implantação. O bucket de artefatos S3 e a chave KMS em A devem ter políticas de recurso concedendo acesso à função de ação em B.
Por quê: Este é o padrão de acesso seguro e padrão entre contas: assunção de função para ações, políticas baseadas em recursos para acesso a dados.
Implementar um fluxo de trabalho GitOps para EKS onde o estado do cluster é automaticamente e continuamente reconciliado com um repositório Git.
→Implante um controlador GitOps (por exemplo, Flux, ArgoCD) no cluster EKS. Configure-o para monitorar o repositório Git e aplicar/reconciliar as mudanças.
Por quê: Este é o padrão GitOps "pull-based" padrão. O controlador no cluster lida com a reconciliação contínua e a detecção de drift, que é o princípio central do GitOps.
Permitir que um projeto CodeBuild em uma conta de ferramentas central implante manifestos Kubernetes em clusters EKS em contas de workload separadas.
→Em cada conta de workload, crie uma função IAM entre contas confiada pela função do CodeBuild. Mapeie esta nova função para um grupo RBAC do Kubernetes no ConfigMap `aws-auth` do cluster EKS. O script do CodeBuild assume a função antes de executar `kubectl`.
Por quê: Este é o padrão seguro e padrão para acesso EKS entre contas. Ele segue o princípio do menor privilégio, criando uma função dedicada e confiável para essa finalidade.
Realizar uma migração de esquema complexa para RDS PostgreSQL ou MySQL com tempo de inatividade zero ou próximo de zero.
→Use o recurso Amazon RDS Blue/Green Deployments. Crie um ambiente de staging (verde) sincronizado, aplique as alterações de esquema nele e, em seguida, faça o switchover para promovê-lo à produção.
Por quê: Este é o serviço gerenciado e construído especificamente para atualizações seguras e com tempo de inatividade zero do RDS. Ele lida com clonagem, sincronização e um switchover rápido (< 1 min) com salvaguardas integradas.
Implantar uma nova versão de uma aplicação de página única (SPA) no S3/CloudFront e garantir que os usuários recebam a nova versão imediatamente com custos mínimos de invalidação de cache.
→Use hash baseado em conteúdo para nomes de arquivos de ativos (por exemplo, `app.a1b2c3d4.js`). Após implantar novos ativos, invalide apenas o arquivo `index.html` na distribuição do CloudFront.
Por quê: Nomes de arquivos com hash são únicos, então o CloudFront os trata como novos objetos e os busca da origem, ignorando o cache. Apenas o arquivo de ponto de entrada único (`index.html`) precisa de invalidação, o que é significativamente mais barato do que uma invalidação curinga (`/*`).
Implementar um pipeline CI/CD para uma aplicação AWS CDK que se atualiza automaticamente quando a própria definição do pipeline muda.
→Use o construto CDK Pipelines (`pipelines.CodePipeline`). Este construto cria um pipeline que inclui um estágio `SelfMutate` por padrão.
Por quê: CDK Pipelines é um construto de alto nível construído especificamente para este padrão. O estágio `SelfMutate` garante que o pipeline sempre reflita a definição mais recente do código antes de implantar as alterações da aplicação.
Implantar uma nova versão da aplicação que requer uma mudança de esquema de banco de dados retrocompatível (por exemplo, adição de novas colunas) com tempo de inatividade zero.
→Implemente um padrão de "expandir e contrair" (ou "alteração paralela"). Primeiro, implante as alterações aditivas e retrocompatíveis no esquema do banco de dados. Segundo, implante a nova versão da aplicação que usa o novo esquema. Ambas as versões, antiga e nova, podem coexistir com o banco de dados atualizado.
Por quê: Este padrão desacopla as implantações do banco de dados e da aplicação, garantindo que o estado do banco de dados seja sempre compatível com as versões antiga e nova da aplicação, permitindo assim implantações com tempo de inatividade zero.
Lançar gradualmente um novo recurso para segmentos de usuários específicos e medir o impacto nas métricas de negócio (por exemplo, taxa de conversão) usando testes A/B.
→Use o Amazon CloudWatch Evidently. Crie um recurso com múltiplas variações, um lançamento para controlar a porcentagem de rollout e um experimento para medir o impacto estatístico nas métricas definidas.
Por quê: O Evidently é um serviço construído especificamente para feature flagging e experimentação A/B, fornecendo não apenas o mecanismo de rollout, mas também o motor de análise estatística para medir o impacto.