Über Replicas
Replicas werden für die horizontale Skalierung verwendet und ermöglichen es Ihnen, mehrere Ressourcen parallel mit Ihrer Anwendung zu verbinden. Auf diese Weise kann Ihre Anwendung mehr Anfragen parallel bearbeiten.
Die Replicas von Codesphere können mit wenigen Klicks zu jedem Always-on Workspace hinzugefügt werden. Sie können bis zu 10 Replicas (und mehr in unserem Enterprise Tier) zu Ihren Workspaces hinzufügen. Jede zusätzliche Replica kostet genauso viel wie der Plan des Workspaces. Wenn Sie einen Workspace des Micro-Plans auf 4 Replicas einstellen, kostet das 4 * $5 = $20. Der Standardwert für Replicas ist 1. In diesem Fall haben Sie nur den einen Haupt-Workspace und keine zusätzlichen Replicas.
Wie Replicas funktionieren
Jede Replica hat ihre eigenen Rechenressourcen (CPUs und RAM). Alle Replicas verwenden jedoch das Verzeichnis /home/user/app als gemeinsames Dateisystem. Der zugewiesene SSD-Speicher für Ihren Plan wird von den Replicas gemeinsam genutzt. Wenn Sie dieses Dateisystem ändern, z. B. über einen Installationsschritt in der Pipeline, über den Dateieditor der IDE oder das Terminal, wirkt sich diese Änderung automatisch auf alle Replicas aus. Dateien, die außerhalb des App-Verzeichnisses liegen, sind nicht verfügbar.
Um Replicas nutzen zu können, müssen Sie eine CI-Pipeline einrichten. Die Prepare- und Testphase wird nur auf der Hauptreplica ausgeführt. Alle Replicas können auf die gleichen installierten Pakete und Builds im (gemeinsamen) Ordner /home/user/app zugreifen. Die Run-Phase wird auf jeder Replica ausgeführt. Um die Terminalausgabe zu sehen, wählen Sie die entsprechende Replica-ID im Terminalausgabefenster auf der rechten Seite.
Vermeidung von widersprüchlichen/gleichzeitigen Schreibvorgängen im Dateisystem
Der Vorteil eines gemeinsam genutzten Dateisystems besteht darin, dass Sie sich nicht um die Inkonsistenz von Daten und Dateien kümmern müssen.
Allerdings gibt es bei einem gemeinsam genutzten Dateisystem einen Haken. Sie müssen aktiv sicherstellen, dass die Replicas nicht versuchen, gleichzeitig in dieselbe Datei zu schreiben. Ein offensichtlicher Fall, in dem dies geschieht, sind die Protokolldateien. Sie möchten in der Lage sein, die Protokolle auf Replica-Ebene einzusehen (d.h. um herauszufinden, warum eine Replica ausfällt und andere nicht).
Codesphere stellt eine Umgebungsvariable CS_REPLICA zur Verfügung, die zur Identifizierung der jeweiligen Replicas über eine eindeutige ID verwendet werden kann. Mit diesem Wert können Sie eine Logik aufbauen, so dass jede Replica ihre Logs in eine eigene Datei oder einen eigenen Ordner schreibt. Wenn Sie Probleme bei der Einrichtung haben, hilft Ihnen unser Team gerne weiter!
Umgebungsvariablen und Replicas
Neben den von Codesphere bereitgestellten Umgebungsvariablen für die Replicas können Sie auch Umgebungsvariablen über Setup/Env Vars festlegen und verwenden. Wenn Sie bestehende Variablen hinzufügen oder ändern, müssen Sie die Run Stage der CI-Pipeline erneut ausführen, damit alle Replicas mit den Änderungen ausgeführt werden.