In diesem Blogbeitrag werden wir uns mit der Client-Server-Architektur befassen, sie mit Peer-to-Peer vergleichen und herausfinden, wann Client-Server besser ist als P2P. Für diejenigen unter Ihnen, die nicht bereit sind, einige Minuten damit zu verbringen, den Artikel durchzulesen, werde ich eine sofortige Antwort geben – Peer-to-Peer ist immer besser als Client-Server.

Die Client-Server-Architektur ist der am häufigsten verwendete Ansatz für den Datentransfer. Es bezeichnet einen Computer als Server und einen anderen als Client. In einer Client-Server-Architektur muss der Server ständig online sein und eine gute Konnektivität bieten. Der Server versorgt seine Clients mit Daten und kann auch Daten von Clients empfangen. Einige Beispiele für weit verbreitete Client-Server-Anwendungen sind HTTP, FTP, rsync. Alle diese Anwendungen verfügen über eine spezifische serverseitige Funktionalität, die das Protokoll implementiert.

Verfügbarkeit

Das offensichtlichste Problem aller Client-Server-Anwendungen ist, dass der Server immer online und verfügbar sein muss. Im Falle von Software-, Netzwerk- oder Hardwareproblemen ist der Service für alle Clients betroffen. Daher müssen Sie im Voraus eine Server-Hochverfügbarkeitslösung planen. Die Hochverfügbarkeit stellt sicher, dass das System bei einer Unterbrechung aus irgendeinem Grund auf eine Backup-Hardware oder ein Backup-Netzwerk umschaltet und der Dienst reibungslos weiterarbeiten kann. Dieses Problem ist recht komplex, da Sie die Daten zwischen Ihrer Live-Maschine und der Backup-Maschine synchron halten und Soft- und Hardware-Updates im Voraus richtig planen müssen, um einen ununterbrochenen Servicebetrieb zu unterstützen.

Hohe Belastung

Ein weiteres wiederkehrendes Problem bei Client-Server-Anwendungen ist die hohe Last. Ein einziger leistungsstarker Client, der Daten schneller verbraucht als die anderen, könnte das gesamte Netzwerk, den Festplattenbetrieb und die Server-CPU verbrauchen. Sie möchten, dass alle Clients Zugriff auf den Server haben. Daher müssen Sie die Clients auf ein bestimmtes Verbrauchsniveau beschränken, damit jeder von ihnen minimale Serverressourcen erhalten kann. Dieser Ansatz stellt sicher, dass der leistungsstarke Client die anderen Clients nicht stört. Aber in Wirklichkeit bedeutet das in der Regel, dass der Server immer einen Client mit der gegebenen Einschränkung bedient, auch wenn er nicht überlastet ist und schneller arbeiten kann.

Skalierbarkeit

Jeder Server muss für die spezifische Anzahl der Clients geplant werden, die er unterstützen wird. Wenn die Anzahl der Clients wächst, müssen auch die Server-CPU, der Speicher, das Netzwerk und die Festplattenleistung wachsen und können schließlich einen Punkt erreichen, an dem der Server den Betrieb einstellt. Wenn Sie mehr Clients haben, als ein einzelner Server bedienen kann, müssen Sie wahrscheinlich mehrere Server bereitstellen. Dies bedeutet, dass zusätzlich zu dem bereits erwähnten Hochverfügbarkeitssystem ein System zum Ausgleich und zur Verteilung der Last auf die Server entwickelt werden muss.

Und wie funktioniert Peer-to-Peer Stack-up?

Verfügbarkeit

In einer Peer-to-Peer-Welt ist jeder Client auch der Server. Wenn die zentrale Maschine nicht verfügbar ist, kann der Dienst von jedem verfügbaren Client oder einer Gruppe von Clients bereitgestellt werden. Das Peer-to-Peer-System findet die Gruppe der besten Kunden und fordert von ihnen Service an. Dadurch erhalten Sie eine Serviceverfügbarkeit, die nicht von einer Maschine abhängt und die keine Entwicklung einer Hochverfügbarkeitslösung erfordert.

Hohe Belastung

Der Peer-to-Peer konvertiert im Vergleich zur Client-Server-Architektur jeden Knoten in einen Server, der Dienst bereitstellen kann. Wenn ein leistungsfähiger Client also viele Daten benötigt, können mehrere andere Geräte diese bereitstellen. Somit kann jeder Kunde Daten mit der schnellstmöglichen Geschwindigkeit und ohne Einschränkungen herunterladen.

Skalierbarkeit

Je mehr Geräte Sie in einem Netzwerk haben, desto mehr Geräte können an der Datenlieferung teilnehmen. Sie werden in Bezug auf das Netzwerk teilnehmen, CPU verteilt diese Last von einem zentralen Server. Je mehr Geräte Sie haben, desto weniger Last wird auf dem zentralen Server liegen.

Lassen Sie uns sehen, wie das in ein paar realen Fallbeispielen funktioniert.

Aufbau der Verteilung

Entwicklungsunternehmen haben Schwierigkeiten, Builds schneller an entfernte Niederlassungen auf der ganzen Welt oder innerhalb eines Büros an Hunderte von schnellen QS-Maschinen zu liefern. In einer Client-Server-Welt laden alle entfernten Büros das Build von einer Build-Maschine herunter. Die Geschwindigkeitsbegrenzung wird durch den Netzwerkkanal bestimmt, der dem Build für alle entfernten Büros dient. Ein Peer-to-Peer-Ansatz würde den Bau in unabhängige Blöcke aufteilen, die unabhängig voneinander zwischen den Büros reisen könnten. Dieser Ansatz beseitigt die Netzwerkbegrenzung aus dem Hauptbüro und kombiniert die Geschwindigkeit aller Remote-Büros, um Builds schneller bereitzustellen. Normalerweise können Sie auf einer Peer-to-Peer-Architektur 3-5 mal schneller arbeiten als auf einem Client-Server.

Ein weiteres Problem ist die Verteilung von Build innerhalb eines einzelnen Büros von einem zentralen Server aus. Die schnellen QA-Maschinen überlasten das zentrale Server-Netzwerk und die CPU vollständig und bringen den zentralen Server in einen unbrauchbaren Zustand. Es handelt sich um ein fast unlösbares Skalierbarkeitsproblem. Wie bereits erwähnt, ist ein Peer-to-Peer-Ansatz besser, wenn viele Kunden Zugang zu den Daten benötigen. Jede QA-Maschine kann die Daten auf andere Maschinen übertragen, wodurch der Server in einem gesunden Zustand gehalten wird und Builds rasend schnell geliefert werden können.

Datenlieferung an entfernte Niederlassungen

Die Bereitstellung von Daten an ein entferntes Büro steht in der Regel vor dem Problem der Überlastung des zentralen Servers. Selbst wenn die Geschwindigkeit jedes Büros nicht so schnell ist, wenn man viele von ihnen hat, summiert sie sich und benötigt riesige Bandbreitenkanäle zur Zentrale. Ein Problem kann auftreten, wenn Sie Software- oder Betriebssystem-Updates sowie andere Daten wie Dokumente, Videos oder Bilder liefern müssen. Der Peer-to-Peer-Ansatz löst dies, indem er es jedem Remote-Büro ermöglicht, an der Datenbereitstellung teilzunehmen. Dies entlastet den zentralen Server und reduziert den Bedarf an zentralem Server und Netzwerk.

Ein weiteres lang anhaltendes Problem, das Peer-to-Peer löst, ist, wenn die Daten auf mehrere Maschinen im Büro verteilt werden müssen. Der bisherige Ansatz bestand darin, entweder vom zentralen Server herunterzuladen, was die Last noch weiter erhöhen würde, oder eine zweistufige Verteilungsrichtlinie zu entwickeln: Daten an den zentralen Server am entfernten Standort liefern und dann Daten lokal kopieren. Der Peer-to-Peer löst das auf natürliche Weise, indem er die beste Quelle für die Daten findet, egal ob es sich um einen lokalen oder einen entfernten Server handelt. Sobald der Datenblock im Remote Office vorhanden ist, wird er nicht unbedingt aus dem zentralen Rechenzentrum heruntergeladen.

Zerschlagung gängiger P2P-Mythen

Mythos #1: P2P ist nur schneller, wenn Sie von vielen Kollegen herunterladen.

Während die Geschwindigkeit des p2p-Netzwerks steigt, wenn mehr Clients an der Übertragung teilnehmen. Der Punkt-zu-Punkt und die Verteilung von Daten von einem Knoten auf mehrere Knoten ist ebenfalls schneller.

Mythos #2: P2P setzt Ihr Netzwerk und Ihre Computer Viren, Hackern und anderen Sicherheitsrisiken aus.

Dieses Missverständnis stammt aus dem beliebten privaten P2P-Anwendungsfall der illegalen Dateifreigabe. Die illegale Dateifreigabe stellt Ihre Infrastruktur und Ihre Computer vor all die Probleme. Das Risiko für eine Enterprise P2P-Anwendung besteht nicht, da alle am Vertrieb beteiligten Unternehmen sichere Unternehmensmaschinen sind.

Mythos #3: P2P ist nicht sicher.

Wie wir oben gesehen haben, ist Peer-to-Peer nur eine Möglichkeit, eine Verbindung herzustellen und Rollen zwischen Maschinen zuzuweisen. Es benötigt zusätzliche Sicherheitsmechanismen, die eine gegenseitige Authentifizierung und Autorisierung sowie Zugriffskontrolle und Traffic-Verschlüsselung ermöglichen. Diese zusätzlichen Sicherheitsfunktionen sind jedoch in P2P-Lösungen für Unternehmen wie Resilio Connect integriert.

Wie viel schneller ist P2P?

Wir haben zuvor einen Artikel darüber geschrieben, mit einem konkreten Beispiel: Warum P2P schneller ist. Kurz gesagt, P2P ist immer schneller. Wie viel schneller, hängt von der Datengröße und -skala ab. Je größer sie sind, desto größer sind die Unterschiede. Im Beispiel im Artikel hat der Client-Server dreimal so lange gebraucht, um eine 100GB-Datei zu senden.