2009-07-08 15 views
2

Ich habe einen dedizierten Server und ich brauche eine neue Version meines persönlichen PHP5 CMS für meine Kunden. Abgesehen von den Fragen, ob ich Open Source in Erwägung ziehen sollte, brauche ich Ihre Meinung zur CMS-Architektur.Building CMS Architektur - zentralisiert oder nicht

erster Ansatz (da der Server vollständig in meiner Kontrolle ist) ist ein zentralisiertes System zu bauen, die mehrere Webseiten, die auf einzelnen Administrationsbereich unterstützen können. Grundidee ist, dass ich mich als Super User anmelden kann, eine neue Site erstellen kann (technisch erstellt sie ein neues Web Root und eine neue Datenbank und vielleicht noch andere Dinge), Module und Plugins für bestimmte Kunden zuweisen oder neue entwickeln erforderlich. Wenn sich der Kunde in diesem Bereich anmeldet, kann er nur den Inhalt seiner Website sehen und verwalten.

ich ein solches System gesehen haben (es war Maßarbeit), um es zu Fehlerbehebungen und neue Funktionen sehr schön ist, wirkt sich auf alle Kunden sofort ohne die Notwendigkeit jedes CMS Patchen, die auch auf anderen Hosting-Server sein kann ...

Der negative Aspekt, den ich sehen kann, ist die Skalierbarkeit - was ist, wenn ich einen zweiten Server hinzufügen muss, wie füge ich sie zusammen, um einen einzelnen Kern zu erhalten.

Die zweite ist klassisch - Standalone-CMS für jeden Kunden.

Wohin werden Sie gehen und warum?

Vielen Dank für Ihre Zeit.

Antwort

2

Wenn Sie ein zentrales System für alle Clients hätten, könnte die Skalierbarkeit einfacher werden. Sie können einen großen Datenbankserver und mehrere identische Webserver (wahrscheinlich hinter einem Load Balancer) haben und müssen sich nicht darum kümmern, die Clients auf verschiedene Server aufzuteilen. Ihre Ressourcen werden gepoolt. Wenn also ein Client einen Tag mit starkem Datenverkehr hat, kann er von mehreren Servern genutzt werden, anstatt einen Server (und die Sites aller anderen Clients) in die Knie zu zwingen.

Sie können PHP-Sitzungen für mehrere Server verwenden, indem Sie entweder "sticky sessions" in Ihrer Lastenausgleichskonfiguration verwenden oder indem Sie PHP dazu bringen, die Daten für alle Server (z. B. eine Datenbank) zu speichern.

Um die Webanwendungsdateien auf eine Codebasis synchronisiert zu halten, sollte es nicht zu schwierig sein. Es gibt Tools wie rsync, die Sie verwenden können, um Ihnen zu helfen.

1

Es hängt wirklich von den Arten der Aufstellungsorte ab. Das heißt, ich würde vorschlagen, dass Sie Software zur Versionskontrolle verwenden, um mehrere Installationen zu verwalten. In der Praxis kann dies dasselbe wie bei einem zentralisierten Ansatz sein, aber es gibt Ihnen die Freiheit, die Aktualisierung einer einzelnen (oder mehrerer) Sites zu verschieben.

+0

+1 - wenn Sie ein erweiterbares System mit einer Reihe von benutzerdefinierten Code pro Website haben, gibt es einen Kompromiss. Sie können einmal eine Korrektur vornehmen und es wird alles durchgehen, aber dann müssen Sie den Fix gegen alles testen, bevor Sie es bereitstellen können. –