Sven Rautenberg: Ins Ausland: Servermanagement. Lastenverteilung, Replikation

Beitrag lesen

Moin!

Das alles läuft derzeit auf _einem_ Server - hier eine Frage nebenbei, durch das ganze Zeug entsteht natürlich ein Overhead, zweiter Server notwendig?

Welches "Zeug"?

Die Seite wurde nun in Spanisch, Englisch und Französisch übersetzt.
D.h. wir werden unseren Dienst in verschiedenen Ländern anbieten können.

Es soll einen Server in Texas geben, zwei weitere in anderen Ländern.

Ich dupliziere Dodos Meinung: Server vervielfacht man dann, wenn man mehr Leistung benötigt, und handelt sich damit komplett neue Klassen von Problemen ein, die man vorher, mit nur einem Server, nicht hatte.

Wie regel ich auf welchen Server der User weitergeleitet wird?

Hängt davon ab, wie du die Server strukturiert hast. Und welche weitere Infrastruktur zum Einsatz kommt, um die IPs der Server z.B. via DNS bekannt zu machen, ggf. nur für eingeschränkte Bereiche des Netzes.

Wie handhabt man generell mehrere Server im Ausland?
Teilen sich alle eine Datenbank oder muss ich jeden Schreibquery x (x=Anzahl der Server) fach ausführen?

Die Idee, mehrere Datacenter auf der Welt zu verteilen (und ein einzelner Server ist nunmal der Anfang eines Datacenters), ist verhältnismäßig aufwendig, wenn der Datenbestand der Center überall identisch sein soll.

Geh mal davon aus, dass dein gesamtes derzeitiges Setup, mit RAM-Caching und Zugriffszeiten im Mikrosekundenbereich, komplett vor die Hunde geht, wenn es durch langsame Netzwerkverbindungen total ausgebremst wird. Nur so als Idee: Ein Datenpaket aus den USA nach Deutschland zu bekommen, und wieder zurück, verbraucht rein an Transferzeit sowas um die 100 Millisekunden - das ist also mehr als das 100.000 fache eines Cache-Zugriffs.

Sprich: Du willst die Datenbank definitiv so lokal haben, wie möglich. Wenn's geht, auf derselben Maschine. Wenns notwendig wird, auf einer zweiten Maschine, die über schnellstmögliches LAN angebunden ist. Irgendeine lahme Connection rund um den Erdball ist definitiv keine gute Idee.

Wenn die Leute bieten dann kommt es in den letzten Sekunden zu 2000 Lese/Schreibzugriffe / Sekunde. Wenn ich diese Auktion also in mehreren Ländern anbieten möchte, wie kann ich dann die Performance gewährleisten?

Trennen.

User in den USA sind ausschließlich auf dem Texas-Server, und sehen nur das, was sich da drauf befindet. Wer unbedingt aus Deutschland dorthin bieten will, hat halt die Ping-Zeiten auszuhalten. Umgekehrt genauso. Und daraus ergibt sich dann irgendwie auch, auf welchem Server der User sich einloggt. Die Userdatenbank zwischen allen Servern zu sharen, bzw. jeweils eine lokale Kopie zu verteilen, sollte nicht so sehr das Problem sein. Wenn es überhaupt notwendig sein sollte. Die User-ID ließe sich ja beispielsweise passend partitionieren.

- Sven Rautenberg