Jump to section

Zustandsbehaftet oder zustandslos?

URL kopieren

Der Zustand einer Anwendung (oder eines anderen Objekts) ist ihr Status oder ihre Qualität zu einem bestimmten Zeitpunkt. Ob etwas zustandsbehaftet oder zustandslos ist, hängt davon ab, wie lange der Zustand der Interaktion erfasst wird und wie diese Informationen gespeichert werden müssen. 

Ein zustandsloser Prozess oder eine zustandslose Anwendung kann als isoliert verstanden werden. Es gibt keine gespeicherten Kenntnisse oder Verweise auf vergangene Transaktionen. Jede Transaktion wird wie zum ersten Mal von Grund auf neu durchgeführt. Zustandslose Anwendungen bieten einen einzelnen Service oder eine Funktion und verwenden CDN-(Content Delivery Network-), Web- oder Druckserver, um diese kurzfristigen Anforderungen zu verarbeiten. 

Ein Beispiel für eine zustandslose Transaktion wäre eine Online-Suche, die eine spontane Frage von Ihnen beantwortet. Sie geben Ihre Frage in eine Suchmaschine ein und drücken die Eingabetaste. Wenn Ihre Transaktion versehentlich unterbrochen oder geschlossen wird, starten Sie einfach eine neue. Stellen Sie sich eine zustandslose Transaktion als eine Art Verkaufsautomat vor: eine Anfrage ergibt eine Antwort. 

Im Gegensatz dazu kann auf Anwendungen und Prozesse, die ihren Zustand behalten oder zustandsbehaftet sind, mehrfach zugegriffen werden, wie beim Online-Banking oder bei E-Mails. Sie werden im Kontext vorangegangener Transaktionen ausgeführt, und die aktuelle Transaktion kann von deren Ablauf beeinflusst werden. Aus diesen Gründen verwenden zustandsbehaftete Apps jedes Mal dieselben Server, wenn sie eine Anforderung eines Nutzers verarbeiten.  

Wenn eine zustandsbehaftete Transaktion unterbrochen wird, wurden der Kontext und die Historie gespeichert, sodass Sie mehr oder weniger dort weitermachen können, wo Sie aufgehört haben. Zustandsbehaftete Apps erfassen Dinge wie bevorzugte Einstellungen, die Fensterposition und die letzten Aktivitäten. Sie können sich zustandsbehaftete Transaktionen als ein fortlaufendes Gespräch mit derselben Person vorstellen.

Die meisten Anwendungen, die wir täglich verwenden, sind zustandsbehaftet. Doch mit fortschreitender Technologie erleichtern Microservices und Container das Erstellen und Bereitstellen von Anwendungen in der Cloud. 

Mit der zunehmenden Beliebtheit von Cloud Computing und Microservices nimmt auch die Containerisierung von Anwendungen zu, ob zustandsbehaftet oder zustandslos. Container sind Codeeinheiten für eine Anwendung, die zusammen mit ihren Libraries und Abhängigkeiten paketiert sind, sodass sie problemlos verschoben und in vielen verschiedenen Umgebungen ausgeführt werden können, sei es auf einem Desktop, in einer herkömmlichen IT-Infrastruktur oder in einer Cloud. 

Ursprünglich wurden Container so programmiert, dass sie zustandslos waren, was ihrer portierbaren, flexiblen Natur entsprach. Mit zunehmender Verbreitung von Containern begann man jedoch, vorhandene zustandsbehaftete Apps zu „containerisieren" (also von Grund auf für eine Ausführung in Containern zu programmieren und zu paketieren). Dadurch wurden diese Apps flexibel und schnell genug für die Containerausführung und verfügten gleichzeitig über die Storage- und Kontextfunktionen zustandsbehafteter Apps.

Zustandsbehaftete Apps können daher zustandslosen Apps sehr ähnlich sein. So können Sie beispielsweise eine App haben, die zwar zustandslos ist und keinen Langzeit-Storage benötigt, es dem Server jedoch ermöglicht, Anforderungen von einem bestimmten Client mithilfe von Cookies zu verfolgen. 

Mit der zunehmenden Beliebtheit von Containern begannen Unternehmen, Möglichkeiten zur Verwaltung sowohl zustandsloser als auch zustandsbehafteter Container mithilfe von Data Storage, Kubernetes und StatefulSets bereitzustellen. Zustandsbehaftung ist heute ein wesentliches Merkmal des Container-Storage. Es geht daher nicht mehr darum, ob, sondern nur wann zustandsbehaftete Container verwendet werden. 

Ob Sie zustandsbehaftete oder zustandslose Container verwenden sollten oder nicht, hängt davon ab, welche Art von App Sie erstellen und was die App tun muss. Zustandslosigkeit ist der richtige Weg, wenn Sie nur vorübergehend und schnell Informationen benötigen. Wenn Ihre App mehr Informationen von einer Session zur nächsten speichern soll, sind zustandsbehaftete Container möglicherweise der bessere Weg.

Ganz gleich, ob es um zustandsbehaftete oder zustandslose Apps geht: Red Hat hat, was Sie brauchen. Ob Sie zustandsbehaftete Container auf Red Hat OpenShift, unserer unternehmensgerechten Kubernetes-Plattform, orchestrieren oder mit Red Hat Integration eine einheitliche Umgebung für die Anwendungsentwicklung erstellen möchten – Sie erhalten Unterstützung durch unseren vielfach ausgezeichneten Support und unser großes Partnernetzwerk. 

Erfahren Sie, wie Sie mit allen unseren Produkten Lösungen entwickeln, die Entwicklerproduktivität verbessern und Innovationen fördern können – nach dem Open Source-Modell.

Weiterlesen

ARTIKEL

Zustandsbehaftet oder zustandslos?

Ob etwas zustandsbehaftet oder zustandslos ist, hängt davon ab, wie lange der Zustand der Interaktion erfasst wird und wie diese Informationen gespeichert werden müssen.

ARTIKEL

Was ist Quarkus?

Quarkus ist ein Kubernetes-nativer Java Stack für Java Virtual Machines (JVMs) und native Kompilierung, mit dem Java speziell für Container optimiert wird.

ARTIKEL

Was ist Serverless?

Der Begriff „Serverless" (serverlos) bezieht sich auf ein cloudnatives Entwicklungsmodell, bei dem Entwickler Anwendungen erstellen und ausführen können, ohne Server verwalten zu müssen.

Mehr über cloudnative Anwendungen erfahren

Produkte

Eine Plattform, die es Ihnen ermöglicht, Unternehmensanwendungen schnell und effizient über die von Ihnen gewünschte Infrastruktur bereitzustellen.

Ressourcen

Training

Kostenloses Training

Developing Cloud-Native Applications with Microservices Architectures