Tariffe

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.

Sperimenta Spring su OpenShift attraverso scenari pratici

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.

Risorse da Red Hat

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.

Hub

Il blog ufficiale di Red Hat

Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Kubernetes per l'intelligenza artificiale e il machine learning.

Kubernetes supporta i carichi di lavoro in ambito AI/ML rendendo il codice riproducibile in modo coerente, trasferibile e scalabile nei diversi ambienti.

Cloud computing: OpenShift operators

Gli operatori Red Hat OpenShift consentono di automatizzare la creazione, la configurazione e la gestione delle istanze del software applicativo Kubernetes native.

Cloud computing: Red Hat OpenShift per gli ingegneri della piattaforma

Red Hat OpenShift offre gli strumenti di progettazione delle piattaforme ideali per creare e gestire le Internal Developer Platform (IDP).

Red Hat OpenShift: risorse consigliate

Prodotti in evidenza

  • Red Hat OpenShift

    Una piattaforma per lo sviluppo di applicazioni unificata che ti consente di creare, modernizzare e distribuire applicazioni in modo scalabile, in base all'infrastruttura hybrid cloud di tua scelta.

  • Red Hat Application Foundations

    Un insieme di componenti progettati per aiutare a creare, distribuire ed eseguire applicazioni. Include Red Hat 3scale API Management, Red Hat Data Grid, Red Hat JBoss Web Server, Red Hat AMQ, build Red Hat di tecnologie open source e un toolkit di migrazione per le applicazioni.

Articoli correlati