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.
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.
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.
- 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
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.
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.
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.
Desktop- und Mobile-Clients
Eine Windows-Desktop-App, derzeit im Early Access, und ein Mobile-Client in Entwicklung.
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.
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.
- 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 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.