Liebes Forum,
suche gerade nach der besten Lösung für folgendes Problem:
Wir entwickeln ein komplexes aber klassisches LAMP-System mit hohen Skalierungsanforderungen, hunderten von Datenbanktabellen und einer riesigen Datenbasis (nein, wir sind nicht Facebook ;)). Unsere Datenbasis haben wir auf viele DB-Server verteilt (horizontale + vertikale Partitionierung der DB). Unsere Webserver skalieren horizontal, jeder Webserver hält eine Kopie der Datenbasis.
In unserem Büro ist der Aufbau folgendermaßen:
- die Programmierer verwenden Linux, Mac, Windows und mounten dabei ihr persönliches Entwicklungs-Verzeichnis (/www/developers/marius_sina) auf dem
- zentralen Entwicklungsserver, der wiederum Datenbankanfragen weiterleitet an
- unseren internen Entwicklungs-Datenbankserver der alle Datenbanken aufnimmt
Soweit, so gut, aber:
Leider kämpfen wir sehr damit, dass die interne Datenbank kaum Testdaten enthält, um gründlich auf Bugs und Performanz zu testen, bevor man ins SVN committed. Die Livedatenbank oder auch nur Teile davon ins Büro zu kopieren ist nicht möglich bzw. würde durch viele Dateninkonsistenzen erkauft.
Erstes Szenario: um ein einigermaßen realistisches Tesumfeld zu erhalten, kam im Team die Idee auf, die DB-Instanzen der verteilten Datenbasis per Replikation auf einem zentralen, im Rechenzentrum gehosteten Datenbankserver (der nicht in die Lastverteilung eingebunden ist) zu aggregieren. Nun könnte man also ohne Risiko für die Livedaten Queries auf diese Datenbasis im Rechenzentrum absetzen, von unserem Entwicklungsserver im Büro aus.
KO-Kriterium dafür ist aber der Roundtrip vom Büro ins RZ und zurück, das funktioniert also nicht.
Zweites Szenario: wir stellen unseren Entwicklungsserver aus dem Büro raus in das Rechenzentrum und mounten dann von draussen ins Büro hinein, arbeiten weiter mit Eclipse und Co., nur dass die Dateien physikalisch im Rechenzentrum gespeichert werden.
Aber auch das scheidet IMHO aus, aus ähnlichen Gründen wie Szenario 1. Beispielsweise würde eine globale Textsuche über den Quellcode quälend langsam sein.
Vielleicht hat irgendwer Anregungen für uns?
Danke tausendfach im Vorraus!
Marius