Wie skaliere ich eine Java-App mit einer REST-API und einer Datenbank?

Ich habe eine typische zustandslose Java-Anwendung, die eine REST-API bereitstellt und Aktualisierungen (CRUD) in einer Postgresql-Datenbank durchführt.

Jedoch wächst die Anzahl der Kunden und ich habe das Bedürfnis,

Erhöhen Sie die Redundanz, sodass bei einem Ausfall ein anderer stattfindet Dafür brauche ich wahrscheinlich einen Load Balancer?Erhöhen Sie die Antwortgeschwindigkeit, indem Sie das Netzwerk und die CPU nur eines Servers nicht überfluten. (Wie wird der Load Balancer jedoch nicht überflutet?)Möglicherweise muss ich die Datenbank verteilen?Ich möchte meine App nahtlos aktualisieren können (ich habe ein Ding namens kubernetes gesehen): Töte jeden redundanten Knoten einzeln und ersetze ihn sofort durch eine aktualisierte VersionMeine App speichert auch einige Bilddateien, die schnell an Größe zunehmen. Ich muss in der Lage sein, sie zu verteilen.Alles davon muss backup-fähig sein

Dies ist das Diagramm dessen, was ich jetzt habe (sowohl Java-App als auch DB befinden sich auf demselben Server):

Was ist die beste / richtige Art, dies zu skalieren?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage