BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias RedHat libera o Quarkus

RedHat libera o Quarkus

Lire ce contenu en français

Favoritos

A Red Hat lançou o Quarkus, um framework Java nativo do Kubernetes feito sob medida para o GraalVM e OpenJDK HotSpot. O Quarkus visa tornar o java uma plataforma líder em ambientes serverless e Kubernetes, oferecendo aos desenvolvedores um modelo unificado de programação reativa e imperativa.

O Quarkus traz um framework full-stack aproveitando uma série de bibliotecas muito usadas por desenvolvedores Java, tais como Eclipse MicroProfile e Vert.x. A injeção de dependência do Quarkus é baseada no CDI, permitindo que os desenvolvedores usem JPA/Hibernate, JAX-RS/RESTEasy, e mais. Além disso, o Quarkus inclui uma extensão que permite que autores de frameworks terceiros possam aproveitar para estende-lo, essa extensão também compila para binário nativo do GraalVM.

De acordo com a RedHat, o Quarkus oferece eficiências de tempo de execução significativas, tais como um rápido startup permitindo escalar microservices em containers e Kubernetes tanto para cima como para baixo, baixo uso de memória ajudando a otimizar a densidade de containers em implantações de arquitetura de microsserviços, e aplicações menores.

(Imagem obtida de https://quarkus.io/)

O Quarkus é projetado para trazer sem problemas ambos os modelos imperativo e reativo, visando uma rápida adoção de tanto os desenvolvedores Java que estão familiarizados com o modelo imperativo e não querem aprender um novo paradigma, como os desenvolvedores que estão adotando uma abordagem reativa.

Estilo imperativo:

    
@Inject
SayService say;

@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
    return say.hello();
}

Estilo reativo:

@Inject @Stream("kafka")
Publisher reactiveSay;

@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public Publisher stream() {
    return reactiveSay;
}

Também é possível implementar funções para serem usadas em ambientes serverless como o exemplo AWS Lambda a seguir:

public class HelloLambda implements RequestHandler {

    @Inject
    HelloGreeter greeter;

    @Override
    public String handleRequest(HelloRequest request, Context context) {
        return greeter.greet(request.firstName, request.lastName);
    }
}

O Quarkus foi projetado para ter pouca ou nenhuma configuração, trabalhando de maneira intuitiva, para isso, desenvolvedores podem montar um novo projeto da seguinte maneira:

mvn io.quarkus:quarkus-maven-plugin:0.12.0:create \
    -DprojectGroupId=my-groupId \
    -DprojectArtifactId=my-artifactId \
    -DprojectVersion=my-version \
    -DclassName="org.my.group.MyResource"

O Quarkus também traz uma funcionalidade chamada Live Coding, que permite que os desenvolvedores evitem o processo chato de Codificar → Compilar → Publicar → Atualizar o Browser → Repetir. Ao executar mvn compile quarkus:dev, o Quarkus será executado em modo de desenvolvimento, quando o Quarkus receber uma requisição HTTP, uma checagem para descobrir se algum arquivo foi alterado é disparada, caso algum arquivo tenha sido alterado, os arquivos alterados serão automaticamente compilados e publicados de forma transparente e então a requisição HTTP prosseguirá para a aplicação recém publicada.

O Quarkus parece ser no mínimo uma alternativa interessante na era cloud, em que containers, Kubernetes, microservices, functions-as-a-service (Faas) e aplicações cloud native estão fornecendo níveis mais altos de produtividade e eficiência

Maiores detalhes sobre o Quarkus podem ser encontrados em quarkus.io. Desenvolvedores que querem iniciar com o Quarkus podem acessar o guia de início, ou qualquer um dos outros guias disponíveis.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT