Articles

Was ist ein verteiltes System?

Posted on

Definition

Ein verteiltes System, auch bekannt als verteiltes Rechnen, ist ein System mit mehreren Komponenten, die sich auf verschiedenen Rechnern befinden, die miteinander kommunizieren und Aktionen koordinieren, um dem Endbenutzer als ein einziges zusammenhängendes System zu erscheinen.

Übersicht

Bei den Maschinen, die Teil eines verteilten Systems sind, kann es sich um Computer, physische Server, virtuelle Maschinen, Container oder jeden anderen Knoten handeln, der mit dem Netzwerk verbunden werden kann, über lokalen Speicher verfügt und durch die Weitergabe von Nachrichten kommuniziert.

Es gibt zwei allgemeine Arten, wie verteilte Systeme funktionieren:

  1. Jede Maschine arbeitet auf ein gemeinsames Ziel hin und der Endbenutzer sieht die Ergebnisse als eine zusammenhängende Einheit.
  2. Jeder Rechner hat seinen eigenen Endbenutzer und das verteilte System erleichtert die gemeinsame Nutzung von Ressourcen oder Kommunikationsdiensten.

Obwohl verteilte Systeme manchmal undurchsichtig sein können, haben sie in der Regel drei Hauptmerkmale: alle Komponenten laufen gleichzeitig, es gibt keine globale Uhr und alle Komponenten fallen unabhängig voneinander aus.

Vorteile und Herausforderungen verteilter Systeme

Es gibt drei Gründe, warum sich Teams im Allgemeinen für die Implementierung verteilter Systeme entscheiden:

  • Horizontale Skalierbarkeit – Da die Berechnungen auf jedem Knoten unabhängig voneinander ablaufen, ist es einfach und in der Regel kostengünstig, bei Bedarf zusätzliche Knoten und Funktionen hinzuzufügen.
  • Zuverlässigkeit – Die meisten verteilten Systeme sind fehlertolerant, da sie aus Hunderten von Knoten bestehen können, die zusammenarbeiten. Das System erfährt im Allgemeinen keine Unterbrechungen, wenn ein einzelner Rechner ausfällt.
  • Leistung – Verteilte Systeme sind extrem effizient, da Arbeitslasten aufgeteilt und an mehrere Rechner gesendet werden können.

Doch verteilte Systeme sind nicht ohne Herausforderungen. Die komplexen Architektur-, Konstruktions- und Debugging-Prozesse, die erforderlich sind, um ein effektives verteiltes System zu erstellen, können überwältigend sein.

Drei weitere Herausforderungen, auf die Sie stoßen können, sind:

  • Scheduling – Ein verteiltes System muss entscheiden, welche Jobs laufen sollen, wann sie laufen sollen und wo sie laufen sollen. Scheduler haben letztendlich ihre Grenzen, was zu unzureichend ausgelasteter Hardware und unvorhersehbaren Laufzeiten führt.
  • Latenz – Je weiter Ihr System verteilt ist, desto mehr Latenz kann bei der Kommunikation auftreten. Dies führt oft dazu, dass Teams Kompromisse zwischen Verfügbarkeit, Konsistenz und Latenz eingehen müssen.
  • Beobachtbarkeit – Das Sammeln, Verarbeiten, Darstellen und Überwachen von Hardware-Nutzungsmetriken für große Cluster ist eine große Herausforderung.

Wie ein verteiltes System funktioniert

Hardware- und Software-Architekturen werden verwendet, um ein verteiltes System zu erhalten. Alles muss miteinander verbunden sein – die CPUs über das Netzwerk und die Prozesse über das Kommunikationssystem.

Typen verteilter Systeme

Verteilte Systeme fallen in der Regel in eines von vier verschiedenen grundlegenden Architekturmodellen:

  1. Client-Server-Clients kontaktieren den Server für Daten, formatieren diese und zeigen sie dem Endbenutzer an. Der Endbenutzer kann auch eine Änderung von der Client-Seite aus vornehmen und sie an den Server zurückgeben, um sie dauerhaft zu machen.
  2. Drei-Schichten-Informationen über den Client werden in einer mittleren Schicht und nicht auf dem Client gespeichert, um die Anwendungsbereitstellung zu vereinfachen. Dieses Architekturmodell wird am häufigsten für Webanwendungen verwendet.
  3. n-tier – Wird im Allgemeinen verwendet, wenn eine Anwendung oder ein Server Anfragen an zusätzliche Unternehmensdienste im Netzwerk weiterleiten muss.
  4. Peer-to-Peer – Es werden keine zusätzlichen Maschinen verwendet, um Dienste bereitzustellen oder Ressourcen zu verwalten. Die Zuständigkeiten sind gleichmäßig auf die Maschinen im System verteilt, die als Peers bezeichnet werden und entweder als Client oder Server fungieren können.

Beispiel für ein verteiltes System

Verteilte Systeme haben unendlich viele Anwendungsfälle, einige davon sind elektronische Banksysteme, Massive Multiplayer Online Games und Sensornetzwerke.

StackPath nutzt ein besonders großes verteiltes System, um seinen Content Delivery Network Service zu betreiben. Jeder unserer Points of Presence (PoPs) verfügt über Knoten, die ein weltweites verteiltes System bilden. Und um eine erstklassige Bereitstellung von Inhalten zu gewährleisten, speichert StackPath die zuletzt und häufig angeforderten Inhalte an den Edge-Standorten, die dem Ort, an dem sie genutzt werden, am nächsten sind.

Verteilte Systeme am Edge

Mit den Edge-Compute-Services, virtuellen Maschinen und Containern von StackPath können Benutzer ihre eigenen verteilten Systeme erstellen. Durch die Verbindung von VMs und Containern und die Nutzung der Geschwindigkeit und Agilität von Edge Computing kann Ihr System Tausende von gleichzeitigen Anfragen blitzschnell verarbeiten.

Key Takeaways

  • Verteilte Systeme können aus jeder Maschine bestehen, die in der Lage ist, sich mit einem Netzwerk zu verbinden, über lokalen Speicher zu verfügen und durch die Weitergabe von Nachrichten zu kommunizieren.
  • Durch die Verteilung von Anfragen und Arbeitslasten können verteilte Systeme weit mehr Anfragen und Rechenaufträge unterstützen als ein einzelnes Standardsystem.
  • Sie können Ihr eigenes blitzschnelles verteiltes System erstellen, indem Sie die Edge-Computing-Container und virtuellen Maschinen von StackPath miteinander verbinden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.