Disney Adota GraalVM e Micronaut para maior Eficiência em Serverless

Por Gaspar Barancelli Junior em 04 de maio de 2024
Imagem ilustrativa sobre o post Disney Adota GraalVM e Micronaut para maior Eficiência em Serverless

A Disney, em sua jornada contínua para melhorar a eficiência e a inovação, adotou tecnologias emergentes como a GraalVM e o framework Micronaut em suas funções AWS Lambda. Este post examina como essas tecnologias ajudaram a otimizar o desenvolvimento de aplicações serverless, melhorando significativamente a produtividade dos desenvolvedores.

O Desafio

O desafio da Disney estava em manter a eficiência no desenvolvimento de aplicações em larga escala, especialmente em reduzir os tempos de inicialização e consumo de recursos nas funções serverless, que são críticos para o desempenho e a escalabilidade.

A Solução com GraalVM e Micronaut

A GraalVM oferece a capacidade de compilar aplicações Java em código nativo, melhorando drasticamente o tempo de inicialização e a eficiência de recursos das funções Lambda. Para complementar, o framework Micronaut foi utilizado, sendo uma plataforma moderna e responsiva para o desenvolvimento de microserviços e aplicações serverless, projetada para ser nativa da nuvem desde o início.

O Micronaut se destaca por não depender de reflexão ou carregamento dinâmico de classes, o que é uma vantagem significativa ao trabalhar com imagens nativas da GraalVM. Além disso, o framework possui integrações úteis com a AWS, facilitando a interação entre as funções Lambda e serviços como Amazon API Gateway ou um Application Load Balancer (ALB).

Exemplo de Implementação Micronaut

Para ilustrar a implementação prática, veja um exemplo de como um Controller pode ser escrito no Micronaut:

@Controller
public class ItemController {
    ...
    @Get("/items/{itemId}")
    public Item getItem(String itemId) {
        return ddb.getItem(itemId);
    }

    @Post("/items")
    public void postItem(@Valid @Body Item item) {
        ddb.saveItem(item);
    }
}

Benefícios

A implementação da GraalVM resultou em uma melhoria dramática nos tempos de inicialização das funções Lambda na Disney. Uma função Lambda que anteriormente demorava 3,6 segundos para iniciar com a JVM, começou a operar em menos de 100 milissegundos após a conversão para um executável nativo com a GraalVM. Esses números, extraídos do post no blog da AWS, ilustram não só uma redução significativa no tempo de inicialização, mas também uma diminuição no uso de memória e nos custos associados.

disney graalvm micronaut
Figure 1. Gráfico comparativo do tempo de inicialização de um Lambda, mostrando a diferença entre uma aplicação Java 8 tradicional e uma compilação nativa usando a GraalVM, conforme a quantidade de memória disponíve

Informações Adicionais

Se você deseja explorar mais sobre a GraalVM e o Micronaut, convido você a ler outros artigos em nosso blog que abordam essas tecnologias. Para mais informações, visite nosso post sobre o desenvolvimento com GraalVM na nova era do desenvolvimento Java na nuvem: Oracle anuncia o Graal Development Kit.

Conclusão

A experiência da Disney serve como um caso de estudo valioso para outras organizações que buscam melhorar a escalabilidade e a eficiência de suas aplicações na nuvem. Este caso destaca a importância de escolher as tecnologias certas para maximizar a produtividade e a eficiência no desenvolvimento de software moderno.

// Compartilhe esse Post

💫
🔥 NOVO APP

Domine o Inglês em 30 dias!

Inteligência Artificial + Repetição Espaçada • Método cientificamente comprovado

✅ Grátis para começar 🚀 Resultados rápidos
×