Budowanie architektury CMS - scentralizowanej lub nie - php, system zarządzania treścią

Mam serwer dedykowany i potrzebujębudowanie nowej wersji mojego osobistego CMS PHP5 dla moich klientów. Odkładając na bok pytania, czy powinienem rozważyć użycie open source, potrzebuję twoich opinii na temat architektury CMS.

Pierwsze podejście (ponieważ serwer jest całkowicie włączonymoja kontrola) to zbudowanie scentralizowanego systemu, który może obsługiwać wiele witryn z jednego panelu administracyjnego. Podstawową ideą jest to, że jestem w stanie zalogować się jako superużytkownik, utworzyć nową stronę (technicznie tworzy nowy katalog główny i nową bazę danych, a może kilka innych rzeczy), przypisać moduły i wtyczki dla konkretnego klienta lub opracować nowe, jeśli potrzebne. Jeśli klient zaloguje się do tego panelu, zobaczy on i może zarządzać tylko zawartością witryny.

Widziałem taki system (był to kompilacja niestandardowa),bardzo miło jest naprawiać błędy, a nowe funkcje mają natychmiastowy wpływ na wszystkich klientów bez konieczności łatania każdego CMS-a, który może być również na innym serwerze hostingowym ...

Negatywnym aspektem, jaki widzę, jest skalowalność - co jeśli będę musiał dodać drugi serwer, jak scalić je, aby zachować pojedynczy rdzeń.

Drugi jest klasyczny - samodzielny CMS dla każdego klienta.

W którą stronę pójdziesz i dlaczego?

Dziękuję za Twój czas.

Odpowiedzi:

2 dla odpowiedzi № 1

Gdybyś miał mieć jeden centralny system dla wszystkichklienci, skalowalność może stać się łatwiejsza. Możesz mieć jeden duży serwer bazy danych i kilka identycznych serwerów WWW (prawdopodobnie za modułem równoważenia obciążenia), dzięki czemu nie musisz się martwić o podział klientów na różne serwery. Twoje zasoby są pula, więc jeśli jeden klient ma jeden dzień przy dużym ruchu może być zajęty przez kilka serwerów, zamiast przewracać jeden serwer (i wszystkie witryny innych klientów) na kolana.

You can get PHP sessions to work across multiple serwery albo przy użyciu „sesji trwałych” w konfiguracji równoważenia obciążenia, albo przez zmuszenie PHP do przechowywania danych w miejscu dostępnym dla wszystkich serwerów (np. baza danych).

Synchronizacja plików aplikacji internetowych z jedną bazą kodu nie powinna być zbyt trudna, istnieją narzędzia takie jak rsync, których możesz użyć, aby ci pomóc.


1 dla odpowiedzi nr 2

To naprawdę zależy od rodzajów witryn.To powiedziawszy, sugeruję rozważenie użycia oprogramowania do kontroli wersji do zarządzania wieloma instalacjami. W praktyce może to dać to samo, co w przypadku podejścia scentralizowanego, ale daje swobodę odroczenia aktualizacji jednej (lub kilku) witryn.


Powiązane pytania
Menu