Nachdem ich einige Zeit an der Nuxeo Desktop-Synchronisierung (Drive) gearbeitet habe und bevor ich mich dem Cloud-Projekt zugewendet habe, hatte ich die Möglichkeit an einem Projekt zu arbeiten, das diese beiden verbindet: Nuxeo Edge Cache. Ich möchte in diesem Blog näher darauf eingehen.
Während Drive die Möglichkeit bietet, Dokumente vom Nuxeo Server auf Ihren Computer zu synchronisieren, ermöglicht Nuxeo Cloud die Speicherung Ihrer Dokumente in der Cloud, ohne sich Gedanken über die Skalierbarkeit oder Funktionsfähigkeit machen zu müssen.
Stellen Sie sich vor, Sie verwenden diese beiden Lösungen und Hunderte Ihrer Benutzer laden die neueste Werbung Ihres Marketingteams herunter. Ihre Internetverbindung wird sich eine ganze Zeit verlangsamen, was wir natürlich vermeiden möchten! Und genau hier tritt Nuxeo Edge Cache in Erscheinung. Dateien müssen nicht mehr erneut heruntergeladen werden, wenn mehrere Benutzer auf sie zugreifen möchten.
Architektur
Während sich Ihr Nuxeo-Hauptserver in der Cloud befindet, installieren Sie einen lokalen Server, um die Binärdateien zu cachen. Sie können sich das wie eine AWS-CloudFront vorstellen, die jedoch direkt über Ihr lokales Netzwerk läuft und keine zusätzliche Bandbreite nutzt.
Wenn Sie ein Edge Cache verknüpfen, definieren Sie auch ein TTL. Wenn Edge Cache also innerhalb dieses Intervalls kein Lebenszeichen an den Nuxeo Server sendet, dann wird Edge Cache als offline angesehen.
Sicherheit
Wir möchten natürlich nicht, dass Ihr Administrator von Nuxeo Edge Cache Zugriff auf alle Dokumente hat, weshalb Edge Cache die Dateien nach der Verschlüsselung vom Server herunterlädt und speichert. Sie können nur durch einen Token vom Benutzer entschlüsselt werden, wenn dieser auf Edge Cache zugreift. Dieser Token wird vom Nuxeo Server generiert und enthält den geheimen Schlüssel zur Entschlüsselung der Datei.
Wir verwenden für jede Binärdatei auf dem Nuxeo Server AES-256 zur Verschlüsselung der Daten mit einem generierten Salted Key, der dem Edge Cache Server nicht bekannt ist. Der Token, der über eine HTTP-Umleitung an den Edge Cache Server gesendet wird, wird vom Nuxeo Server generiert und enthält den Schlüssel für die Entschlüsselung der binären Zieldatei. Der Token selbst ist mit einem allgemeinen Salted Secret verschlüsselt, das zwischen dem Nuxeo Server und dem Edge Cache Server ausgetauscht wird.
Sequenz herunterladen
Schritte:
1. Der Benutzer fordert eine Binärdatei vom Nuxeo Server an
2. Der Nuxeo Server überprüft, ob ein Edge Cache für diese IP registriert ist
3. Der Nuxeo Server erstellt eine Umleitung auf den Edge Cache, der mit dieser IP registriert ist
4. Edge Cache erhält die Umleitungsanfrage mit dem Token
5. Edge Cache extrahiert den Entschlüsselungsschlüssel aus dem Token
6. Sobald Edge Cache die Binärdatei gespeichert und mit dem Schlüssel entschlüsselt hat, wird sie zum Benutzer gesendet. Andernfalls lädt Edge Cache die verschlüsselte Binärdatei vom Nuxeo Server herunter und speichert sie, während sie entschlüsselt und zum Benutzer gesendet wird.
Wie es aussieht
Basierend auf unserer Arbeit mit Nuxeo Drive teilt Edge Cache den Großteil seiner Architektur und Sie werden ohne Probleme die HTML5-/Webkit-Bildschirme erkennen. Wie Nuxeo Drive kann Nuxeo Edge Cache zahlreiche Nuxeo Server cachen.
Was konfiguriert werden kann
Öffentliche IPs oder ein IP-Bereich: Sie können einen IP-Bereich oder eine Liste an IPs festlegen, die von Edge Cache bedient werden. Der Nuxeo Server verwendet das Verzeichnis an Bereichen oder Adressen, um auf den erforderlichen Edge Cache umzuleiten.
Edge Cache-DNS oder -IP: Sie können die Umleitungs-URL auf eine IP oder interne DNS Ihres Edge Cache Servers konfigurieren.
Maximale Cache-Größe: Sie können die Cache-Größe, die ein Edge Cache speichern kann, begrenzen.
Edge Cache-TTL: Sie können festlegen, nach wie vielen Sekunden der Edge Cache als offline angesehen wird, wenn er den Nuxeo Server nicht kontaktiert
Wie geht es weiter?
Der Nuxeo Edge Cache wird gegen Ende dieses Jahres veröffentlicht. Er kann auf Mac, Windows und Linux installiert werden. Eine Docker-Version wird ebenfalls veröffentlicht, um eine problemlose Bereitstellung auf verschiedenen Hardwaretypen zu ermöglichen.
Erfahren Sie mehr über den Nuxeo Cloud Cache