O que é auto escalonamento?
O dimensionamento automático é um método associado à computação em nuvem que aumenta ou diminui automaticamente o número de recursos que você tem em sua aplicação, a qualquer momento de acordo com suas necessidades. Antes de usar a computação em nuvem, era muito difícil dimensionar automaticamente uma instalação de servidor. Em um ambiente de hospedagem física, seus recursos de hardware são limitados, então experimentaremos a degradação de desempenho no aplicativo, ou nosso aplicativo falhará.
Hoje, a computação em nuvem torna possível criar uma configuração de servidor escalável. Se o aplicativo precisar de mais poder de processamento, o dimensionamento automático oferece aos usuários a capacidade de usar e encerrar recursos adicionais conforme necessário. O dimensionamento automático fornece uma maneira eficiente de usar os recursos apenas quando necessário, garante que seu aplicativo tenha a capacidade quando a demanda aumenta/diminuiu e, o mais importante, poupando você de pagar potencialmente por mais do que sua organização precisa. Vamos nos aprofundar no dimensionamento automático, como ele funciona e nos benefícios que oferece às organizações.
Por que o dimensionamento automático é necessário
O dimensionamento automático é muito funcional quando o aplicativo precisa de recursos adicionais do servidor para acomodar o número de solicitações ou renderização de páginas. Ele oferece uma capacidade escalável para dimensionar ou encolher automaticamente para atender às suas necessidades. O dimensionamento automático oferece as seguintes vantagens:
- O dimensionamento automático permite que alguns servidores entrem no modo de sono durante os tempos de baixa carga, reduzindo os custos.
- Maior tempo de atividade e maior disponibilidade onde as cargas de trabalho variam.
- No site front-end, ele fornece a capacidade de dimensionar com base no número de solicitações recebidas.
- Na parte de trás, ele fornece escala com base no número de empregos e há quanto tempo os empregos estão na fila na fila.
Usando o LoadView para garantir que o dimensionamento automático funcione corretamente
LoadView é uma solução de teste de carga baseada na Web que pode testar tudo, desde APIs e páginas da Web, até cenários complexos de usuários em aplicativos web internos/externos. Loadview compartilha com os testes que executa relatórios que ajudam a encontrar problemas e falhas que retardam ou atrasam nosso sistema. Ao carregar páginas da Web de teste de carga, por exemplo, você pode testar uma página específica contra centenas a milhares de usuários simultâneos para ver como a página se sai sob níveis específicos de carga.
Ao testar os caminhos do usuário, o LoadView, juntamente com o EveryStep Web Recorder,transforma sua tela em um script para testar interações em tempo real com aplicativos, capturando todas as ações realizadas e podendo ser reproduzida sob carga.
Configuração do LoadView
Por exemplo, vamos testar uma aplicação interna. Ao testar aplicações internas, os endereços IP devem ser listados na lista branca antes de realizar testes de carga em aplicações internas. Através da carga Injectors, podemos whitelist IPs e realizar testes com contra inúmeros usuários simultâneos.
A página principal do LoadView é aberta, e você verá várias opções diferentes,como Aplicativos web, APIs, Páginas da Web, Streaming Media,etc. Vamos selecionar a opção Página da Web.
Uma nova página é aberta onde podemos adicionar o tempo desejado para executar o teste de carga, adicionar nosso nome interno de host, nosso navegador, etc. Depois de inserir seus detalhes, clique no botão Criar dispositivo.
Depois de criar com sucesso um dispositivo, você verá a tela do cenário de teste onde você pode definir e definir o tipo de carga, os locais do injetor de carga, etc. Em seguida, selecionaremos a opção Curva de passo de carga.
O LoadView começará a verificar se você tem acesso ao aplicativo interno. Selecione Proxy estático e inclua seus IPs na lista branca e selecione Adicionar zonas para escolher as regiões onde queremos o tráfego gerado. Na verdade, a plataforma LoadView pode ajudar a testar aplicativos web, páginas da Web, APIs e outros serviços web que residem apenas dentro de sua rede, atrás do firewall.
Os usuários do LoadView têm algumas opções para selecionar, como listar endereços IP ou instalar um Agente no local se as organizações não puderem abrir sua rede para tráfego de entrada por razões de segurança. Para obter mais informações sobre testes de carga por trás de um firewall,visite nossa Base de Conhecimento.
Quando concluído, selecione Iniciar Teste. Precisamos encontrar IPs estáticos na parte da Lista de Agentes a partir desta tela; Carregue os criadores para acesso a aplicativos internos que precisam ser levados para a lista branca. Você pode encontrar os IPs estáticos na Lista de Agentes nesta tela para ter acesso a aplicativos internos que precisam ser levados para a lista branca.
Enquanto o teste estiver sendo executado, os injetores recuperam novos endereços IP exclusivos da lista branca todas as vezes. Podemos ver o desempenho através de painéis e gráficos dos testes que criamos em nossa aplicação, tomando os IPs estáticos na lista branca. Um exemplo é mostrado abaixo.
Número médio paralelo de usuários com gráfico de tempo de resposta média.
Monitore recursos adicionais no AWS à medida que a carga aumenta
Métricas do CloudWatch
Com o CloudWatch, podemos obter estatísticas sobre dados. Usamos métricas para verificar se nosso sistema está funcionando como esperado. Você pode criar alarme CloudWatch para rastrear uma métrica específica e receber notificações de alarme no seu e-mail. O balanceamento de carga só reporta dados ao CloudWatch quando as solicitações passam pelo balanceador de carga e mede métricas de Balanceamento de Carga Elástica a cada minuto e as envia para o CloudWatch.
Exibir métricas do CloudWatch para o seu balanceador de carga
Você pode visualizar as métricas do CloudWatch de seus balanceadores de carga usando o console EC2. Se o balanceador de carga estiver ativado e recebendo solicitações, poderemos visualizar os pontos de dados.
Logs de acesso
Através de registros de acesso, podemos analisar o tráfego e usá-los para corrigir nossos problemas. Também podemos armazenar solicitações que fazemos ao nosso balanceador de carga no Amazon S3 como arquivos de log.
Rastreamento de solicitação
O balanceador de carga adiciona um identificador de rastreamento para cada solicitação que recebe, para que você possa monitorar as solicitações HTTP.
Registros CloudTrail
Com o CloudTrail, registros de transações feitas pelas contas de todos os usuários podem ser seguidos. Desta forma, você pode gerenciar solicitações de autorização e acesso.
Garantindo a degradação da experiência do usuário com o dimensionamento automático
O CloudWatch Synthetics permite monitorar o desempenho do usuário. Ele fornece uma melhor visão geral do desempenho e da usabilidade, para que você possa detectar problemas mais cedo e responder mais rapidamente, aumentando assim o prazer do cliente e certificando-se de que seu aplicativo possa responder melhor às solicitações. Canários estão acostumados a nos deixar com aviso prévio. Para uso canário, clicamos em Canários no Console CloudWatch onde podemos observar o status de todos os canários em uma única tela.
Vamos examinar como os canários estão se saindo nos dados. Para isso, quando examinamos pontos de dados individuais na seção canária em execução, você pode ver que cada ponto datum é a soma dos estudos realizados para um canário.
Na captura de tela abaixo, você pode ver que há um assunto timeoutError por 24 horas. Também podemos ver capturas de tela obtidas com arquivos e logs HAR. Em cada registro har vemos os tempos decorridos para respostas e solicitações e solicitações HTTP feitas para Canary.
As tarefas canárias são feitas usando funções lambda. A partir da guia Métricas, você pode acessar as métricas de execução da função.
Chocando um Canário
Para criar um canário, pressionamos o canário para criá-lo. Podemos selecionar nas caixas de seleção, carregar o script existente ou importar do Amazon S3.
Como resultado dos métodos que criamos, a execução do script uma vez ou executada periodicamente é criada. Podemos usar os métodos GET ou PUT, cabeçalhos HTTP solicitados ao criar canários para pontos finais de API. Também podemos criar nosso processo de construção canária via GUI. Podemos facilmente dar nossas características canárias. Os scripts canários usam o tempo de operação do syn-1.0. Você pode ver o roteiro de amostra abaixo.
Dentro dos scripts, podemos ver resultados e erros bem-sucedidos como exceções. Criamos o período de retenção de dados para o script. Escolhemos o balde S3 para as estruturas que serão formadas após cada obra do nosso canário. Durante a criação do nosso canário, também podemos definir algumas das facilidades, como a função IAM (Identity and Access Management), CloudWatch Alarms, VPC (Virtual Private Cloud) Configurações e Tags.
Conclusão: Testando o dimensionamento automático na AWS
Para evitar que nossos usuários sejam afetados negativamente devido à degradação, podemos usar o Canary para detectar os possíveis problemas antes dos usuários, registrá-los e intervir em estágios anteriores e respondê-los mais rapidamente. Além disso, graças aos alarmes fornecidos em nossos canários podemos aumentar as fontes quando necessário, o que também evita que os usuários sejam afetados negativamente.
Ainda mais, a fim de maximizar a satisfação do cliente e garantir que seus aplicativos possam responder melhor às solicitações, o CloudWatch Synthetics, combinado com a plataforma LoadView, pode ajudá-lo a obter uma melhor visão geral do desempenho e da usabilidade e garantir que o dimensionamento automático esteja funcionando conforme o pretendido durante os testes de carga.
Inscreva-se para a avaliação gratuita do LoadView e inicie testes de desempenho para todas as suas páginas da Web, aplicativos e APIs hoje.
Ou se você quiser ver a solução LoadView em ação primeiro, inscreva-se e qualquer outra pessoa em sua equipe, para uma demonstração privada com um de nossos engenheiros de desempenho. Eles fornecerão uma demonstração abrangente, cobrindo tudo, desde a criação e edição de scripts de teste de carga, até a configuração e execução dos cenários de teste de carga e análise de relatórios. Agende sua demonstração.