Stateful vs stateless

De toestand van een toepassing (of iets anders, eigenlijk) is de toestand of kwaliteit van het bestaan ervan op een bepaald moment in de tijd – de staat waarin het verkeert. Of iets stateful of stateless is, hangt af van hoe lang de staat van interactie ermee wordt vastgelegd en hoe die informatie moet worden opgeslagen.

Stateless

Een stateless proces of toepassing kan geïsoleerd worden opgevat. Er is geen opgeslagen kennis van of verwijzing naar eerdere transacties. Elke transactie wordt gemaakt alsof het de eerste keer vanaf nul is. Stateloze applicaties leveren één dienst of functie en gebruiken content delivery network (CDN), web, of print servers om deze korte-termijn verzoeken te verwerken.

Een voorbeeld van een stateless transactie is het uitvoeren van een online zoekactie om een vraag te beantwoorden die je hebt bedacht. Je typt je vraag in een zoekmachine en drukt op enter. Als de transactie wordt onderbroken of per ongeluk wordt afgesloten, begin je gewoon een nieuwe. Zie stateless transacties als een automaat: een enkel verzoek en een antwoord.

Stateful

Stateful applicaties en processen zijn echter applicaties en processen die steeds opnieuw kunnen worden gebruikt, zoals online bankieren of e-mail. Ze worden uitgevoerd met de context van eerdere transacties en de huidige transactie kan worden beïnvloed door wat er tijdens eerdere transacties is gebeurd. Om deze redenen gebruiken stateful apps telkens dezelfde servers wanneer ze een verzoek van een gebruiker verwerken.

Als een stateful transactie wordt onderbroken, zijn de context en de geschiedenis opgeslagen, zodat je min of meer verder kunt gaan waar je gebleven was. Stateful apps houden zaken bij als de locatie van het venster, de instellingen, en recente activiteiten. Je kunt stateful transacties zien als een doorlopend periodiek gesprek met dezelfde persoon.

De meeste applicaties die we dagelijks gebruiken zijn stateful, maar naarmate de technologie voortschrijdt, maken microservices en containers het eenvoudiger om applicaties in de cloud te bouwen en uit te rollen.

Containers en status

Naarmate cloud computing en microservices aan populariteit winnen, neemt ook de containerisatie van applicaties toe, of die nu stateful of stateless zijn. Containers zijn eenheden van code voor een applicatie die worden verpakt, samen met hun bibliotheken en afhankelijkheden, zodat ze gemakkelijk kunnen worden verplaatst en in elke omgeving kunnen draaien, of dat nu op een desktop is, op een traditionele IT-infrastructuur of in een cloud.

Oorspronkelijk werden containers stateless gebouwd, omdat dit paste bij hun draagbare, flexibele aard. Maar naarmate containers meer en meer in gebruik kwamen, begonnen mensen bestaande stateful apps te containerizen (herontwerpen en opnieuw verpakken om vanuit containers te kunnen draaien). Hierdoor kregen ze de flexibiliteit en snelheid van het gebruik van containers, maar met de opslag en context van statefulness.

Om deze reden kunnen stateful applicaties veel lijken op stateless applicaties en vice versa. Je kunt bijvoorbeeld een app hebben die stateless is, waarvoor geen langdurige opslag nodig is, maar die de server in staat stelt om verzoeken van dezelfde client te volgen met behulp van cookies.

Stateless and stateful container management

Met de groei in populariteit van containers, begonnen bedrijven manieren te bieden om zowel stateless als stateful containers te beheren met behulp van dataopslag, Kubernetes, en StatefulSets. Statefulness is nu een belangrijk onderdeel van containeropslag en de vraag is niet meer of je stateful containers moet gebruiken, maar wanneer.

Of je stateful of stateless containers moet gebruiken, hangt af van wat voor soort app je bouwt en wat je ermee wilt doen. Stateless is de juiste weg als je alleen maar informatie nodig hebt op een tijdelijke manier, snel en tijdelijk. Als uw app echter meer geheugen nodig heeft voor wat er van sessie tot sessie gebeurt, is stateful wellicht de juiste keuze.

Stateful, stateless, and Red Hat

Als het op stateful of stateless aankomt, kunt u bij Red Hat terecht. Of je nu stateful containers orkestreert op ons enterprise-ready Kubernetes-platform, Red Hat OpenShift, of een uniforme omgeving creëert voor app dev met Red Hat Integration, je wordt gesteund door onze bekroonde ondersteuning en het grootste ecosysteem van partners in de sector.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *