Ein Knoten pro Maschine
Eine Cluster-Instanz hat drei oder fünf Knoten. Jeder betreibt unilayer mit eigener PostgreSQL und Valkey; PostgreSQL lauscht nur innerhalb des Knotens. Die Knoten sind so verteilt, dass sich keine zwei eine Maschine teilen.
Keine geteilte Datenbank, keine Nachbarn im selben Prozess: Jede Instanz ist ein eigener unilayer-Cluster auf Kubernetes, am Laufen gehalten von einem Operator, der rund um die Uhr über ihn wacht.
Eine Cluster-Instanz hat drei oder fünf Knoten. Jeder betreibt unilayer mit eigener PostgreSQL und Valkey; PostgreSQL lauscht nur innerhalb des Knotens. Die Knoten sind so verteilt, dass sich keine zwei eine Maschine teilen.
Jede Instanz bekommt einen eigenen Kubernetes-Namespace mit Ressourcenquote und Network Policies: Nur ihre eigenen Knoten und der Ingress dürfen mit ihr sprechen.
Ihre Instanz antwortet unter ihrer eigenen Adresse mit Zertifikat. Innerhalb des Clusters sprechen die Knoten über TLS mit Zertifikaten der eigenen CA der Instanz.
Die Datenbank jedes Knotens liegt auf einem replizierten Volume. Raft hält ohnehin auf jedem Knoten eine Kopie; das Replikat lässt einen Knoten anderswo neu starten, ohne ihn neu aufzubauen.
Backups und hochgeladene Dateien liegen in S3-kompatiblem Objektspeicher in derselben Region, in einem Ordner pro Instanz. Backups lassen sich im Portal herunterladen.
Root-Tokens sieht nur, wer sie sehen darf, und sie lassen sich im Portal rotieren. Unsere eigenen Schlüssel liegen verschlüsselt (AES-256-GCM), und unsere Systeme sprechen mit den Clustern über gegenseitiges TLS.
Die Knoten eines Clusters teilen sich nie eine Maschine. Fällt eine aus, bilden die anderen weiter die Mehrheit, die Raft braucht: Lesen und Schreiben gehen weiter.
War der ausgefallene Knoten der Leader, wählen die übrigen selbst einen neuen.
Der fehlende Knoten startet auf einer anderen Maschine mit einer Kopie seines Volumes neu und holt den Cluster ein.
Eine Instanz, ihre Backups und ihre Dateien bleiben in der Region, in der sie gebucht wurde. Was Ihre Instanz speichert, verarbeiten wir in Ihrem Auftrag, mit einem Auftragsverarbeitungsvertrag (Art. 28 DSGVO) als Teil des Vertrags.
Wenn Sie eine Instanz löschen, wird ein letztes Backup erstellt und mit ihren Dateien 30 Tage aufbewahrt – ein Irrtum lässt sich auf Anfrage also noch rückgängig machen. Danach wird alles endgültig gelöscht.