Jump to section

Stateful e stateless

Copia URL

Sviluppa la giusta strategia cloud per emergere nell'odierna economia digitale

Sviluppare una strategia basata sul cloud che semplifichi la gestione e incrementi il ROI è possibile adottando un approccio coerente su tutti i sistemi.

Possiamo considerare lo stato di un'applicazione (o di ogni altro elemento) come la condizione o qualità di esistenza in un determinato momento. La condizione di stateful o stateless di un elemento dipende dalla durata della registrazione dell'interazione con l'elemento stesso e dalle modalità di memorizzazione di questa informazione. 

Immaginiamo un'applicazione o un processo stateless in una condizione di isolamento, della quale non esistono dati memorizzati o riferimenti a transazioni passate. È come se ogni volta la transazione fosse creata da zero. Le applicazioni stateless erogano un servizio o una funzione e utilizzano una rete CDN (Content Delivery Network), il web o i server di stampa per elaborare le richieste a breve termine. 

È un esempio di transazione stateless la ricerca online volta a individuare la risposta a un quesito. Si digita la domanda in un motore di ricerca e si preme Invio. Se la transazione viene interrotta o chiusa accidentalmente, se ne avvia una nuova. Possiamo paragonare una transazione stateless a un distributore automatico: una singola richiesta a cui viene data una specifica risposta. 

Le applicazioni e i processi stateful possono essere riutilizzati più volte, come nel caso dei servizi di online banking o email. Vengono eseguiti in riferimento alle transazioni precedenti e possono essere influenzati dagli eventi accaduti in precedenza. Per questo motivo ogni volta che elaborano una richiesta da parte di un utente le app stateful impiegano gli stessi server.  

Anche se interrotta, una transazione stateful può riprendere più o meno dal punto di interruzione, poiché il contesto e la cronologia vengono memorizzati. Le app stateful tengono traccia della posizione delle finestre, delle preferenze di impostazione e delle attività recenti. Le transazioni stateful possono equivalere a una sorta di conversazione costante e periodica con la stessa persona.

La maggior parte delle applicazioni utilizzate sono stateful, ma grazie al progresso tecnologico, ai microservizi e ai container, è più semplice creare e distribuire le app nel cloud. 

Cloud computing, microservizi e applicazioni containerizzate, che siano stateful o stateless, registrano una diffusione sempre maggiore. I container sono unità di codice di un'applicazione raggruppate insieme alle rispettive librerie e dipendenze, così da poter essere spostate ed eseguite con facilità in qualsiasi ambiente (desktop, infrastruttura IT tradizionale o cloud). 

Inizialmente i container erano progettati per essere stateless, uno stato adatto alle loro caratteristiche intrinseche di portabilità e flessibilità. Alla crescente diffusione del loro impiego è corrisposta una maggiore containerizzazione delle app stateful esistenti, con la riprogettazione e la creazione di nuovi pacchetti per agevolare l'esecuzione da container. Ciò ha consentito di ottenere maggiori flessibilità e velocità nell'utilizzo dei container, mantenendo tuttavia lo stato stateful per lo storage e il contesto.

Le applicazioni stateful possono quindi apparire molto simili a quelle stateless e viceversa. Può esistere ad esempio un'app stateless che non richiede storage a lungo termine, ma che consente al server di tenere traccia delle richieste provenienti dalla stesso client mediante i cookie. 

Con la grande diffusione dei container, le aziende hanno iniziato a fornire modalità di gestione adatte a container sia stateless che stateful, usando lo storage dei dati, Kubernetes e StatefulSets. La condizione stateful caratterizza ormai la maggior parte dello storage per container, e ormai il dubbio non è se utilizzare o meno i container stateful, ma quando. 

Per saperlo, occorre definire il tipo di applicazione che si sta costruendo e l'uso che si intende farne. La condizione stateless è idonea se le informazioni sono necessarie solo in modo transitorio, rapido e temporaneo. Se l'app deve conservare in memoria ciò che accade tra una sessione e la successiva, la condizione stateful è più appropriata.

Red Hat ti offre tutti gli elementi necessari, che si tratti di stateful o stateless. Red Hat mette a tua disposizione il suo supporto pluripremiato e il più vasto ecosistema di partner del settore per aiutarti sia a orchestrare container stateful in Red Hat OpenShift (la piattaforma enterprise Kubernetes) sia a creare un ambiente unificato per lo sviluppo delle app con Red Hat Integration

Scopri come creare soluzioni, ottenere cicli di sviluppo più efficienti e promuovere l'innovazione con l'approccio open source dei prodotti Red Hat.

Keep reading

ARTICOLO

Stateful e stateless

La condizione di stateful o stateless di un elemento dipende dalla durata della registrazione dell'interazione con l'elemento stesso e dalle modalità di memorizzazione di questa informazione.

ARTICOLO

Cos'è Quarkus?

Quarkus è uno stack Java Kubernetes native realizzato per le macchine virtuali Java (JVM) e per la compilazione nativa, che ottimizza Java specificamente per i container.

ARTICOLO

Cos'è il serverless computing?

Il serverless computing è un modello di sviluppo cloud native che consente agli sviluppatori di creare ed eseguire applicazioni senza gestire i server.

Scopri di più sulle applicazioni cloud native

Prodotti

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

Risorse

White paper

Panoramica di Red Hat sullo sviluppo cloud native

Ebook

Il percorso verso le applicazioni cloud native

Continua a leggere

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

WHITE PAPER

Panoramica di Red Hat sullo sviluppo cloud native

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

Red Hat OpenShift Dedicated

SCHEDA TECNICA

Red Hat OpenShift Data Foundation

SCHEDA TECNICA

Accelera lo sviluppo delle applicazioni riducendo costi e complessità

SCHEDA TECNICA

Red Hat Fuse: integrazione distribuita cloud-native

DETTAGLI TECNICI

Guida per sviluppatori: un approccio lift-and-shift per la migrazione al cloud

INFOGRAFICA

Percorso formativo per l'acquisizione di competenze per OpenShift

CHECKLIST

10 considerazioni sui deployment Kubernetes

CHECKLIST

Sei considerazioni per scegliere la piattaforma Kubernetes giusta

CHECKLIST

Quattro consigli per fornire app di qualità superiore

CASO CLIENTE

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

RESOCONTO ANALITICO

IDC Spotlight: Gli elementi fondamentali per una Digital Leadership di successo

EBOOK

Ottieni un vantaggio competitivo con una strategia basata sui container

EBOOK

Incrementa la sicurezza del cloud ibrido

EBOOK

Ebook: Cloud native e cloud ibrido: come definire la tua strategia

EBOOK

Considerazioni essenziali per l'analisi dei dati e i database cloud native

Formazione

Formazione gratuita

Developing Cloud-Native Applications with Microservices Architectures