Entendendo os modos de execução do Wildfly para aplicativos Java

Entendendo os modos de execução do Wildfly para aplicativos Java

Qual modo usar?

É comum que ao escolhermos a utilização de uma plataforma de middleware como o Wildfly para a execução de nossos aplicativos Java, nos deparamos com a seguinte questão:

“Qual modo de execução utilizar?”

Como quase tudo no mundo da TI a resposta é depende!

O Wildfly possui 2 modos de execução, o domain e o standalone, e todo o seu cenário irá influenciar na escolha que deve ser feita, para ajudar na escolha algumas perguntas podem facilitar a decisão:

  • Qual a quantidade de instâncias necessárias para o ambiente?
  • Será preciso um gerenciamento centralizado e controle de configuração?
  • Será preciso um ponto único e controlável de deployment das aplicações?
  • As instâncias estarão espalhadas por diversas máquinas?

Com certeza respondendo essas perguntas você já terá um boa noção do que precisa, e para isso vamos entender melhor o que difere cada modo de execução.

 

Wildfly – Standalone

O modo standalone, como o próprio nome sugere é uma instância única onde o Wildfly irá prover todos os recursos necessários para a execução do seu aplicativo java. Este módulo utiliza toda a estrutura de arquivos do Wildfly para si, assim não é possível executar outra instância utilizando a mesma estrutura, será necessário outro diretório standalone para realizar a execução de outra JVM.

Para o modo standalone ainda é possível contar com perfis de execução que são separados cada um em um arquivo xml diferente, estes podem ser escolhidos no momento da execução, onde pode-se escolher entre:

PerfilArquivo de configuraçãoUtilização
Webstandalone.xmlPermite o uso do perfil Java EE Web
Fullstandalone-full.xmlPermite o uso do perfil Java EE Full
Web c/ HAstandalone-ha.xmlPermite o uso do perfil Java EE Web com características de HA
Full c/ HAstandalone-full-ha.xmlPermite o uso do perfil Java EE Full com características de HA

Os detalhes de cada perfil e exemplos de uso serão detalhados em um outro post.

Dessa forma vemos que neste modo o gerenciamento, deploy dos aplicativos e manutenção são individuais para cada instância tornando este trabalho custoso caso você tenha diversas instâncias para administrar.

 

Wildfly – Domain

Já neste modo é possível ter uma instância centralizadora que terá a função de “domain controller”, e as instâncias que irão receber as instruções que terão a função apenas de “host controller”. Com o modo domain temos um ponto único de gerenciamento onde toda configuração realizada no “domain controller” é distribuída para as outras instâncias, evitando assim que uma nova instância seja criada com uma configuração indevida, terá também um ponto único de deploy dos aplicativos e pela configuração realizada o “domain controller” se encarregará de distribuir o artefato somente para as instâncias configuradas para recebê-lo.

Este modo, assim como o standalone também possui os mesmos perfis de execução, porém há uma diferença no nome e este é passado através da configuração e não de arquivos como no modo standalone. As opções são:

PerfilNome do ProfileUtilização
WebdefaultPermite o uso do perfil Java EE Web
FullfullPermite o uso do perfil Java EE Full
Web c/ HAhaPermite o uso do perfil Java EE Web com características de HA
Full c/ HAfull-haPermite o uso do perfil Java EE Full com características de HA

Sabemos então que com o modo domain caso tenhamos diversas instâncias ou um ambiente onde é necessário um controle maior de gerenciamento, este modo irá facilitar muito mais o trabalho do administrador.

 

Conclusão

Com base nessas informações, podemos responder as perguntas e chegar a uma conclusão que o modo standalone pode ser a melhor escolha para um ambiente tanto de desenvolvimento rápido e ágil como de produção por ter uma configuração e execução mais simples fazendo com que o ambiente seja disponibilizado mais rapidamente, porém se seu cenário requerer diversas instâncias em diversos hosts isto pode se tornar um calcanhar de Aquiles, fazendo com que a gestão seja trabalhosa, dificultando as tarefas diárias.

Assim, para um cenário mais robusto e/ou com políticas rigorosas de gerenciamento e controle de acesso, o modo domain seria o mais indicado por prover toda a gestão concentrada em um único ponto, gerando facilidade, agilidade e rapidez para o administrador destas instâncias gerenciar os serviços e realizar as tarefas diárias.

Esta é apenas uma leitura sintetizada sobre os modos de operação do Wildfly, nos próximos posts iremos aprofundar e ver mais detalhes sobre cada modo, seus perfis e casos de uso.

Até a próxima!

 

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

 

 

Anterior Investir na Qualificação dos Colaboradores: A Chave para a Competitividade Empresarial
Próxima 4Linux: Retomada segura e gradual dos cursos presenciais em meio à pandemia

About author

Ricardo Caeiro
Ricardo Caeiro 6 posts

Ricardo Caeiro é formado em Redes de Computadores pela BandTec, MBA DevOps Engineering pela FIAP, possui mais de 10 anos de experiência na área da tecnologia da informação, já atuou em diversas frentes da área e hoje realiza consultoria e treinamento de tecnologias de software livre com ênfase em middleware e cultura DevOps.

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Entenda o Processo de Consulta SQL no Sistema Gerenciador de Banco de Dados Postgres

Sempre que utilizamos o Sistema Gerenciador de Banco de Dados (SGBD) Postgres ou PostgreSQL, o foco principal de sua utilização é a realização de consultas (Querys), afinal de nada adiantaria

Infraestrutura TI

Guia para atualizar o AWS Load Balancer Controller após migração do Kubernetes 1.21 para 1.22

Após atualizar o cluster do Kubernetes da versão 1.21 para a 1.22, você pode precisar atualizar o AWS Load Balancer Controller (anteriormente conhecido como ALB Ingress Controller) para garantir que

Infraestrutura TI

Desvendando a Lógica de Programação: Como ela impacta nosso dia a dia

Quando começamos a aprender a programar, nos deparamos com muitas coisas que, para muitos, são novas. Conceitos como variáveis, memória, escopo, interfaces, entre outros. Também nos deparamos com conceitos que