
Ich habe eine individuell geschriebene E-Commerce-App, die auf einem eigenen dedizierten Server läuft. Alle Konstanten (wie Datenbankverbindungen, Dateipfade usw.) sind in einer einzigen _constants.php-Datei definiert. Der gesamte Code wird von SVN verfolgt. (außer der Konstantendatei)
Jetzt wachsen wir. Ich wechsle zu einem Apache-System mit 3 Servern und Lastausgleich, mit einem dedizierten MySQL-Server und einem dedizierten „gemeinsam genutzten“ Server. Der gemeinsam genutzte Server ist mit jedem Server mit Lastausgleich symbolisch verknüpft. lb1 ist der Master und so eingestellt, dass das Verzeichnis public_html jede Minute per Fsync mit den anderen Servern synchronisiert wird.
Nun stehe ich vor der Aufgabe, die App auf das neue Server-Setup zu migrieren. Fragen:
Dateipfadkonstanten. Jeder der Lastenausgleichsserver hat einen anderen Dateipfad für seinen Ordner „public_html“. Was mache ich hier? Checke ich den Code einfach in lb1 aus und lege den Konstantenordner außerhalb von „public_html“? Schreibe ich den Konstantenordner neu, damit er herausfinden kann, in welchem Pfad er sich befindet?
Ich verschiebe alle „gemeinsam genutzten“ Dateien auf den gemeinsam genutzten Server, wie Bilder, JavaScript, CSS usw. Dann ändere ich den Pfad, um in der Konstantendatei auf sie zu verweisen. Der gesamte Codesatz, einschließlich dieser gemeinsam genutzten Dateien, ist jedoch in einem SVN-Repository enthalten. Ich dachte, ich würde auch einfach die gesamte Codebasis auf dem gemeinsam genutzten Server auschecken, obwohl die einzigen Dateien, auf die zugegriffen wird, die Bilder, JS und CSS sind. Dasselbe gilt für lb1. Checken Sie die gesamte Codebasis aus, obwohl die Grafiken, CSS und GFX von diesem Speicherort niemals geladen werden. Macht es einfacher. Ich weiß, dass ich Festplattenspeicher verschwende, aber auf diese Weise muss ich keine separaten SVN-Repositorys pflegen. Mache ich das falsch? Gibt es andere, bessere Möglichkeiten?
Ich habe einen Tomcat-Server, auf dem Solr läuft. Mein Host hat mir gesagt, dass er es auf lb1 laufen lässt und außerdem so eingestellt ist, dass der gesamte Tomcat-Ordner jede Minute per Rsync synchronisiert wird. Sollte das gut sein?
Ich habe eine Administratoroberfläche für die Mitarbeiter. Sie melden sich an, um Produkte zu ändern, Bestellungen zu bearbeiten und alle möglichen Dinge. Soll ich für sie eine Subdomäne einrichten, die sie für ihre Arbeit immer auf lb1 verweist?
Ich habe vor, alle Protokolldateien auf „Shared“ zu verweisen. Klingt das gut?
Cron-Jobs. Ich habe einen Master-Cron-Job. Er führt Codes aus, die auf die Datenbank und die Protokolldateien zugreifen. Ich gehe davon aus, dass ich ihn nur auf dem gemeinsam genutzten Server ausführen werde, was ein weiterer guter Grund dafür ist, dass sich die gesamte Codebasis auf dem gemeinsam genutzten Server befindet. Wie klingt das?
Welche weiteren Best Practices sollte ich kennen?
Wenn es einen besseren Ort gibt, um diese Frage zu stellen, lassen Sie es mich bitte wissen.
Dank im Voraus.