DEV Community

Cover image for Quarkus. Quando optar pelo Nativo ou JVM?
Jonael Lemos
Jonael Lemos

Posted on

1

Quarkus. Quando optar pelo Nativo ou JVM?

Pra iniciar esta conversa, penso que essa decisão é bem necessária quando se fala em perfomance e entrega de produtos escaláveis e flexiveis. Principalmente quando estamos falando sobre o quanto de recurso lógico (memória, processamento) será consumido _versus _ quanto de recurso financeiro seu bolso está disposto a manter.
Sabemos que os principais serviços em cloud, podem gerar uma bola de neve quando não configurados da forma correta. Mas por uma visão otimista, que tal tentar evitar o problema na concepção do projeto?

O que podemos entender à respeito de uma maneira prática:

Quarkus Nativo:

Compilação Nativa: O Quarkus nativo permite a compilação do código fonte para um executável nativo, o que melhora significativamente o tempo de inicialização e o consumo de recursos. Isso é especialmente crucial em ambientes de contêineres e serverless.
Menor Footprint:Projetos Quarkus nativos têm um footprint menor, resultando em tamanhos de imagem de contêiner mais compactos. Isso é vantajoso em ambientes em nuvem, onde a eficiência no uso de recursos é fundamental.
Tempo de Inicialização Rápido:A compilação nativa contribui para tempos de inicialização extremamente rápidos, o que é crucial em cenários de microservices onde a elasticidade e a rápida resposta são essenciais.
GraalVM: O Quarkus nativo geralmente utiliza a GraalVM para compilação nativa, proporcionando otimizações significativas.

Quarkus modo JVM:

Flexibilidade do Código Fonte: Projetos executados na JVM oferecem uma gama mais ampla de opções de frameworks e bibliotecas, devido à vasta adoção da JVM. Isso permite uma maior flexibilidade na escolha de tecnologias.

JIT Compilation: Ao contrário da compilação nativa, a JVM usa a compilação Just-In-Time (JIT), o que pode resultar em um tempo de inicialização ligeiramente mais longo, mas oferece otimizações dinâmicas durante a execução.

Ecossistema Java Padrão: Projetos JVM se beneficiam do vasto ecossistema Java, incluindo uma ampla variedade de bibliotecas e ferramentas estabelecidas.

Facilidade de Desenvolvimento: O desenvolvimento em projetos JVM pode ser mais simples, pois há uma grande quantidade de ferramentas e recursos disponíveis para facilitar o processo de desenvolvimento.

Em resumo, a escolha entre Quarkus nativo e uma API na JVM depende dos requisitos específicos do projeto. Projetos que demandam alta eficiência em termos de recursos e tempo de inicialização podem se beneficiar do Quarkus nativo, enquanto projetos que valorizam a flexibilidade e o ecossistema Java podem optar por APIs na JVM.
Até a próxima.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more