Visão geral
Quarkus é um framework Java nativo do Kubernetes de stack completo que foi desenvolvido para máquinas virtuais Java (JVMs) e compilação nativa. Ele otimiza essa linguagem especificamente para containers, fazendo com que essa tecnologia seja uma plataforma eficaz para ambientes serverless, de nuvem e Kubernetes.
O Quarkus foi projetado para funcionar com padrões, estruturas e bibliotecas Java conhecidas, como Eclipse MicroProfile e Spring, como também o Apache Kafka, RESTEasy (JAX-RS), Hibernate ORM (JPA), Spring, Infinispan, Camel e muitos mais.
A solução de injeção de dependência do Quarkus é baseada em Contexts and Dependency Injection (CDI). Além disso, ela inclui um framework de extensão para ampliar a funcionalidade e configurar, inicializar e integrar frameworks na sua aplicação. Adicionar uma extensão é tão fácil quanto adicionar uma dependência. Se preferir, você também pode usar as ferramentas do Quarkus.
Ele também oferece as informações corretas ao GraalVM (uma máquina virtual universal para executar aplicações escritas em diversas linguagens, incluindo Java e JavaScript) para compilação nativa da aplicação.
Quatro razões para usar o Quarkus
O Java™ ainda é a linguagem de programação favorita de muitos desenvolvedores. No entanto, a evolução de tecnologias nativas em nuvem, como o Kubernetes e a computação serverless, se transformou em um desafio. Entenda por que o Quarkus é o framework Java essencial para desenvolvedores que trabalham com Knative e computação serverless.
Open Technology Sessions
Conheça a série de webinars da Red Hat em português feita para você descobrir como inovar. Aprenda sobre Automação, Infraestrutura, Plataforma de Aplicações, Cloud Services, Inteligência Artificial e muito mais!
Criado para desenvolvedores
O Quarkus foi desenvolvido para ser de fácil uso desde o início, com funcionalidades que desempenham bem com pouca ou nenhuma configuração.
Os desenvolvedores podem escolher os frameworks Java que desejam para as próprias aplicações, que podem ser executadas no modo JVM ou compiladas e executadas em modo nativo.
Criado para que os desenvolvedores o utilizem de maneira fácil e intuitiva, o Quarkus também inclui os recursos a seguir:
- Codificação dinâmica para que desenvolvedores consigam verificar imediatamente o efeito das alterações no código e solucionar problemas com rapidez
- Programação imperativa e reativa unificada com um barramento de eventos gerenciado e integrado
- Configuração unificada
- Geração executável nativa e fácil.
Para containers
Mesmo que a aplicação resida na nuvem pública ou em um cluster do Kubernetes hospedado internamente, características como inicialização rápida e baixo consumo de memória são importantes para manter os custos gerais de hospedagem reduzidos.
O Quarkus foi criado com base na filosofia de priorização de containers. Isso significa que ele é otimizado para uso reduzido da memória e tempos de inicialização mais rápidos das seguintes maneiras:
- Compatibilidade avançada com Graal/SubstrateVM
- Processamento de metadados em tempo de compilação
- Redução no uso de reflexão
- Pré-inicialização de imagens nativas
Portanto, o Quarkus ajuda a compilar aplicações para consumir um décimo da memória em comparação com o Java tradicional, além de ter um tempo de inicialização mais rápido (até 300 vezes mais veloz). Essas duas características reduzem muito o custo de recursos de nuvem.
Código imperativo e reativo
O Quarkus foi projetado para combinar de forma simplificada o já conhecido código em estilo imperativo com o estilo reativo não blocante ao desenvolver aplicações.
Isso é útil para desenvolvedores de Java, que estão acostumados a trabalhar com o modelo imperativo e não querem trocar tudo, e para os desenvolvedores que trabalham com uma abordagem reativa/nativa em nuvem.
O modelo de desenvolvimento do Quarkus se adapta a qualquer aplicação que você esteja desenvolvendo.
O Quarkus é uma solução eficaz para executar o Java neste novo mundo de arquitetura serverless, microsserviços, containers, Kubernetes, função como serviço (FaaS) e nuvem, pois ele foi criado levando todas essas tecnologias em consideração.