REL 8: Como você implementa uma alteração?
As alterações controladas são necessárias para implantar novas funcionalidades e garantir que as cargas de trabalho e o ambiente operacional executem softwares conhecidos e possam ser corrigidos ou substituídos de maneira previsível. Se essas alterações forem descontroladas, será difícil prever o efeito ou resolver problemas decorrentes delas.
Recursos
AWS Summit 2019: CI/CD on AWS
What Is AWS CodePipeline?
What Is CodeDeploy?
Overview of a Blue/Green Deployment
Deploying Serverless Applications Gradually
The Amazon Builders' Library: Ensuring rollback safety during deployments
The Amazon Builders' Library: Going faster with continuous delivery
Well-Architected lab: Level 300: Testing for Resiliency of EC2 RDS and S3
CanaryRelease
AWS Marketplace: products that can be used to automate your deployments
APN Partner: partners that can help you create automated deployment solutions
Melhores práticas:
-
Use runbooks para atividades padrão, como implantação: Os runbooks são as etapas predefinidas usadas para atingir resultados específicos. Use-os para executar atividades padrão, sejam elas feitas manualmente ou automaticamente. Os exemplos incluem a implantação de uma carga de trabalho, a aplicação de patches a ela ou a realização de modificações de DNS.
-
Integre testes funcionais como parte da sua implantação: Os testes funcionais são executados como parte da implantação automatizada. Se os critérios de êxito não forem atendidos, o pipeline será interrompido ou revertido.
-
Integre testes de resiliência como parte da sua implantação: Os testes de resiliência (como parte da engenharia do caos) são executados como parte do pipeline de implantação automatizado em um ambiente de pré-produção.
-
Faça a implantação com uma infraestrutura imutável: Esse é um modelo que não requer atualizações, patches de segurança ou alterações de configuração nas cargas de trabalho de produção. Quando uma alteração é necessária, a arquitetura é criada em uma nova infraestrutura e implantada na produção.
-
Implante alterações com automação: As implantações e a aplicação de patches são automatizadas para eliminar o impacto negativo.
Plano de melhoria
Use runbooks para atividades padrão, como implantação
AWS Well-Architected Framework: Concepts: Runbook
- Use o AWS CloudFormation (ou um provedor terceirizado confiável) para definir sua
infraestrutura.
What is AWS CloudFormation? - Use bons princípios de design de software para criar modelos exclusivos e desacoplados.
- Determine as permissões, os modelos e partes responsáveis pela implementação
Controlling access with AWS Identity and Access Management - Use o controle de origem, como o AWS CodeCommit ou uma ferramenta de terceiros confiável,
para controle de versão.
What is AWS CodeCommit?
- Determine as permissões, os modelos e partes responsáveis pela implementação
Integre testes funcionais como parte da sua implantação
- Invoque o AWS CodeBuild durante a "ação de teste" dos pipelines de lançamento de software
baseados no AWS CodePipeline. Esse recurso permite que você execute facilmente uma
variedade de testes em seu código, como testes de unidade, análises de código estático
e testes de integração.
AWS CodePipeline Adds Support for Unit and Custom Integration Testing with AWS CodeBuild - Use as soluções do AWS Marketplace para executar testes automatizados como parte do
pipeline de entrega de software.
Software test automation
Integre testes de resiliência como parte da sua implantação
- Os testes de resiliência injetam falhas ou degradação de recursos para avaliar se
a carga de trabalho responde com a resiliência projetada
Well-Architected lab: Level 300: Testing for Resiliency of EC2 RDS and S3 - Esses testes podem ser executados regularmente em ambientes de pré-produção nos pipelines de implantação automatizados.
- Eles também devem ser executados em produção, como parte dos dias de jogo programados.
- Ao adotar os princípios da engenharia do caos, proponha hipóteses de como a carga
de trabalho será executada sob várias condições adversas e, em seguida, teste essas
hipóteses por meio dos testes de resiliência.
Principles of Chaos Engineering
Faça a implantação com uma infraestrutura imutável
Overview of a Blue/Green Deployment
Deploying Serverless Applications Gradually
CanaryRelease
Implante alterações com automação
The Amazon Builders' Library: Ensuring rollback safety during deployments
The Amazon Builders' Library: Going faster with continuous delivery
- Use o AWS CodePipeline (ou um produto de terceiros confiável) para definir e executar
seus pipelines.
- Configure o pipeline para ser iniciado quando uma alteração for confirmada no repositório
do seu código.
What is AWS CodePipeline? - Use o Amazon Simple Notification Service (SNS) e o Amazon Simple Email Service (SES)
para enviar notificações referentes a problemas no pipeline ou integrar-se a uma ferramenta
de chat em equipe, como o Amazon Chime.
What is Amazon Simple Notification Service?
What is Amazon SES?
What is Amazon Chime?
Automate chat messages with webhooks.
- Configure o pipeline para ser iniciado quando uma alteração for confirmada no repositório
do seu código.