Jump to section

Spring no Kubernetes com o Red Hat OpenShift

Copiar URL

Com o Red Hat® OpenShift®, você pode desenvolver e executar aplicações Spring e Spring Boot nativas do Kubernetes.

Aplicações Spring podem confiar no Kubernetes e nos recursos implantados nele para oferecer os serviços de nuvem necessários que viabilizam um desenvolvimento eficaz na plataforma. Isso inclui serviços como filas de mensagens, bancos de dados, armazenamento persistente e em cache, entre outros.

Registro de serviços

Muitas vezes, as arquiteturas de microsserviços exigem escala dinâmica de serviços individuais em nuvem pública, privada ou híbrida onde nem sempre é possível prever ou configurar estatisticamente o número e endereço dos hosts com antecedência. No Kubernetes, a replicação e a escala de serviços é uma funcionalidade central. Isso significa que o cliente não precisa manter uma memória em cache ou uma conta para a falha do próprio registro de serviços. Por exemplo, o Netflix Ribbon (normalmente usado com aplicações Spring) pode ser declarativamente configurado para usar o Kubernetes em vez de um registro de serviço, sem alterações no código.

Balanceamento de carga

Nas chamadas dos clientes para serviços stateless em aplicações Spring, a alta disponibilidade (HA) se manifesta na necessidade de procurar o serviço em um registro e balancear a carga entre as instâncias disponíveis. O Kubernetes oferece um único endereço de serviço onde as ligações terão a carga balanceada e serão redirecionadas para uma instância adequada. Em um cluster Kubernetes, o nome do serviço resolve esse endereço IP do cluster e pode ser usado para alcançar o balanceador de carga. Quando houver ligações externas e você não quiser passar pelo roteador, será possível configurar um endereço IP externo para o serviço.

Tolerância a falhas

A natureza altamente distribuída dos microsserviços significa um risco maior de falhas nas crescentes ligações remotas. Historicamente, o fardo de implementar padrões de tolerância a falhas como um disjuntor de circuito tem caído sobre o desenvolvedor. No entanto, projetos como o Istio, que implementam uma service mesh, podem aliviar essa carga e oferecer um controle operacional muito maior sobre os serviços Spring executados no cluster.

Configuração externalizada

Soluções de gerenciamento de configuração externalizada podem ser uma ótima alternativa à típica combinação de arquivos de configuração, argumentos de linha de comando e variáveis de ambiente que são usados para tornar as aplicações mais portáteis e menos rígidas em resposta às mudanças externas. Os Kubernetes ConfigMaps podem ser usados para armazenar informações de alta granularidade, como propriedades individuais, ou pouco refinadas, como arquivos inteiros de configuração ou blobs JSON. Eles oferecem mecanismos para injetar dados de configuração nos containers, mantendo as configurações separadas das aplicações Spring, mas acessíveis a elas, com o uso de anotações como @ConfigProperty.

Rastreamento distribuído e métricas de aplicação

Por conta de todas as vantagens, pode ser difícil analisar uma arquitetura de microsserviços e solucionar os problemas. Cada solicitação empresarial gera várias ligações para e entre serviços individuais em diversas camadas. O rastreamento distribuído une todas as ligações de serviços individuais e as associa a uma solicitação empresarial com um ID exclusivo. Além disso, com as métricas, as aplicações Spring conseguem expor dados no nível das aplicações para viabilizar verificações de alta granularidade sobre o estado delas. Ferramentas de rastreamento, como o Jaeger, combinadas a um stack de métricas com o Prometheus e o Grafana oferecem uma base sólida para monitoramento e solução de problemas das aplicações Spring no Kubernetes.

À medida que as aplicações Spring se desenvolvem como coleções de serviços descentralizados, fica mais difícil gerenciar comunicações e a segurança entre esses serviços. Com o Red Hat OpenShift e o Red Hat Runtimes, os desenvolvedores Spring contam com as ferramentas, os frameworks e as integrações nativas do Kubernetes necessários para compilar e gerenciar aplicações Spring em escala na plataforma em nuvem híbrida do Kubernetes e de container líder do setor.

Existem muitos benefícios para os desenvolvedores Spring que usam o Red Hat OpenShift. Entre eles estão:

Ao usar o Spring Boot no OpenShift, o desenvolvedor tem uma experiência natural em aplicações Spring novas e existentes.

  • Suporte para compilação de aplicações nativas em nuvem com o Spring e o Spring Boot
  • Integra as funcionalidades do Kubernetes que substituem os serviços tradicionais de suporte autônomo.
    • Configuração externalizada: Kubernetes ConfigMap e integração com o Spring Cloud Kubernetes
    • Descoberta de serviços: serviços do Kubernetes
    • Balanceamento de carga: controlador de replicações do Kubernetes
    • Reinicialização automática: verificações de integridade do Kubernetes e integração com o Spring Actuator
    • Métricas: Prometheus, Grafana e integração com o Spring Cloud Sleuth
    • Rastreamento distribuído com Istio e Jaeger Tracing
  • Ferramentas de desenvolvedor do Red Hat OpenShift para desenvolver novos projetos Spring com rapidez, obter acesso a APIs Spring em seu IDE de preferência e implantar no Red Hat OpenShift

Use as APIs Spring que você já conhece e aproveite os benefícios dos serviços e da plataforma Kubernetes subjacentes no Red Hat OpenShift e no Red Hat Application Services.

Use o conhecimento do Spring para desenvolver aplicações modernas com a tecnologia mais recente.

Leitura recomendada

Artigo

O que são operadores do Red Hat OpenShift?

Red Hat OpenShift Operators automate the creation, configuration, and management of instances of Kubernetes-native applications.

Artigo

Por que escolher o Red Hat OpenShift Serverless?

Red Hat OpenShift Serverless amplia o poder do Kubernetes para que você implante e gerencie cargas de trabalho serverless.

Artigo

Por que escolher o Red Hat OpenShift Service Mesh?

O Red Hat OpenShift Service Mesh oferece uma maneira uniforme de conectar, gerenciar e observar aplicações baseadas em microsserviços.

Leia mais sobre o OpenShift

Soluções Red Hat

Uma plataforma de aplicações para empresas que oferece serviços testados para lançar aplicações na infraestrutura de sua escolha.

Solução de armazenamento definido por software que reserva um lugar permanente para os dados, enquanto containers são iniciados e encerrados entre ambientes diferentes.

Uma solução de segurança em containers nativa do Kubernetes para empresas que viabiliza a criação, implantação e execução segura de aplicações nativas em nuvem.

Um console individual, com políticas de segurança integradas, para controlar aplicações e clusters do Kubernetes.

Conteúdo adicional

CASO DE SUCESSO

BANCO GALICIA

Banco Galicia, da Argentina, integra novos clientes corporativos em minutos com sua plataforma de NLP inteligente.

 

 

CASO DE SUCESSO

KPMG

A KPMG melhora os resultados dos serviços estaduais ao cidadão por meio de uma moderna plataforma de integração de sistemas.

 

Datasheet

Red Hat OpenShift: tecnologia de container para a nuvem híbrida

O Red Hat® OpenShift® é uma plataforma empresarial de containers Kubernetes que ajuda organizações em todo o mundo a criar, implantar, executar, gerenciar e proteger aplicações inovadoras em nuvens híbridas.

Red Hat OpenShift AI

Red Hat® OpenShift® AI é uma plataforma MLOps flexível e escalável, com ferramentas para criar, implantar e gerenciar aplicações usando inteligência artificial.

CASO DE SUCESSO

HCA Healthcare

HCA Healthcare usa plataforma de dados inovadora para salvar vidas.

Treinamentos Red Hat

Treinamento gratuito

Running Containers with Red Hat Technical Overview

Treinamento gratuito

Developing Cloud-Native Applications with Microservices Architectures

Treinamento gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview