Framework

5 nov, 2020

Quarkus: Modernizando a linguagem Java para a era da nuvem

Publicidade

Apesar de relativamente novo, o Quarkus está causando alvoroço no mundo do Java e do desenvolvimento de aplicações. O projeto, nascido na comunidade open source, consiste em um framework Java nativo em Kubernetes full stack, projetado para funcionar com padrões, estruturas e bibliotecas Java populares. Por isso, é uma excelente opção para novas tecnologias nativas em cloud, como serverless e microsserviços.

De acordo com dados da IDC, o Java ainda é a principal linguagem de programação do mercado. Segundo levantamento, 9,3 milhões dos 13,5 milhões de desenvolvedores profissionais em todo mundo se identificam como usuários, de “moderados a frequentes”, da plataforma. A chegada do Quarkus ajuda a modernizar essa linguagem para a era da nuvem, permitindo que os profissionais possam utilizá-la para criar novas estruturas nativas em cloud.

Em recente relatório de validação da IDC, patrocinado pela Red Hat, líder mundial no desenvolvimento de soluções open source, a performance do Quarkus foi avaliada em relação a outro framework Java amplamente utilizado para o desenvolvimento nativo em cloud, identificado como Framework A. A comparação é baseada em atributos importantes para os desenvolvedores e para a experiência deles, assim como em características importantes para containers, Kubernetes e implantações em cloud.

Economia de recursos

Um dos principais benefícios do Quarkus é a economia de recursos, como atestou o IDC Validation Report. Tanto o Quarkus JVM como o Quarkus Native permitem menor consumo de memória, além de tempos de inicialização mais rápidos, levando a uma densidade de implantação de Kubernetes pods mais alta.

O Quarkus também tem um custo menor de operação. Em comparação ao Framework A, a economia com o Quarkus operando no modo nativo – usando o GraalVM para criar um executável independente e otimizado que não opera em uma tradicional Java Virtual Machine (JVM) – pode ser de até 64%, enquanto quando operam em uma JVM, chega a 37%.

Produtividade dos desenvolvedores

O Quarkus agiliza o trabalho cotidiano dos desenvolvedores, melhorando a produtividade e acelerando o lançamento de produtos no mercado. Em relação ao Framework A, o Quarkus reduziu o número de etapas operacionais exigidas para atualizar aplicações de seis para duas. Utilizando o Quarkus, um desenvolvedor que faça e teste mudanças no código-fonte tem que passar por duas etapas – mudar o código e salvar.

Já o desenvolvimento usando o Framework A precisa de seis etapas: fazer a mudança no projeto, pausar o serviço, iniciar o serviço, testar a mudança, operar a aplicação do Framework A e testar a aplicação novamente. A redução de etapas proporcionada pelo Quarkus também torna a compilação de códigos mais fácil e eficiente.

A diminuição do número de processos é possível devido ao live coding (código vivo). Atualizações de aplicações usando live coding são vistas imediatamente, melhorando a eficiência operacional dos desenvolvedores e levando a testes mais eficientes em buscas de problemas.

O Quarkus também unifica programação imperativa e reativa para dar aos desenvolvedores a opção de combiná-las livremente. Ao permitir um número menor de projetos e arquivos-fonte, os profissionais podem reduzir o tempo necessário para a manutenção das programações, assim como a quantidade de projetos que precisam gerenciar.

Densidade de implantação

Os desenvolvedores que usam Quarkus podem fazer spin up de um número maior de pods do que no Framework A. Aqueles que usam o Quarkus nativo podem fazer o spin-up de 8x mais pods, enquanto aqueles que usam o Quarkus JVM podem fazer o spin-up de 1.5x mais pods. Isto significa que, com o Quarkus, os clientes podem fazer mais com a mesma quantidade de recursos e mais aplicações podem ser desenvolvidas usando a mesma quantidade de memória. A densidade de implantação e a redução da utilização da memória são algumas das principais maneiras pelas quais o Quarkus otimiza o Java para containers.

Performance geral

Tradicionalmente se dizia que o Java usava muita memória na inicialização, não sendo compatível com aplicações leves. O Quarkus desmitifica essa visão. Sua versão nativa reduziu o uso de memória na inicialização em 90, enquanto o Quarkus JVM baixou em 20%. A economia resulta em uma capacidade de processamento maior para a mesma área de memória tanto no JVM quanto em modos nativos, o que significa que é possível fazer mais com a mesma capacidade de memória.

O Quarkus também é muito mais célere na inicialização que o Framework A. O Quarkus Native é 12x mais rápido, enquanto o Quarkus JVM é 2x mais ágil. Isto faz com que a aplicação seja mais responsiva à mudança de cargas e mais confiável durante operações com grande necessidade de escala (por exemplo, serverless), aumentando a inovação e oferecendo uma vantagem em relação a seus competidores.