REL07-BP01: Usar automação ao obter ou escalar recursos
A base da confiabilidade na nuvem é a definição programática, o provisionamento e o gerenciamento de sua infraestrutura e recursos. A automação ajuda você a otimizar o provisionamento de recursos, facilitar implantações consistentes e seguras e escalar recursos em toda a sua infraestrutura.
Resultado desejado: você gerencia sua infraestrutura como código (IaC). Você define e mantém seu código de infraestrutura em sistemas de controle de versão (VCS). Você delega o provisionamento de recursos da AWS a mecanismos automatizados e aproveita serviços gerenciados, como Application Load Balancer (ALB), Network Load Balancer (NLB) e grupos do Auto Scaling. Você provisiona seus recursos usando pipelines de integração contínua/entrega contínua (CI/CD) para que as alterações do código iniciem automaticamente as atualizações dos recursos, incluindo as atualizações das configurações do Auto Scaling.
Práticas comuns que devem ser evitadas:
-
Implantar recursos manualmente usando a linha de comandos ou pelo AWS Management Console (também conhecido como click-ops).
-
Acoplar fortemente os componentes ou recursos da aplicação e, como resultado, criar arquiteturas inflexíveis.
-
Implementar políticas de escalabilidade inflexíveis que não se adaptam às mudanças nos requisitos de negócios, aos padrões de tráfego ou aos novos tipos de recursos.
-
Estimar manualmente a capacidade para atender à demanda prevista.
Benefícios de implementar essa prática recomendada: a infraestrutura como código (IaC) permite que a infraestrutura seja definida de maneira programática. Isso ajuda você a gerenciar as mudanças na infraestrutura por meio do mesmo ciclo de vida de desenvolvimento de software das alterações nas aplicações, o que promove consistência e repetibilidade e reduz o risco de tarefas manuais propensas a erros. Você pode simplificar ainda mais o processo de provisionamento e atualização de recursos por meio da implementação de IaC com pipelines de entrega automatizados. Você pode implantar atualizações de infraestrutura de forma confiável e eficiente sem a necessidade de intervenção manual. Essa agilidade é particularmente importante ao escalar recursos para atender às demandas flutuantes.
Você pode alcançar uma escalabilidade dinâmica e automatizada de recursos em conjunto com IaC e pipelines de entrega. Ao monitorar as principais métricas e aplicar políticas de escalabilidade predefinidas, o Auto Scaling pode provisionar ou desprovisionar recursos automaticamente conforme necessário, o que melhora o desempenho e a economia. Isso reduz o potencial de erros manuais ou atrasos em resposta às mudanças nos requisitos da aplicação ou da workload.
A combinação de IaC, pipelines de entrega automatizados e Auto Scaling ajuda as organizações a provisionar, atualizar e escalar seus ambientes com confiança. Essa automação é essencial para manter uma infraestrutura de nuvem responsiva, resiliente e gerenciada com eficiência.
Nível de risco exposto se esta prática recomendada não for estabelecida: Alto
Orientação para implementação
Para configurar a automação com pipelines de CI/CD e infraestrutura como código (IaC) para sua arquitetura da AWS, escolha um sistema de controle de versão, como o Git, para armazenar modelos e configurações de IaC. Esses modelos podem ser escritos usando ferramentas como AWS CloudFormation
Depois, integre esses modelos de IaC a um pipeline de CI/CD para automatizar o processo de implantação. O AWS CodePipeline
Configure o ajuste de escala automático dos recursos, como instâncias do Amazon EC2, tarefas do Amazon ECS e réplicas de banco de dados, na IaC para aumentar e reduzir horizontalmente a escala de forma automática, conforme necessário. Essa abordagem aprimora a disponibilidade e o desempenho das aplicações e otimiza os custos ajustando dinamicamente os recursos com base na demanda. Para conferir uma lista dos recursos compatíveis, consulte Amazon EC2 Auto Scaling e AWS Auto Scaling.
Etapas de implementação
-
Crie e use um repositório de código-fonte para armazenar o código que controla sua configuração de infraestrutura. Confirme as alterações nesse repositório para refletir as alterações em andamento que você queira fazer.
-
Selecione uma solução de infraestrutura como código, como o AWS CloudFormation, para manter a infraestrutura atualizada e detectar inconsistências (desvios) em relação ao estado pretendido.
-
Integre sua plataforma de IaC ao seu pipeline de CI/CD para automatizar as implantações.
-
Determine e colete as métricas apropriadas para o ajuste de escala automático de recursos.
-
Configure o ajuste de escala automático dos recursos usando políticas de aumento e redução horizontal da escala para os componentes da workload. Considere usar a escalabilidade programada para padrões de uso previsíveis.
-
Monitore as implantações para detectar falhas e regressões. Implemente mecanismos de reversão em sua plataforma de CI/CD para reverter as alterações, se necessário.
Recursos
Documentos relacionados:
Vídeos relacionados: