Atividades de pré-implantação - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Atividades de pré-implantação

Design de ambiente

O ambiente no qual você testa e avalia seu aplicativo afeta a profundidade com que você pode testá-lo e a confiança que você tem de que esses resultados refletem com precisão o que acontecerá na produção. Talvez você possa realizar alguns testes de integração localmente em máquinas de desenvolvedores usando serviços como o Amazon DynamoDB (consulte Como configurar o DynamoDB local na documentação do DynamoDB). No entanto, em algum momento, você precisará testar em um ambiente que replique seu ambiente de produção para obter a maior confiança em seus resultados. Esse ambiente gerará custos, por isso recomendamos que você adote uma abordagem em etapas ou em pipeline em seus ambientes, em que ambientes semelhantes aos de produção apareçam posteriormente.

Teste de integração

O teste de integração é o processo de testar se um componente bem definido de um aplicativo executa suas funções corretamente quando opera com dependências externas. Essas dependências externas podem ser outros componentes desenvolvidos de forma personalizada, AWS serviços que você usa para seu aplicativo, dependências de terceiros e dependências locais.  Este guia se concentra em testes de integração que demonstram a resiliência do seu aplicativo. Ele pressupõe que já existam testes unitários e de integração que demonstrem a precisão funcional do seu software.

Recomendamos que você projete testes de integração que testem especificamente os padrões de resiliência que você implementou, como padrões de disjuntores ou redução de carga (consulte Etapa 2: Projeto e implementação). Os testes de integração orientados à resiliência geralmente envolvem a aplicação de uma carga específica ao aplicativo ou a introdução intencional de interrupções no ambiente usando recursos como ().AWS Fault Injection ServiceAWS FIS Idealmente, você deve executar todos os testes de integração como parte do seu pipeline de CI/CD e garantir a execução de testes sempre que o código for confirmado. Isso ajuda você a detectar e reagir rapidamente a quaisquer alterações no código ou nas configurações que resultem em violações de seus objetivos de resiliência. Aplicativos distribuídos em grande escala são complexos, e até mesmo pequenas alterações podem afetar significativamente a resiliência de partes aparentemente não relacionadas do seu aplicativo. Tente executar seus testes em cada commit. AWS fornece um excelente conjunto de ferramentas para operar seu pipeline de CI/CD e outras DevOps ferramentas. Para obter mais informações, consulte Introdução ao DevOps AWS on no AWS site.

Pipelines de implantação automatizados

A implantação e o teste em seus ambientes de pré-produção é uma tarefa repetitiva e complexa que é melhor deixar para a automação. A automação desse processo libera recursos humanos e reduz a oportunidade de erro. O mecanismo para automatizar esse processo geralmente é chamado de pipeline. Ao criar seu pipeline, recomendamos que você configure uma série de ambientes de teste que se aproximem cada vez mais da sua configuração de produção. Você usa essa série de ambientes para testar repetidamente seu aplicativo. O primeiro ambiente fornece um conjunto de recursos mais limitado do que o ambiente de produção, mas tem um custo significativamente menor. Ambientes subsequentes devem adicionar serviços e escalabilidade para espelhar mais de perto o ambiente de produção.

Comece testando no primeiro ambiente. Depois que suas implantações passarem por todos os testes no primeiro ambiente de teste, deixe o aplicativo ser executado sob certa quantidade de carga por um período de tempo para ver se algum problema ocorre ao longo do tempo. Confirme se você configurou a observabilidade corretamente (consulte Precisão do alarme mais adiante neste guia) para que você possa detectar quaisquer problemas que surjam. Quando esse período de observação for concluído com êxito, implante seu aplicativo em seu próximo ambiente de teste e repita o processo, adicionando testes ou cargas adicionais conforme suportado pelo ambiente. Depois de testar suficientemente seu aplicativo dessa forma, você pode usar os métodos de implantação configurados anteriormente para implantar o aplicativo na produção (consulte Definir estratégias de CI/CD anteriormente neste guia). O artigo Automatizando implantações seguras e sem intervenção na Amazon Builders' Library é um excelente recurso que descreve como a Amazon automatiza a implantação de código. O número de ambientes que precedem sua implantação de produção variará, dependendo da complexidade do seu aplicativo e dos tipos de dependências que ele tem.

Testes de carga

Superficialmente, o teste de carga se assemelha ao teste de integração. Você testa uma função discreta do seu aplicativo e suas dependências externas para verificar se ele funciona conforme o esperado. O teste de carga então vai além do teste de integração para se concentrar em como o aplicativo funciona sob cargas bem definidas. O teste de carga exige a verificação da funcionalidade correta, portanto, ele deve ocorrer após um teste de integração bem-sucedido. É importante entender o quão bem o aplicativo responde sob as cargas esperadas e como ele se comporta quando a carga excede as expectativas. Isso ajuda a verificar se você implementou os mecanismos necessários para garantir que seu aplicativo permaneça resiliente sob carga extrema. Para obter um guia abrangente sobre testes de carga em AWS, consulte Teste de carga distribuído AWS ativado na Biblioteca de AWS soluções.