Desenvolvimento

6 mar, 2017

Payara Micro Cluster autoescalável para Java EE Microservices

Publicidade

Payara Micro é um servidor de aplicação minimalista baseado em GlassFish 4.1 e com suporte para Java EE 7. Tendo apenas 70 MB de espaço, esse servidor é provisionado com o Hazelcast para clustering automático, Payara JCache como um armazenamento de chave-valor, benefícios na API Java embutida e gerenciamento simples, permitindo executar pacotes .war diretamente da linha de comando. O Payara Micro é otimizado para microsserviços e infraestrutura moderna baseada em containeres. Ele pode ser facilmente executado dentro da nuvem, fornecendo clustering automático para aplicações em grande escala JavaEE.

Para tornar a integração Payara Micro Cluster com a plataforma Jelastic fácil e rápida, foi desenvolvida uma solução dedicada pré-empacotada. Ela automatiza todas as etapas de instalação necessárias, permitindo implantar e lançar um Cluster Payara Micro totalmente funcional e altamente escalável em questão de cliques.

Especificações de Jelastic Payara Micro Cluster

O pacote Payara Micro Cluster avançado contém a quantidade mínima necessária de nodes (containers) por padrão, mas inclui todas as ferramentas necessárias para escalonar horizontalmente com base na maior quantidade de tráfego recebido.

Essa solução é construída sobre os containers Docker, alavancando as seguintes imagens:

  • jelastic/payara-micro-cluster – servidor de aplicativos Payara Micro (1 instância por padrão, para ser automaticamente escalada horizontalmente quando a carga aumenta)
  • jelastic/haproxy-managed-lb – balanceador de carga HAProxy, que automaticamente adiciona/remove servidores de aplicação em configurações de balanceamento de carga quando seu número é alterado
  • jelastic/storage – container Dedicated Data Storage para armazenar dados personalizados; por padrão, contém um aplicativo de simulação de carga simples para testar as principais possibilidades de escalonamento do cluster

Como um benefício básico de hospedar no Jelastic Cloud Platform, todos os containers nesse pacote são pré-configurados para serem escalados automaticamente verticalmente (até 16 cloudlets por padrão, o que significa 6400 MHz de CPU e 2048 MiB RAM) com base na carga. Isso permite utilizar o recurso de forma inteligente, usando tanto quanto é atualmente necessário.

Além disso, todos os servidores dentro de um cluster têm alertas de carga especiais habilitados para enviar notificações automaticamente quando a capacidade do container está quase no limite. Isso indica que mais recursos devem ser alocados para um servidor ou devem ser escalados horizontalmente.

Obviamente, todas essas configurações predefinidas podem ser ajustadas às suas necessidades através do dashboard.

Implementação rápida do Payara Micro Cluster

A instalação do Payara Micro Cluster com todas as configurações de escala adicionais representa um processo completamente automatizado – tudo o que você precisa fazer é importar o projeto correspondente da Jelastic JPS Collection no GitHub:

1 – Clique no botão Importar no painel superior do dashboard e insira o link manifest.jps na guia URL:

https://github.com/jelastic-jps/payara/blob/master/payara-micro-cluster-advanced/manifest.jps

Clique em Importar na parte inferior do frame para prosseguir.

2 – Na janela de confirmação apresentada, especifique alguns parâmetros de ambiente gerais para o seu cluster:

  • Ambiente – digite o nome do ambiente desejado para ser usado como um domínio interno
  • Nome de exibiçãoalias que será exibido para o ambiente dentro do dashboard
  • Região – selecione a região de hardware preferível (se disponível)

Clique em Instalar para prosseguir.

3 – Aguarde alguns minutos até que o Jelastic crie automaticamente todas as instâncias necessárias e configure o cluster para automação futura.

É isso aí! O Payara Micro Cluster com escala automatizada out-of-box está implantado com sucesso e pronto para o trabalho. Agora, vamos verificar como ele pode lidar com o tráfego de intensidade variada.

Teste de carga e dimensionamento do Payara Cluster

O pacote Advanced Payara Micro Cluster é fornecido com uma aplicação de teste de carga incorporado, que inclui opções separadas para carregamento de RAM e de CPU. Essa ferramenta está fisicamente localizada no node Armazenamento e é montada automaticamente na camada do servidor de aplicativos após a instalação do cluster.

Com essa ajuda, você pode descobrir as possibilidades de escala de cluster e verificar seu comportamento em condições reais de carga variável. Para abrir o teste de carga, acesse o seguinte link usando o nome de domínio apropriado (interno ou personalizado):

http://{env.domain}/loader

Dependendo do tipo de recurso para o qual você gostaria de simular a carga (RAM ou CPU), preencha os parâmetros necessários:

  • Load – quantidade de recursos a gerar (em% para a RAM e threads para a CPU)
  • Duração – tempo de teste (em segundos)

Clique em Executar para a seção apropriada.

1 – Então, vamos lançar os testes um por um (vamos usar as configurações da imagem acima) e explorar o efeito que causam:

  • O teste CPU será executado em apenas 2 threads para simular condições regulares de servir alguns usuários e verificar a escalabilidade automática vertical. A carga média nesse caso é igual a 11 cloudlets – isso corresponde a aproximadamente 4400 MHz de consumo de CPU.

  • Para o teste RAM, aplicaremos a carga moderada (por exemplo, 80% da memória alocada) para aumentar o número de ocorrências do Payara Micro devido à escalabilidade horizontal automática sendo acionada.

Quando o carregamento estiver concluído, você verá a string de caracteres “Calling GC”, que significa arbage Сollection iniciando como parte do teste. Essa ferramenta de gerenciamento de memória JVM automaticamente detecta a quantidade de RAM que não é mais necessária (no nosso caso, ela foi usada para lidar com simulação de carga) e a libera para reduzir o gasto.

2 – Para ver o resultado, você pode consultar a seção do dashboard Statistics para seu cluster Payara e seguir as alterações de carga visualmente, em forma de gráficos. Com isso, tenha em mente que eles são construídos com base em valores médios para o Intervalo escolhido, assim picos de diagrama podem diferir ligeiramente da saída de teste de texto.

O gráfico de carga da CPU (o da esquerda) geralmente corresponde aos valores de consumo recebidos durante o teste – tal carga pode ser facilmente tratada por um único container Payara Micro.

Quanto ao gráfico de RAM verde, seu valor máximo atinge aproximadamente 1500 MiB – isso implica a execução do correspondente gatilho de escalonamento horizontal de Memória predefinido, de modo que a quantidade de containers Payara Micro é aumentada automaticamente.

Dica: Referindo-se à seção Configurações> Monitoramento> Auto Escala Horizontal do ambiente, é possível sintonizar qualquer um dos disparadores existentes ou adicionar novas condições de escala:

3 – Além disso, para acompanhar os resultados da escala horizontal durante a execução dos testes, você pode usar as seguintes ferramentas embutidas no dashboard Jelastic:

  • a seção Monitoring > Events History no ambiente Configurações armazena detalhes sobre operações de escala que foram executadas automaticamente com base em disparos de escala pré-configurados:

Como você pode ver, o cluster expandiu até 2 nodes Payara Micro durante o teste que nós tratamos e retornamos à topologia do servidor de aplicação único quando a carga caiu.

  • a seção Log permite rastrear o que realmente acontece no seu Payara Micro Cluster durante essa escala de entrada/saída. Em particular, você pode consultar:

lb_manager.log no node HAProxy para ver os novos hosts sendo automaticamente adicionados/removidos do roteador do balanceador de carga

  • run.log  dentro da camada do servidor de aplicação para rastrear as atividades de cluster em andamento

Além disso, você será notificado sobre todas as alterações de escala com as mensagens de e-mail correspondentes.

Dessa forma, você pode ter certeza de que um aplicativo Java dentro do seu cluster Payara será capaz de lidar com a quantidade diversificada de tráfego de entrada sem a necessidade de estar sempre atento à sua mudança. Além disso, isso será feito com a maior eficiência – adicionando automaticamente novos recursos & servidores em picos de carga e removendo os redundantes durante o tempo de inatividade, livrando você de qualquer confusão de reconfiguração manual. Basta experimentá-lo com duas semanas de teste gratuito em um dos nossos inúmeros parceiros.

Tem dúvidas ou comentários para futuras melhorias? Precisa de alguma ajuda adicional com a instalação ou hospedagem de pacotes? Deixe-nos saber com um comentário abaixo ou consulte a ajuda de nossos especialistas técnicos em Stack Overflow.

***

Tetiana Markova faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://blog.jelastic.com/2017/02/21/payara-micro-auto-scalable-cluster-for-javaee-microservices/.