Jump to section

Spring su Kubernetes con Red Hat OpenShift

Copia URL

Red Hat® OpenShift® è la piattaforma più adatta a sviluppare ed eseguire app Spring e Spring Boot native di Kubernetes.

Le app Spring possono fare affidamento su Kubernetes e sulle funzionalità distribuite su questo sistema per fornire i servizi cloud necessari che consentono uno sviluppo efficiente su Kubernetes. Ciò include servizi come code di messaggi, database, storage permanente, memorizzazione nella cache e molti altri.

Registro dei servizi

Le architetture di microservizi spesso includono una scalabilità dinamica dei singoli servizi, in un cloud privato, ibrido o pubblico in cui il numero e l'indirizzo degli host non possono sempre essere previsti o configurati staticamente in anticipo. In Kubernetes, la replica e la scalabilità dei servizi sono una funzionalità fondamentale. Ciò significa che il client non ha bisogno di mantenere una cache e tenere conto degli errori del registro dei servizi stesso. Ad esempio, Netflix Ribbon (spesso utilizzato con le app Spring) può essere configurato in modo dichiarativo per utilizzare Kubernetes invece di un registro dei servizi, senza modifiche al codice.

Bilanciamento del carico

Per le chiamate client ai servizi stateless nelle app Spring, l'elevata disponibilità (HA) si traduce nella necessità di cercare il servizio in un registro dei servizi e di bilanciare il carico tra le istanze disponibili. Kubernetes fornisce un unico indirizzo del servizio in cui le chiamate saranno con bilanciamento dal carico e reindirizzate a un'istanza appropriata. All'interno di un cluster Kubernetes, il nome del servizio si risolve in questo indirizzo IP del cluster e può essere utilizzato per raggiungere il servizio di bilanciamento del carico. Per le chiamate dall'esterno e per quando non è consigliabile passare attraverso il router, è possibile configurare un indirizzo IP esterno per il servizio.

Tolleranza agli errori

Il fatto che i microservizi siano sistemi altamente distribuiti implica un rischio maggiore di fallimento di una chiamata remota, poiché il numero di tali chiamate remote aumenta. Tradizionalmente, la responsabilità di implementare modelli di tolleranza agli errori come un interruttore automatico ricade sullo sviluppatore. Tuttavia, progetti come Istio che implementano una service mesh possono alleggerire questo compito e fornire un controllo operativo notevolmente maggiore sui servizi Spring in esecuzione nel cluster.

Configurazione esternalizzata

Le soluzioni di gestione della configurazione esternalizzate possono fornire un'ottima alternativa alla tipica combinazione di file di configurazione, argomenti della riga di comando e variabili di ambiente utilizzata per rendere le applicazioni più portabili e meno rigide in risposta alle modifiche esterne. Le ConfigMap di Kubernetes possono essere usate per archiviare informazioni dettagliate come singole proprietà o informazioni generiche come interi file di configurazione o blob JSON. Forniscono meccanismi per inserire nei container i dati di configurazione, mantenendo la configurazione separata ma accessibile per le app Spring utilizzando annotazioni come @ConfigProperty.

Tracciamento distribuito e metriche dell'applicazione

Nonostante offra molti vantaggi, un'architettura di microservizi può essere difficile da analizzare e correggere in caso di problemi. Ogni richiesta aziendale genera più chiamate verso e tra i singoli servizi a vari livelli. Il tracciamento distribuito collega tutte le singole chiamate di servizio e le associa a una richiesta aziendale tramite un ID generato univoco. In maggiore dettaglio, le metriche consentono alle app Spring di esporre i dati a livello di applicazione per consentire un esame approfondito della condizione di un'applicazione. Strumenti di tracciamento come Jaeger, integrati con un insieme di metriche ottenute tramite Prometheus e Grafana forniscono una solida base per il monitoraggio e la risoluzione dei problemi delle app Spring su Kubernetes.

Man mano che le applicazioni Spring si evolvono in raccolte di servizi decentralizzati, la gestione delle comunicazioni e della sicurezza tra tali servizi diventa più complessa. Red Hat OpenShift in combinazione con Red Hat Runtimes offre agli sviluppatori Spring gli strumenti, i framework e le integrazioni Kubernetes native necessari per creare e gestire le applicazioni Spring su larga scala sul container leader del settore e sulla piattaforma di cloud ibrido Kubernetes.

Red Hat OpenShift offre agli sviluppatori svariati vantaggi. Questi servizi includono:

L'utilizzo di Spring Boot su OpenShift offre un'esperienza di sviluppo autentica del tipo "Spring Boot su Kubernetes" per le app Spring nuove ed esistenti.

  • Supporto per la creazione di applicazioni cloud native con Spring e Spring Boot
  • Integrazione delle funzionalità di Kubernetes che sostituiscono i tradizionali servizi di supporto standalone
    • Configurazione esternalizzata: Kubernetes ConfigMap e integrazione con Spring Cloud Kubernetes
    • Individuazione dei servizi: Kubernetes Services
    • Bilanciamento del carico: Kubernetes Replication Controller
    • Riavvio automatico: Kubernetes Health Probes e integrazione con Spring Actuator
    • Metriche: Prometheus, Grafana e integrazione con Spring Cloud Sleuth
    • Tracciamento distribuito con Istio e Jaeger Tracing
  • Strumenti per sviluppatori su Red Hat OpenShift per strutturare rapidamente nuovi progetti Spring, accedere alle API Spring note nell'IDE preferito e distribuire su Red Hat OpenShift.

Utilizza API Spring note e ottieni i vantaggi della piattaforma e dei servizi Kubernetes che le supportano in Red Hat OpenShift e Red Hat Application Services.

Sfrutta le tue competenze Spring per sviluppare app moderne utilizzando la tecnologia più recente.

Approfondisci

Articolo

Cosa sono gli operatori Red Hat OpenShift?

Gli operatori Red Hat OpenShift automatizzano la creazione, la configurazione e la gestione delle istanze di applicazioni Kubernetes-native.

Articolo

AI/ML su Red Hat OpenShift

OpenShift offre funzionalità fondamentali per l'accelerazione dei flussi di lavoro AI/ML e per la distribuzione di applicazioni basate sull'intelligenza artificiale.

Articolo

L'edge computing con Red Hat OpenShift

Estendi i servizi applicativi alle sedi remote e analizza gli input in tempo reale con le funzionalità edge computing di OpenShift.

Scopri di più su OpenShift

Prodotti

Una piattaforma applicativa aziendale che offre servizi verificati per consentire la distribuzione delle app sulle infrastrutture preferite.

Una soluzione di storage software defined che fornisce uno spazio di archiviazione dati permanente durante l'avvio e l'arresto dei container tra gli ambienti.

Una sandbox completamente supportata per lo sviluppare, addestrare e testare i modelli di machine learning (ML) in modo rapido nel cloud pubblico prima di distribuirli in produzione.

Una soluzione che permette di controllare cluster e applicazioni Kubernetes da una singola console dotata di criteri di sicurezza integrati.

Risorse

Serie Open Answers: Cos'è Red Hat OpenShift?

Sviluppo cloud native con Red Hat e Amazon Web Services

Formazione

Corso di formazione gratuito

Running Containers with Red Hat Technical Overview

Corso di formazione gratuito

Developing Cloud-Native Applications with Microservices Architectures

Corso di formazione gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview