No atual mercado de software, a agilidade e a eficiência de operações em ambientes nativos de nuvem se tornaram essenciais. Em resposta a essa demanda, a Red Hat apresentou em 2019 o Quarkus, um framework Java que se destaca como uma inovação direcionada ao universo Cloud Native, especialmente na utilização do Kubernetes.
O Quarkus foi concebido com uma arquitetura que prioriza a integração perfeita com o Kubernetes, diferenciando-o nesse aspecto de outros frameworks. Essa distinção não se limita apenas à tecnologia, visto que o Quarkus já se integra com diversos outros ecossistemas, incluindo Hibernate, Spring, bancos de dados e muitos outros.
Um dos atributos mais marcantes do Quarkus reside na otimização de recursos do servidor. Ao viabilizar o início e reinício instantâneo de aplicações, o framework demonstra uma gestão superior de memória e processamento. Um desafio clássico do Java sempre foi seu acoplamento à JVM, que, em ambientes de contêineres, muitas vezes, apresentava deficiências no gerenciamento de memória. O Quarkus surge como uma resposta a esse obstáculo, conferindo ao Java a capacidade de operar em perfeita integração com os contêineres, alinhando-se assim a outras linguagens de programação desenvolvidas desde o início com o paradigma de contêineres.
Um requisito fundamental do Quarkus é a utilização da versão 11 ou superior do Java, uma escolha explicada por resultados mais satisfatórios na interação com contêineres. A arquitetura do Quarkus foi elaborada para promover escalabilidade e elasticidade. A administração flexível de nós e recursos, se traduz em um processo de inicialização e atualização de aplicações extremamente eficiente.
A gestão de memória do Quarkus foi possível pela executando processos em tempo de build, onde atualmente são realizados em tempo de execução. Esse redirecionamento resultou em uma operação mais veloz do tempo de execução e em uma alocação menor de memória. Porém ainda vai depender de uma gestão de memória por parte do desenvolvedor, pois se houver uma utilização descontrolada de variáveis e armazenamento de registros em tempo de execução, essa utilização de memória poderá aumentar comparado com aplicação em que essa preocupação é natural para os devs, porém ainda assim será menor comparado com aplicações utilizadas em servidores jvm.
Um dos atributos mais impactantes do Quarkus é a sua compatibilidade com a linguagem Java convencional. Possibilitando a integração com uma quantidade enorme de frameworks como Hibernate, SpringBoot, Redis, Banco de dados, Kafka entre outros.
A grande dúvida dos desenvolvedores é a escolha entre o Spring Boot e o Quarkus, bem como outros frameworks. Entretanto, essa dúvida some ao considerar a capacidade do Quarkus de hospedar esses frameworks de forma nativa e integrada. Com essa abordagem, é possível aproveitar os benefícios de otimização e desempenho desses frameworks em um ambiente cloud nativo, e ainda facilitar a migração de aplicações legadas para o mundo Quarkus.
O Quarkus representa uma evolução marcante no domínio do desenvolvimento Java, ao apresentar uma alternativa concreta para enfrentar os desafios impostos pelas arquiteturas de nuvem. Ao combinar o poder do Java com as exigências contemporâneas de agilidade, escalabilidade e eficiência, o Quarkus se firma como um protagonista na jornada da tecnologia da informação em direção à era nativa de Kubernetes.
Gráfico de performance Quarkus.
INSTALAÇÃO
Instale o java 11.
Abra o Windows using Powershell e execute as duas linhas de comando:
iex "& { $(iwr https://ps.jbang.dev) } trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/"
iex "& { $(iwr https://ps.jbang.dev) } app install --fresh --force quarkus@quarkusio"
Crie um aplicação inicial com o comando:
quarkus create && cd code-with-quarkus
Execute a aplicação: quarkus dev
Sua aplicação estará rodando em: localhost:8080 Para testar acesse: http://localhost:8080/hello
Para alterar o controller teste o arquivo é: src/main/java/org/acme/GreetingResource.java