Zum Hauptinhalt springen
Hauseigenes Vorzeigeprojekt

Aufbau einer Fernzugriffsplattform über Peer-to-Peer

Unser Vorzeigeprojekt ist die Plattform, zu der diese Website gehört: ein System, das zwei Rechner über restriktive Netzwerke hinweg verbindet, direkt, wo immer das Netzwerk es zulässt, und die Latenz niedrig genug für die Bildschirmsteuerung in Echtzeit hält. Der Windows-Client befindet sich derzeit im Early Access. Weil es unsere eigene Plattform ist, können wir offen darüber sprechen.

Rust und Go
Sprachen
Early Access
Windows-Client
Verschlüsselt
Jede Sitzung
Als Code
Infrastruktur

Dargestellt als hauseigenes Vorzeigeprojekt: Vexaros eigene Plattform, das Produkt, zu dem diese Website gehört. Kundenmandate behandeln wir vertraulich, daher ist die Arbeit, über die wir offen sprechen können, unsere eigene.

Die Herausforderung

Rechner verbinden, die das Internet nicht verbunden haben will

Die harte Anforderung war eine Direktverbindung zwischen zwei Rechnern über Netzwerke, die genau das verhindern sollen. Dabei sollte nicht jede Sitzung durch ein Rechenzentrum laufen, und die Verbindung musste schnell genug für die Bildschirmsteuerung in Echtzeit sein. Alles andere in der Plattform baut auf der Lösung dieses Problems auf.

Was es schwierig machte
  • Direktverbindungen durch NATs und restriktive Firewalls hindurch herstellen
  • Die Latenz niedrig genug für die Bildschirmsteuerung in Echtzeit halten, nicht nur für Dateiübertragung
  • Vermeiden, jede Sitzung durch ein Rechenzentrum zu leiten, aus Kosten- und Datenschutzgründen
  • Jede Sitzung verschlüsseln, wobei jede Seite genau prüft, mit wem sie verbunden ist
Was wir entwickelt haben

Vier Schichten, jede im richtigen Werkzeug

Wir haben Sprache und Architektur für jede Schicht passend gewählt, statt dem ganzen System einen Stack aufzuzwingen. Mit demselben Urteilsvermögen gehen wir an Kundenprojekte heran.

1

Ein Rust-Kern für Tempo und Sicherheit

Die Plattform verbindet direkt, wo immer das Netzwerk es zulässt, und sonst über ein authentifiziertes Relay. Jede Sitzung ist verschlüsselt, jede Identität geprüft. Der performancekritische Kern ist in Rust geschrieben, für Speichersicherheit und vorhersehbare Latenz.

2

Ein Go-Backend

Konten, Geräte und Zugriffsregeln verwaltet ein in Go geschriebenes Backend, also die Schicht, in der Lesbarkeit und schnelle Iteration am meisten zählen.

3

Desktop- und Mobile-Clients

Eine Windows-Desktop-App, derzeit im Early Access, und ein Mobile-Client in Entwicklung.

4

Infrastructure as Code

Jede Umgebung ist als Code definiert, mit eingebautem Monitoring, Logging und Backups, dazu eine Kubernetes-Option für selbst gehostete Enterprise-Installationen.

Das Ergebnis

Eine Plattform, auf der wir täglich laufen

Wir beschreiben das Ergebnis anhand von Fähigkeiten und Architektur, nicht anhand erfundener Zahlen. Das ist das System, das wir betreiben, und es zeigt, dass wir schwierige Dinge ausliefern, statt nur darüber zu reden.

Was es erreicht
  • Sitzungen verbinden sich direkt, wo immer das Netzwerk es zulässt, und sonst über ein authentifiziertes Relay
  • Die Fernsteuerung in Echtzeit bleibt reaktionsschnell, mit Video, das sich an die Netzbedingungen anpasst
  • Die Infrastruktur lässt sich aus Code reproduzieren
  • Direkte Sitzungen sind Ende-zu-Ende-verschlüsselt; erzwingt ein Netzwerk eine Relay-Verbindung, bleibt der Datenverkehr auf dem Weg durch die von Vexaro betriebenen Relays verschlüsselt
Der Stack

Der Stack hinter der Plattform

Sprachen

Rust und Go.

Apps

Eine Windows-Desktop-App im Early Access, dazu ein Mobile-Client in Entwicklung.

Infrastruktur & Daten

Container und Infrastructure as Code, mit eingebautem Monitoring, Logging und Backups.

Sie haben ein schwieriges Problem der eigenen Art.

Das Engineering hinter dieser Plattform ist dasselbe, das wir in die Kundenarbeit einbringen. Erzählen Sie uns, was Sie bauen.