DEV Community

Cover image for Open Liberty: O Runtime Java Cloud-Native da IBM
Kauê Matos
Kauê Matos

Posted on

Open Liberty: O Runtime Java Cloud-Native da IBM

Open Liberty é um servidor de aplicações Java open-source, leve e modular, desenvolvido pela IBM para implantar aplicações Jakarta EE e MicroProfile. Construído com foco em ambientes cloud-native, o Open Liberty oferece inicialização rápida, baixo consumo de memória e uma arquitetura flexível baseada em recursos plugáveis. O projeto serve como fundação para o WebSphere Liberty, o servidor de aplicações comercial da IBM, mas mantém-se completamente livre e disponível sob licença Apache 2.0.

Open Liberty se destaca por seu compromisso com padrões abertos, sendo uma implementação certificada tanto do Eclipse MicroProfile quanto do Jakarta EE, permitindo que desenvolvedores construam microsserviços cloud-native sem vendor lock-in.

História e Evolução

O Open Liberty tem suas raízes no WebSphere Application Server tradicional da IBM, mas foi completamente redesenhado para atender às demandas de arquiteturas modernas de microsserviços e computação em nuvem.

Marcos Importantes:

2016-2019: A IBM começou a desenvolver o projeto Liberty com foco em modularidade e leveza, diferenciando-se significativamente do WebSphere Application Server tradicional.

2019: Open Liberty se tornou um dos primeiros runtimes a receber certificação Jakarta EE 8 quando a especificação foi oficialmente lançada pela Eclipse Foundation.

2021: Lançamento do suporte ao MicroProfile 4.0 alinhado com Jakarta EE 8, demonstrando o compromisso com ambas as plataformas de especificações.

2022: Introdução do Liberty InstantOn em beta, revolucionando o tempo de inicialização de aplicações Java para ambientes serverless e containers.

2023: Liberty InstantOn sai da versão beta com a release 23.0.0.6, oferecendo inicialização em milissegundos para aplicações MicroProfile e Jakarta EE. Open Liberty se torna o primeiro runtime a suportar tanto Jakarta EE 10 quanto MicroProfile 6.0 em versão pronta para produção.

2024-2025: Expansão contínua do suporte InstantOn para mais recursos e introdução de previews para Jakarta EE 11, incluindo CDI 4.1, Concurrency 3.1, Jakarta Data 1.0, Expression Language 6.0, Pages 4.0 e Servlet 6.1.

Características Principais

1. Arquitetura Modular e Composável

Open Liberty utiliza uma arquitetura baseada em OSGi que permite carregar apenas os recursos necessários para executar sua aplicação. Isso resulta em:

  • Footprint reduzido: O servidor carrega apenas o runtime mínimo necessário
  • Inicialização rápida: Menos componentes significam startup mais veloz
  • Configuração simplificada: Adicione recursos conforme necessário via server.xml
  • Escalabilidade: Servidores menores e mais eficientes facilitam escalabilidade horizontal

Exemplo de configuração minimalista:

<featureManager>
    <feature>microProfile-6.0</feature>
</featureManager>
Enter fullscreen mode Exit fullscreen mode

2. Liberty InstantOn: Inicialização em Milissegundos

Uma das inovações mais significativas do Open Liberty é o InstantOn, que oferece tempos de inicialização extremamente rápidos sem comprometer throughput, memória ou recursos da linguagem Java.

Como Funciona:
InstantOn utiliza a tecnologia CRIU (Checkpoint/Restore In Userspace) do kernel Linux em conjunto com recursos especiais da JVM OpenJ9 para criar checkpoints (snapshots) do processo da aplicação durante a construção da imagem do container. Quando o container é iniciado, o runtime restaura o processo a partir desse checkpoint, eliminando a maior parte do tempo de startup.

Opções de Checkpoint:

  • beforeAppStart: Checkpoint antes da aplicação iniciar
  • afterAppStart: Checkpoint após a aplicação iniciar (startup mais rápido)

Benefícios:

  • Inicialização em milissegundos (até 10x mais rápido)
  • Ideal para ambientes serverless com scaling-to-zero
  • Redução de custos cloud ao diminuir instâncias idle
  • Mantém performance de produção do JVM com JIT compiler

Recursos Suportados:
InstantOn suporta Jakarta EE Web Profile 8.0 e versões posteriores, MicroProfile 4.1 e posteriores, além de diversos recursos individuais. O suporte tem sido expandido continuamente, incluindo recentemente recursos de mensageria (Jakarta Messaging, Jakarta Connectors, MDB), autorização (JACC), serviços web XML e Jakarta Mail.

3. Suporte Completo a Jakarta EE

Open Liberty oferece implementações certificadas de múltiplas versões do Jakarta EE:

  • Jakarta EE 8: Equivalente funcional ao Java EE 8, usando coordenadas Maven jakarta.*
  • Jakarta EE 9 e 9.1: Transição completa de namespace javax.* para jakarta.*, com suporte a Java SE 11
  • Jakarta EE 10: Versão atual com atualizações funcionais significativas, incluindo Core Profile
  • Jakarta EE 11 (Preview): Recursos em desenvolvimento incluindo CDI 4.1, Jakarta Data 1.0, Servlet 6.1

O suporte inclui plataforma completa, Web Profile e Application Client, permitindo flexibilidade na escolha do perfil adequado.

4. Eclipse MicroProfile: APIs para Microsserviços

Open Liberty é uma das implementações de referência do Eclipse MicroProfile e tem sido usado para certificação de várias releases. MicroProfile complementa Jakarta EE com APIs especificamente projetadas para microsserviços cloud-native:

MicroProfile Core (APIs fundamentais):

  • Config: Injeção de configuração externa estática e dinâmica
  • Fault Tolerance: Estratégias de resiliência (circuit breaker, retry, timeout, bulkhead, fallback)
  • Health: Endpoints de health check para Kubernetes
  • Metrics: Exposição de métricas para Prometheus/Grafana
  • OpenAPI: Documentação automática de APIs RESTful
  • Rest Client: Cliente HTTP type-safe para consumir serviços REST
  • JWT Authentication: Controle de acesso baseado em tokens JWT

MicroProfile Telemetry:
A partir do MicroProfile 6.0, OpenTracing foi substituído por Telemetry, que oferece observabilidade completa integrando-se com OpenTelemetry para coletar traces, metrics e logs. O MicroProfile Telemetry 2.0 expande ainda mais essas capacidades.

Alinhamento com Jakarta EE:

  • MicroProfile 4.0 e 4.1: Alinhado com Jakarta EE 8
  • MicroProfile 5.0: Alinhado com Jakarta EE 9.1 (mudança de namespace)
  • MicroProfile 6.0: Alinhado com Jakarta EE 10 Core Profile
  • MicroProfile 7.0 e 7.1: Continuam com Jakarta EE 10, substituindo Metrics por Telemetry 2.0

5. Liberty Tools: Experiência de Desenvolvimento Aprimorada

Open Liberty oferece ferramentas de desenvolvimento para as principais IDEs:

  • Visual Studio Code
  • IntelliJ IDEA
  • Eclipse IDE

Recursos incluem:

  • Hover-over para documentação de APIs
  • Diagnósticos e quick fixes
  • Suporte para MicroProfile (3.x+) e Jakarta EE Web Profile (9.x+)
  • Integração com Maven e Gradle
  • Dev mode para desenvolvimento iterativo rápido

Integração com Tecnologias Modernas

Inteligência Artificial e LLMs

Open Liberty suporta integração com frameworks de IA como LangChain4j, permitindo construir aplicações Jakarta EE e MicroProfile habilitadas para IA. Desenvolvedores podem usar LLMs de provedores como IBM watsonx, Microsoft Azure OpenAI, Amazon Bedrock e Hugging Face diretamente em suas aplicações empresariais.

Containers e Kubernetes

Open Liberty é projetado para containers desde o início:

  • Imagens oficiais Docker: Disponíveis no IBM Container Registry
  • Suporte Podman: Compatível com alternativas ao Docker
  • Kubernetes-ready: Health checks, metrics e configuração cloud-native
  • Imagens otimizadas: Variantes kernel-slim, full e UBI (Universal Base Image)

IBM MQ e Mensageria

Open Liberty oferece integração robusta com IBM MQ através de:

  • Jakarta Messaging API (anteriormente JMS)
  • Jakarta Connectors para resource adapters
  • Message-Driven Beans (MDB) para processamento assíncrono
  • Suporte InstantOn para aplicações de mensageria

Open Liberty vs WebSphere Liberty

Open Liberty é o projeto open-source que serve como base para o WebSphere Liberty Application Server comercial. As principais diferenças:

Open Liberty:

  • Totalmente open-source (Apache License 2.0)
  • Releases frequentes com recursos beta
  • Comunidade ativa no GitHub
  • Gratuito sem suporte comercial

WebSphere Liberty:

  • Baseado em Open Liberty
  • Suporte comercial da IBM
  • Certificações adicionais para ambientes empresariais
  • Ferramentas de migração e gestão enterprise

Aplicações desenvolvidas em Open Liberty podem ser migradas para WebSphere Liberty sem modificações de código.

Migração e Compatibilidade

Eclipse Transformer

Para facilitar a migração de aplicações Java EE para Jakarta EE, a IBM contribuiu com o Eclipse Transformer, uma ferramenta que automaticamente converte:

  • Referências de pacotes javax.* para jakarta.*
  • Coordenadas Maven
  • Descritores de deployment
  • Código-fonte e bytecode

Configuração de Web Modules

Open Liberty 25.0.0.1 introduziu a opção webModuleClassPathLoader para simplificar a migração de módulos web de outros runtimes Java, permitindo controle sobre como o class loader do módulo web funciona dentro de EARs.

Como Começar

Instalação via Maven

<plugin>
    <groupId>io.openliberty.tools</groupId>
    <artifactId>liberty-maven-plugin</artifactId>
    <version>3.11.2</version>
</plugin>
Enter fullscreen mode Exit fullscreen mode

Instalação via Gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'io.openliberty.tools:liberty-gradle-plugin:3.9.2'
    }
}
apply plugin: 'liberty'

dependencies {
    libertyRuntime group: 'io.openliberty', 
                    name: 'openliberty-runtime', 
                    version: '[25.0.0.1,)'
}
Enter fullscreen mode Exit fullscreen mode

Modo Dev

O Liberty Maven Plugin oferece um modo de desenvolvimento que:

  • Recarrega automaticamente mudanças no código
  • Executa testes sob demanda
  • Fornece feedback instantâneo
mvn liberty:dev
Enter fullscreen mode Exit fullscreen mode

Exemplo Básico de Configuração (server.xml)

<server>
    <featureManager>
        <feature>jakartaee-10.0</feature>
        <feature>microProfile-6.0</feature>
    </featureManager>

    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="9080"
                  httpsPort="9443"/>

    <webApplication location="myapp.war" 
                    contextRoot="/"/>
</server>
Enter fullscreen mode Exit fullscreen mode

Requisitos de Sistema

  • Java: JDK 11 ou superior (OpenJDK e IBM Semeru Runtime suportados)
  • Container Runtime: Docker 23.0+ ou Podman (para InstantOn)
  • Sistemas Operacionais: Linux, Windows, macOS
  • Arquiteturas: x86_64, ARM64, IBM Power, IBM Z

Casos de Uso

1. Microsserviços Cloud-Native

Open Liberty é ideal para arquiteturas de microsserviços com:

  • MicroProfile Config para configuração externalizada
  • MicroProfile Fault Tolerance para resiliência
  • MicroProfile Health e Metrics para observabilidade
  • Rest Client para comunicação entre serviços

2. Ambientes Serverless

InstantOn torna Open Liberty perfeito para serverless:

  • Inicialização em milissegundos
  • Scale-to-zero eficiente
  • Redução de custos cloud
  • Performance consistente

3. Modernização de Aplicações Legacy

Ferramentas e compatibilidade facilitam a modernização:

  • Eclipse Transformer para migração de namespace
  • Suporte a múltiplas versões de Jakarta EE
  • Migração incremental possível
  • Compatibilidade com código existente

4. Aplicações Empresariais Tradicionais

Suporte completo ao Jakarta EE permite:

  • Persistência JPA
  • Transações JTA
  • Segurança enterprise
  • Web services SOAP e REST

Performance e Benchmarks

Open Liberty é reconhecido por sua performance excepcional:

  • Startup: ~1 segundo para aplicações típicas (sem InstantOn)
  • Startup com InstantOn: Milissegundos
  • Memória: Footprint otimizado devido à arquitetura modular
  • Throughput: Performance de produção mantida com JIT compiler
  • Escalabilidade: Arquitetura leve facilita scaling horizontal

Comunidade e Ecossistema

Recursos da Comunidade

Suporte e Contribuição

  • Mailing lists ativas
  • Stack Overflow para perguntas
  • Issues no GitHub para bugs e feature requests
  • Contribuições da comunidade bem-vindas

Integração com IBM Ecosystem

  • IBM Semeru Runtime: Distribuição Java otimizada para Open Liberty
  • IBM Cloud: Suporte nativo
  • Red Hat OpenShift: Certificação e suporte
  • IBM MQ: Integração enterprise

Futuro do Open Liberty

O projeto continua em desenvolvimento ativo com foco em:

  • Jakarta EE 11: Suporte completo previsto após finalização da especificação
  • Expansão do InstantOn: Mais recursos sendo adicionados continuamente
  • MicroProfile: Acompanhamento das novas releases
  • Jakarta Data: Padronização do padrão Repository
  • Cloud-Native: Otimizações contínuas para containers e Kubernetes

Comparação com Outros Runtimes

Open Liberty vs WildFly

Aspecto Open Liberty WildFly
Origem IBM Red Hat/JBoss
Arquitetura OSGi modular Subsistemas plugáveis
InstantOn Sim (CRIU) Não
MicroProfile Implementação de referência Suportado
Tooling Liberty Tools JBoss Tools
Uso Comercial WebSphere Liberty JBoss EAP

Open Liberty vs Quarkus

Aspecto Open Liberty Quarkus
Foco Jakarta EE + MicroProfile Cloud-native from scratch
JVM Tradicional + InstantOn Tradicional + GraalVM native
Startup Rápido com InstantOn Muito rápido com native
Standards Jakarta EE completo Jakarta EE subset
Maturidade Baseado em WebSphere Projeto mais recente

Segurança

Open Liberty mantém segurança como prioridade:

  • CVE Tracking: Lista pública de vulnerabilidades corrigidas
  • Releases de Segurança: Patches regulares
  • Assinatura Digital: Pacotes assinados digitalmente pela chave privada do projeto
  • Verificação: Certificados (.cer) disponíveis para validar autenticidade
  • Criptografia AES-256: Suporte para criptografia de senhas no server.xml

Conclusão

Open Liberty representa uma evolução moderna do runtime Java empresarial, combinando a robustez e maturidade do legado WebSphere com inovações cloud-native. Sua arquitetura modular, suporte completo a padrões abertos (Jakarta EE e MicroProfile), e recursos revolucionários como InstantOn o posicionam como uma escolha excepcional para desenvolvimento de aplicações Java modernas.

Seja você um desenvolvedor construindo novos microsserviços cloud-native ou uma empresa modernizando aplicações legacy, Open Liberty oferece as ferramentas, performance e flexibilidade necessárias. Com forte suporte da comunidade, desenvolvimento ativo e compromisso com padrões abertos, Open Liberty continua sendo uma das principais opções no ecossistema Java empresarial.

Recursos Adicionais

Top comments (0)