Hohe Verfügbarkeit/Mikroservice-Architektur

Ich verwalte eine sehr aktive Community mit durchschnittlich 180.000 Nutzern täglich und kann nicht mehr wirklich vertikal skalieren. Wir müssen horizontal skalieren. Bevor es erwähnt wird, ist mir egal, was “offiziell unterstützt” wird, es interessiert mich nur, was technologisch möglich ist.

Derzeit läuft eine Ubuntu-Instanz mit Discourse in Docker gemäß den offiziellen Installationsanweisungen, S3-Speicher wird verwendet, ebenso wie ein CDN, das diesen bedient.

Ich plane, zu einem NixOS-Flake zu migrieren, den ich gerade schreibe. Nach sehr eingehenden Untersuchungen des Ressourcenverbrauchs stelle ich fest, dass die CPU hauptsächlich durch PostgreSQL und Unicorn-Worker gebunden ist (wir haben dies optimiert, um es bei gleichbleibender Leistung so CPU-schonend wie möglich zu gestalten. Es gibt 16 Worker).

Ebenso wird der Arbeitsspeicher hauptsächlich durch PostgreSQL und Redis gebunden.

Wenn möglich, möchte ich diese alle auf 3 Server isolieren:
Discourse Frontend (mit Unicorn)
Redis-Server
PostgreSQL-Server

Ich habe bereits erfolgreich einen Discourse-Server mit PostgreSQL auf einem anderen Server eingerichtet, bin mir aber nicht sicher, ob ich Redis woandershin verschieben kann und ob das leistungsmäßig sinnvoll wäre.

Betreibt sonst noch jemand Discourse auf diese Weise?

Sie können Redis auf einem anderen Server ausführen, wenn Sie glauben, dass dies hilfreich ist. Es ist zum Beispiel ziemlich üblich, AWS Elasticache in AWS zu verwenden, daher gibt es kein Problem, es dort zu platzieren, wo Sie denken, dass Leistung und Bandbreite ausreichen.

2 „Gefällt mir“