Account Login
Jump to section

Spring Framework no Kubernetes com o Red Hat OpenShift

Copiar URL

O Red Hat® OpenShift® é a melhor maneira de desenvolver e executar aplicações Spring e Spring Boot nativas do Kubernetes.

O framework Spring é um dos frameworks Java mais populares para a criação de aplicações com base em uma arquitetura de microsserviços distribuídos. O modelo de programação e configuração do Spring para aplicações baseadas em Java tem foco na "tubulação". Assim, os desenvolvedores podem se concentrar na lógica empresarial no nível das aplicações, sem vínculos desnecessários com ambientes de implantação específicos. O Spring Boot simplifica o empacotamento e a configuração da aplicação para que ela seja independente, executável e facilmente implantável como um container no Kubernetes.

Spring nativo do Kubernetes

O Spring, como muitos frameworks Java, não "sabe" que está sendo executado em um container em uma plataforma como o Kubernetes. O framework inclui muitos componentes que facilitam a compilação e implantação de aplicações distribuídas, como Spring Boot, Spring Cloud e Spring Web, além de um host de outros componentes para fazer a descoberta de serviços, o balanceamento de carga, o roteamento de solicitações e mais. Com o Kubernetes, muitas dessas preocupações podem ser delegadas para a plataforma de aplicações em containers subjacente para produzir uma aplicação que se integre melhor à plataforma de execução. Criar aplicações Spring com esses caminhos de códigos otimizados é fundamental para liberar todo o potencial do Spring com 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

Para ligações de 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 de serviços 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

Red Hat OpenShift

Uma plataforma empresarial de aplicações em container Kubernetes com stack completo de operações automatizadas para gerenciar implantações de nuvem híbrida, multicloud e edge computing.

Red Hat OpenShift Data Foundation

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.

Red Hat Advanced Cluster Security Kubernetes

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.

Red Hat Advanced Cluster Management Kubernetes

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

Conteúdo adicional

Ebook

OpenShift e Kubernetes: qual é a diferença?

Webinar Red Hat

Open Technology Session

Red Hat OpenShift: conheça a plataforma Kubernetes empresarial mais usada no mercado.

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.

Checklist

Quatro maneiras de melhorar o acesso à inovação

O Red Hat® OpenShift® facilita a criação de aplicações baseadas em container. Descubra quatro maneiras de melhorar as iniciativas de inovação usando o Red Hat OpenShift e softwares pré-aprovados.

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

Illustration - mail

Quer receber mais conteúdo deste tipo?

Cadastre-se para receber a nossa newsletter Red Hat Shares.

Red Hat logo LinkedInYouTubeFacebookTwitter

Produtos

Ferramentas

Experimente, compre, venda

Comunicação

Sobre a Red Hat

A Red Hat é a líder mundial em soluções empresariais open source como Linux, nuvem, containers e Kubernetes. Fornecemos soluções robustas que facilitam o trabalho em diversas plataformas e ambientes, do datacenter principal até a borda da rede.

Assine nossa newsletter Red Hat Shares

Cadastre-se agora

Selecione um idioma

© 2022 Red Hat, Inc. Red Hat Summit