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.

Il framework Spring è uno dei più diffusi framework Java utilizzato per sviluppare applicazioni basate su un'architettura di microservizi distribuita. Il modello di programmazione e configurazione Spring per le applicazioni basate su Java si occupa principalmente delle attività legate all'interconnessione dei vari componenti, il che permette agli sviluppatori di dedicarsi alla logica aziendale a livello di applicazione, indipendentemente dall'ambiente di deployment. Spring Boot consente quindi un'agevole configurazione e creazione del pacchetto dell'applicazione realizzando un'applicazione eseguibile autonoma che può essere facilmente distribuita come container in Kubernetes.

Spring nativo di Kubernetes

Spring, come molti framework Java tradizionali, di per sé non "sa" di essere in esecuzione in un container su una piattaforma come Kubernetes. Il framework Spring include molti componenti che semplificano la creazione e il deployment di applicazioni distribuite, come Spring Boot, Spring Cloud, Spring Web e una serie di altri componenti per eseguire il rilevamento dei servizi, il bilanciamento del carico, il routing delle richieste e altro ancora. Con Kubernetes, molte di queste attività possono essere delegate alla piattaforma container sottostante per realizzare un'applicazione che si integri in modo più efficiente con la piattaforma su cui è in esecuzione. La creazione di app Spring utilizzando questi percorsi di codice ottimizzati è fondamentale per sfruttare le opportunità offerte dalla combinazione di Spring e 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?

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

Articolo

Scopri perché scegliere Red Hat OpenShift Serverless

Red Hat OpenShift Serverless estende Kubernetes per l'implementazione e la gestione di carichi di lavoro serverless.

Articolo

Perché scegliere Red Hat OpenShift Service Mesh

Red Hat OpenShift Service Mesh offre un metodo unificato per la connessione, la gestione e il monitoraggio delle applicazioni basate su microservizi.

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 soluzione, Kubernetes native ed enterprise ready, per la sicurezza dei container che permette di creare, distribuire ed eseguire applicazioni cloud native in modo più sicuro.

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

COMUNICATO STAMPA

Red Hat OpenShift supporta la trasformazione digitale del Gruppo Alpitour

COMUNICATO STAMPA

Red Hat e Snam collaborano nelle soluzioni digitali avanzate edge per il settore energy

CASO CLIENTE

Poste Italiane: Il servizio postale italiano accelera la trasformazione digitale con i container

CASO CLIENTE

BrianzAcque, gestore di servizi pubblici idrici, trasmette dati in tempo reale alle case dell'acqua

CASO CLIENTE

SIA crea una piattaforma per pagamenti digitali basata sui container

CASO CLIENTE

Coopservice standardizza e accelera lo sviluppo di software

CASO CLIENTE

Samsung promuove l'utilizzo del 5G all'edge della rete

CASO CLIENTE

Samsung Electronics promuove l'utilizzo del 5G all'edge della rete

CASO CLIENTE

ttb accelera la distribuzione grazie ai microservizi, con Red Hat e Dynatrace

STORIA DI SUCCESSO

KPMG migliora i servizi statali per i cittadini tramite una moderna piattaforma di integrazione dei sistemi

STORIA DI SUCCESSO

Banco Galicia ottiene l'onboarding dei nuovi clienti aziendali in pochi minuti con una piattaforma intelligente di NLP

PANORAMICA

Adotta lo sviluppo cloud native

CHECKLIST

Quattro consigli per fornire app di qualità superiore

EBOOK

Incrementa la sicurezza del cloud ibrido

SINTESI

Percorso per l'acquisizione di competenze in Red Hat OpenShift

SCHEDA TECNICA

Red Hat OpenShift Container Platform

SCHEDA TECNICA

Red Hat OpenShift Kubernetes Engine

SCHEDA TECNICA

Accelera lo sviluppo delle applicazioni riducendo costi e complessità

SCHEDA TECNICA

Red Hat OpenShift Dedicated

SCHEDA TECNICA

Red Hat OpenShift Data Foundation

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