Anleitungen im Zusammenhang mit Beach

Wie man eine Instanz skaliert

Wenn du eine Instanz mithilfe zusätzlicher Replikate skalieren musst, gibt es einige Dinge zu beachten.

Konfiguration der Skalierung

Die Skalierung einer Instanz ist eigentlich ganz einfach: Du stellst einfach die gewünschte maximale Anzahl von Replikaten für die Instanz in der Benutzeroberfläche Beach ein. Wenn du einen Plan mit automatischer Skalierungsunterstützung hast, kannst du drei Werte einstellen: die minimale und maximale Anzahl der Replikate sowie die CPU-Auslastung, die eine Skalierung auslösen soll.

Aber sobald du mehr als eine Instanz hast, sieht die Sache anders aus als bei nur einer...

Die Cache-Konfiguration

Einer dieser Punkte ist die Konfiguration des Flow-Caches. Für die meisten Caches ist es in Ordnung, wenn sie pro Replikat vorhanden sind, aber einige sollten zwischen den Replikaten geteilt werden:

  • Session-Caches sollten gemeinsam genutzt werden, um zu verhindern, dass Nutzer/innen ihre session verlieren, wenn sie zwischen Anfragen auf verschiedenen Replikaten landen.
  • Der HashService hat einen dauerhaften Cache, um den Verschlüsselungsschlüssel zu speichern, den Flow für einige Dinge verwendet. Einer davon ist die HMAC-Berechnung, die zur Sicherung von Formularen und Logins verwendet wird und daher über alle Replikate hinweg konsistent sein muss.

Wir empfehlen, diese Caches in der Datenbank zu speichern - auf diese Weise überlebt die Session sogar ein Cluster-Upgrade. 😎

Flow_Security_Cryptography_HashService: &pdoBackend
  backend: 'Neos\Cache\Backend\PdoBackend'
  backendOptions:
    dataSourceName: 'mysql:host=%env:BEACH_DATABASE_HOST%;dbname=%env:BEACH_DATABASE_NAME%'
    username: '%env:BEACH_DATABASE_USERNAME%'
    password: '%env:BEACH_DATABASE_PASSWORD%'
    defaultLifetime: 0

Flow_Session_Storage: *pdoBackend
Flow_Session_MetaData: *pdoBackend
Caches.yaml Snippet, um die session und Hash Service Caches für das PDO Backend zu konfigurieren.
Cover photo by Markus Spiske on Unsplash