Connexion / Inscription Account

Applications cloud-native

Avec état et sans état : quelle est la différence ?

L'état d'une application (ou de tout autre élément) correspond à sa condition ou sa qualité à un moment donné dans le temps. Les qualificatifs « avec état » ou « sans état » dépendent de la durée pendant laquelle l'état de l'interaction avec un élément est enregistré ainsi que de la manière dont cette information doit être stockée. 


Sans état

Un processus ou une application sans état est indépendant. Il ne stocke pas de données et ne fait référence à aucune transaction passée. Chaque transaction est effectuée à partir de rien, comme si c'était la première fois. Les applications sans état fournissent un service ou une fonction et utilisent un réseau de diffusion de contenu, le web ou des serveurs d'impression pour traiter ces requêtes à court terme. 

Par exemple, une recherche en ligne pour répondre à une question quelconque est une transaction sans état. Vous tapez votre question dans le moteur de recherche et appuyez sur Entrée. Si votre transaction est accidentellement interrompue ou fermée, vous devez en démarrer une nouvelle. Les transactions sans état sont comparables à des distributeurs automatiques : une seule requête et une seule réponse. 


Avec état

Les applications et processus avec état, quant à eux, peuvent être réutilisés indéfiniment. Les plateformes bancaires en ligne et les messageries en sont deux exemples. Les transactions précédentes sont prises en compte et peuvent affecter la transaction actuelle. C'est pour cela que les applications avec état utilisent les mêmes serveurs chaque fois qu'elles traitent une requête d'un utilisateur.  

Si une transaction avec état est interrompue, le contexte et l'historique sont stockés et vous pouvez ainsi reprendre là où vous en étiez. Les applications avec état gardent une trace de divers éléments, comme l'URL de la page, les paramètres de préférence et l'activité récente. Les transactions avec état sont comparables à une conversation continue et périodique avec la même personne.

La majorité des applications que nous utilisons au quotidien sont des applications avec état. Toutefois, les technologies évoluent et les microservices ainsi que les conteneurs facilitent le développement et le déploiement d'applications dans le cloud. 


Conteneurs et état

À l'instar du cloud computing et des microservices, la conteneurisation des applications, avec ou sans état, gagne en popularité. Les conteneurs sont des unités de code pour une application qui sont empaquetées, avec leurs bibliothèques et leurs dépendances, afin de faciliter leur déplacement et leur exécution dans n'importe quel environnement, que ce soit sur un poste de travail, une infrastructure traditionnelle ou dans le cloud. 

À l'origine, les conteneurs étaient sans état, ce qui convenait parfaitement à leur nature portable et flexible. Cependant, avec la démocratisation des conteneurs, les développeurs se sont mis à conteneuriser (repenser et ré-empaqueter pour une exécution à partir de conteneurs) les applications avec état existantes. Ces applications ont ainsi profité de la flexibilité et de la rapidité des conteneurs, sans cesser de stocker des informations et du contexte.

Ainsi, les applications avec état et sans état se ressemblent parfois énormément. Par exemple, certaines applications sans état, qui ne nécessitent aucun stockage à long terme, permettent quand même au serveur de garder une trace des requêtes en provenance d'un même client à l'aide de cookies. 


Gestion des conteneurs avec et sans état

Au vu de la popularité croissante des conteneurs, plusieurs entreprises ont commencé à proposer des solutions de gestion pour les conteneurs sans état et avec état, basées sur le stockage des données, Kubernetes et des StatefulSets. Aujourd'hui, la majeure partie du stockage en conteneurs est avec état et la question n'est plus de savoir s'il faut utiliser des conteneurs avec état, mais dans quel cas les employer. 

Le choix de l'utilisation de conteneurs avec ou sans état dépend du type d'application que vous développez et de sa fonction. Si vous avez besoin d'informations rapidement et temporairement, optez pour des conteneurs sans état. En revanche, si votre application doit se baser sur les données issues de sessions précédentes, privilégiez les conteneurs avec état.


Red Hat, avec ou sans état

Avec ou sans état, Red Hat a tout prévu. Que vous cherchiez à orchestrer des conteneurs avec état sur notre plateforme Kubernetes d'entreprise, Red Hat OpenShift Container Platform, ou à créer un environnement unifié pour le développement d'applications avec la solution Red Hat Integration, notre service d'assistance primé ainsi que le plus vaste écosystème de partenaires du secteur sont là pour vous aider. 

Découvrez comment l'ensemble de nos produits permettent de concevoir des solutions, améliorent la productivité des développeurs et encouragent l'innovation, selon le modèle Open Source.

En savoir plus sur Red Hat OpenShift Container Platform