Skalierbarkeit, Ausfallsicherheit und VerteilungReactive Cluster Konzept

layline.io ist darauf ausgelegt, ein Höchstmaß an Skalierbarkeit und Ausfallsicherheit zu bieten. Um dies zu erreichen, nutzt layline.io eine Reihe von Mechanismen, darunter das reaktive Stream-Management.

Workflows

Workflows sind das Herzstück einer jeden Konfiguration in layline.io. Sie definieren eine Ende-zu-Ende-Verarbeitungskette für bestimmte Ereignis-Typen. Die Konfiguration von Workflows erfolgt über das webbasierte Configuration Center, das Sie auch bei der Logik unterstützt.

Workflow Setup
Workflow Setup

Reactive Engine

Die Konfigurationen der Workflows werden dann von einer (oder mehreren) Reactive Engines (RE) ausgeführt. Reactive Engines stellen die physischen Prozesse dar und liefern den eigentlichen Ausführungskontext für Workflows.

Reactive Engine running Workflows
Reactive Engine running Workflows

Jede RE kann nicht nur einen, sondern viele verschiedene Workflows ausführen, und darüber hinaus viele Instanzen jedes Workflows. Wie viele das sind, hängt davon ab, wie Ihr spezifischer Einsatz eingerichtet ist und wie viele Ressourcen einer RE zur Verfügung stehen.

Reactive Cluster

Sie können eine Reactive Engine allein oder mehrere davon zusammen betreiben. Zusammen bilden sie das, was wir einen Reactive Cluster (RC) nennen. Bei einer Standardinstallation von layline.io läuft eine Reactive Engine, die aber natürlich nicht die gewünschte Skalierbarkeit und Ausfallsicherheit bietet. Eine Engine allein ist auch nicht verteilbar.

In unternehmenskritischen Produktionsumgebungen werden Sie daher mehrere REs instanziieren, um einen Reactive Cluster zu bilden.

Reactive Engines form a Reactive Cluster
Reactive Engines form a Reactive Cluster

Die Kombination aus Reactive Engines und dem Reactive Cluster bietet drei wichtige Vorteile:

  1. Skalierbarkeit
  2. Resilienz und Gleichgewicht
  3. Verteilbarkeit

Skalierbarkeit

Sie können die Verarbeitung skalieren, indem Sie Reactive Engine-Instanzen zum Reactive Cluster hinzufügen. Darüber hinaus kann - wie bereits erläutert - jede RE einen oder mehrere konfigurierte unterschiedliche Workflows ausführen. Jeder Workflow kann dann mehrfach auf einer oder mehreren REs instanziiert werden. Es gibt also zwei Vektoren für die Skalierbarkeit:

  1. Anzahl der Reactive Engines
  2. Anzahl der Workflow-Instanzen, die auf jeder RE laufen
Reactive Cluster Composition
Reactive Cluster Composition

All dies kann dynamisch geschehen. layline.io unterstützt das automatische (oder manuelle)

  • Hinzufügen oder Entfernen von REs zum Cluster zur Laufzeit, so dass der Cluster je nach Last atmen kann, ähnlich wie bei einer serverlosen Lösung,
  • auf- und ab-regeln der Anzahl der Workflow-Instanzen, je nach Bedarf.

Die Grenzen dafür sind eigentlich nur durch die verfügbaren Ressourcen begrenzt, ob lokal oder in der Cloud.

Resilienz und Gleichgewicht

Unter Resilienz versteht man die ununterbrochene System-Verfügbarkeit auch bei punktuellen Ausfällen (Störungen).

In Übereinstimmung mit dem Reactive Manifesto und basierend auf reaktivem Stream Management wurde layline.io von Anfang an mit einer "let it crash"-Mentalität entwickelt. Dies bedeutet nicht nur, dass nicht betroffene Teile eines Systems einen Absturz betroffener Teile überleben müssen, sondern vielmehr, dass ausgefallene Funktionen neu gestartet und auf die noch verfügbaren Ressourcen in einem Reactive Cluster verteilt werden.

Rebalancing Workflows on Reactive Engine Failure
Rebalancing Workflows on Reactive Engine Failure

Dabei handelt es sich im Wesentlichen um dieselben Techniken, die im Zusammenhang mit der Skalierung zur Laufzeit verwendet werden, jedoch unter Berücksichtigung von Heartbeat- und Ausfallinformationen aller Teilnehmer des Clusters.

Verteilung

Die Art und Weise, wie layline.io den Reactive Cluster bildet - einschließlich des reaktiven Stream-Managements - macht den Cluster zu einem Cluster mit gleichberechtigten Teilnehmern (Nodes) und nicht zu einem Cluster von zentralen Koordinatoren mit abhängigen Satelliten.

Evolution of Cluster Architectures
Evolution of Cluster Architectures

Der layline.io Reactive Cluster bildet ein Netz von Reactive Engines, die sich in Echtzeit untereinander abstimmen und administrative Informationen über den Zustand des Clusters und seiner Mitglieder austauschen. Dies ermöglicht die Bildung eines Clusters, das sich nicht nur über ein physisches Hardware-Rack erstreckt, sondern auch geografische Grenzen überspannen kann, aber insgesamt ein logischer Cluster bleibt.

Das folgende Bild zeigt ein Beispiel, wie dies aussehen könnte, bei dem ein Cluster von der Cloud bis zum Edge reicht, während die enthaltenen Reactive Engines unterschiedliche spezifische Aufgaben übernehmen, je nachdem, wo sie sich im Reactive Cluster befinden:

Distributed Reactive Cluster
Distributed Reactive Cluster

Zusammenfassung

layline.io wurde unter dem Aspekt der Sicherheit entwickelt. Dies gilt sowohl für die Skalierung mit Ihren Anforderungen als auch für die Gewährleistung eines unterbrechungsfreien Betriebs. Die einzigartige Architektur erlaubt es, auch zukünftige Distributionsszenarien abzudecken. Gleichzeitig ermöglicht der kleine Footprint von layline.io den Betrieb auf kleinen Geräten wie Raspberry Pi's oder einfach Ihrem Laptop und bietet dabei genau die gleichen Mechanismen wie in einem XXL-Ausführungskontext.