
Drupal Multisite - Wann, Wie und Warum. Der ultimative Leitfaden zur Verwaltung mehrerer Drupal-Websites
Drupal kann so konfiguriert werden, dass es mehrere Websites von einem einzigen Code-Stamm aus betreibt. Eine solche Drupal-Installation wird als Multisite bezeichnet. Die Möglichkeit, ein Drupal zu nutzen, um mehrere Websites zu betreiben, ist großartig, erfordert aber andererseits einige Überlegungen. In diesem Artikel werde ich Drupal Multisite im Detail besprechen, um Ihnen ein tiefes, umfassendes Verständnis dafür zu geben, wie Multisite funktioniert, warum es verwendet wird, wann es sinnvoll ist und wann man es vermeiden sollte.
Was ist ein Drupal Multisite und wie funktioniert es
Eine Drupal-Multisite-Installation ist eine Installation, die mehr als eine Drupal-Website auf einem einzelnen Code-Stamm unterstützt.
Ein Multisite wird erreicht, indem ein separates Verzeichnis für jede Website im /sites/ -Ordner des Drupal-Systems erstellt wird. Zum Beispiel:
- /sites/website-one.com/
- /sites/website-two.com/
Jeder der Website-Ordner enthält eine eigene settings.php-Datei und ist mit einer separaten Datenbank verbunden. Es enthält auch eigene Binärdateien (Bilder, Uploads etc.).
Wenn eine Anfrage an den Server kommt, kann Drupal die Anfrage je nach dem Domain, von dem sie kommt, einem bestimmten Ordner zuordnen und die richtige Datenbank und Konfiguration (aktivierte Module, Themen, Inhalte etc.) laden, um uns mit einer vollkommen separaten Website zu versorgen.
Zusätzlich können wir steuern, welche Website welche Module und Themes verwenden kann, indem wir sie in den richtigen, nur für bestimmte Websites zugänglichen Ordnern ablegen.
Für einen sehr ausführlichen Artikel zu allen technischen Details lesen Sie bitte einen Blogbeitrag über wie Drupal im Hintergrund funktioniert.
Dies ist ein ziemlich einfaches Konzept, das uns enorme Macht gibt, eine robuste Plattform aufzubauen, die erfolgreich sogar Hunderte von Websites von einem Code-Stamm aus betreiben kann.
Drupal Multisite vs. Drupal Multidomain (Abgrenzung)
Bevor wir Drupal Multisite weiter diskutieren, müssen wir zuerst klar zwischen zwei unterschiedlichen Ansätzen unterscheiden, in denen eine Drupal-Installation mehrere Websites betreiben kann: ein Drupal Multisite im Vergleich zu Drupal Multidomain.
Im oben beschriebenen Multisite-Ansatz (und in diesem Artikel) verwenden wir den einzelnen Code-Stamm und erstellen separate Websites darauf. Jede Website hat ihre eigene Datenbank und Inhalte und im Wesentlichen sind alle Websites vollständig getrennt. Sie könnten sogar auf separaten Servern gehostet werden.
Im Multidomain-Ansatz verwenden wir nicht die oben beschriebene Multisite-Funktionalität. Stattdessen verwenden wir das Domain Access-Modul, um Variabilität in einzuführen, was unsere Website tut, abhängig davon, von welcher (Domain) die Anfrage kommt.
In einem Multidomain-Ansatz gibt es nur eine Datenbank, aber zusätzliche Einstellungen in Abhängigkeit von der Domain. Wir können viele Dinge steuern, wie:
- welche Inhalte zugänglich sind,
- welche Benutzer sich anmelden können,
- welches Theme aktiviert ist oder,
- welche Blöcke in Regionen platziert sind.
- Wir können auch separate Menüs und verschiedene andere Dinge haben.
Wir können Websites erstellen, die für den Endbenutzer völlig getrennt erscheinen, aber im Multidomain sind sie im Wesentlichen ein System, das untrennbar ist.
Ich werde hier nicht im Detail erklären, wie Multidomain funktioniert und welche Vor- und Nachteile es hat. Als Daumenregel:
- Wenn Ihr Ziel ist, Funktionen wiederzuverwenden, Code und Features zu standardisieren, die Wartung mehrerer Websites zu reduzieren und viele Websites schnell zu starten (z.B. per Markenwebsites, per Länderwebsites, etc.) -> verwenden Sie den Multisite-Ansatz
- Wenn Sie Benutzer, Inhalte, Daten usw. zwischen wenigen Websites, die sehr ähnlich sind und in gewisser Weise miteinander in Verbindung stehen, teilen möchten -> verwenden Sie den Multidomain-Ansatz
Was sind die Vorteile einer Multisite-Einrichtung?
Ein Drupal Multisite kann helfen, ein standardisiertes System zu erstellen, das hilft, eine Flotte von Websites effektiv zu starten und zu verwalten.
Multisite ermöglicht die Wiederverwendung der Arbeit für eine Website
Erstellen Sie ein Feature einmal und setzen Sie es auf allen Websites ein. Das ist der Heilige Gral des Multisite. Sie verwenden tatsächlich Code wieder.
Natürlich könnten Sie das auch ohne eine Multisite tun, aber in der Praxis, wenn Websites nicht auf einer Plattform sind, ist es wirklich schwierig. Dank einer Multisite funktioniert ein für eine Website erstelltes Feature auf anderen Websites sofort einsatzbereit.
Es ist jedoch nicht nur die Wiederverwendung von Features. Dank einer Multisite können Sie auf Drupals Mechanismus der Themenvererbung zurückgreifen. Sie können ein Basisthema erstellen und dann zusätzliche Themen erstellen, die die Grundlagen erben, aber zusätzliche Akzente setzen.
Dies spart enorme Mengen an Zeit für die Frontend-Arbeit. Sie stellen sicher, dass das Basisthema auf allen Geräten funktioniert und dann funktionieren alle Kind-Themen sofort einsatzbereit.
Multisite reduziert die Menge an Code und Wartung
Weniger Code ist weniger Ärger. Wenn Sie ein System haben, haben Sie viel weniger Code zu verwalten, als wenn Sie mehrere Systeme haben. Es erleichtert die Verwaltung des Codes.
- Stellen Sie sicher, dass es up-to-date ist
- Überprüfen Sie es
- Halten Sie einen hohen Standard aufrecht
Wenn Sie einen Fehler beheben, der etwas betrifft (z.B. ein Sicherheitsproblem oder wie ein Menü auf einem mobilen Gerät funktioniert), können Sie es auf alle Websites gleichzeitig bereitstellen.
Eine Multisite reduziert typischerweise technologische Schulden
Technische Schulden entstehen, wenn das Entwicklungsteam, um Ergebnisse schnell zu liefern, Kompromisse eingeht, die später bei Aktualisierungen oder Nutzungen Probleme verursachen könnten.
Seit über 10 Jahren arbeite ich in einer Drupal-Agentur und habe viele Websites gesehen, die von verschiedenen Teams in größeren und kleineren Agenturen erstellt wurden. Typischerweise werden einige Kompromisse eingegangen, um die aggressiven Fristen einer Website zu erfüllen.
Insgesamt sind technische Schulden keine schlechte Sache, sondern eher eine geschäftliche Entscheidung - schnell liefern und dann refaktorisieren. Es erledigt die Arbeit, aber es könnte später Auswirkungen haben.
Das Problem vieler Websites ist jedoch, dass diese Schulden nie bezahlt werden. Es gibt keine Budgets, um zurückzukehren und zu refaktorisieren, zu reparieren und zu verbessern, sobald die Website live ist. Das Team wechselt zur nächsten Website, bei der die Fristen ähnlich sind, und dann zur nächsten. Bei jedem Auftrag werden einige Schulden aufgenommen. Schließlich hat das Unternehmen viel Code (separaten Code für jede Website) und jede Code hat einige Schulden.
Diese Schulden kommen dann, wenn Aktualisierungen vorgenommen werden müssen oder Änderungen an der Website erforderlich sind (z.B. Rebranding etc.). Plötzlich stellt sich heraus, dass mehr Zeit für die Aktualisierung und Änderung aufgewendet werden muss, als erwartet, weil das System nicht so flexibel ist, wie wir es gerne hätten oder einige Dinge nicht so funktionieren, wie sie sollten. Und dies tritt bei jeder Website ein bisschen anders auf.
Ein Multisite-Ansatz beseitigt dieses Problem sehr oft.
Erstens, die Tatsache, dass Sie weniger Code haben, reduziert bereits Ihre technologischen Schulden.
Zweitens, Multisite-Systeme werden typischerweise in höherer Qualität geliefert als „viele einzelne separate Websites“. Es gibt einige Faktoren, die dazu führen:
- Das Unternehmen kann sich die Zeit nehmen, den richtigen Anbieter für alle seine Websites auszuwählen, was auf einer Pro-Website-Basis möglicherweise ein zu teurer und komplexer Prozess sein könnte
- Die Entwicklungsteams achten stärker darauf, flexible und langlebige Lösungen zu schaffen, wenn sie wissen, dass es nicht nur eine Website sein wird, sondern viele, und jede aufgenommene Schulden wird sie schnell heimsuchen.
- Es ist auch einfacher, den Bedarf an einer Ruhephase dem Management zu verkaufen, wenn es auf vielen Websites verwendet wird, anstatt auf einer.
Um mehr über Multisite und technische Schulden zu erfahren, lesen Sie bitte meinen Blogbeitrag über die Reduzierung technologischer Schulden durch den Aufbau einer Drupal-Multisite.
Eine Multisite ermöglicht es dem Unternehmen, Websites schnell zu starten
Was viele Unternehmen suchen, wenn sie sich für eine Multisite entscheiden, ist die Fähigkeit, Websites schneller und kostengünstiger zu starten.
Eine Drupal Multisite mit einem integrierten Installationsprofil kann es ermöglichen, in Stunden (wenn nicht Minuten) ein neues Website-Konzept zu starten, das vollständig bereit zur Inhaltseingabe ist und mit begrenzter Unterstützung durch die IT.
Ein Drupal-Installationsprofil ist eine Möglichkeit, eine Menge Funktionalität und Konfiguration, die einst in einem installierbaren Paket erstellt wurden, festzuhalten, das dann immer wieder lanciert werden kann. Unternehmen, die viele Websites schnell erstellen müssen, können massive Vorteile durch die Verwendung des Multisite-Ansatzes gewinnen.
Lesen Sie mehr über Installationsprofile in einer Multisite.
Eine Multisite reduziert die Wartungskosten
Wenn wir eine Code-Basis haben, ist es günstiger, sie zu warten. In dem oben erwähnten Beitrag über die Reduzierung der technologischen Schulden habe ich eine kurze Berechnung durchgeführt, dass wenn ein Unternehmen 50 Websites hat und jede 20 Stunden im Monat benötigt, sich dies schnell auf 1000 Stunden im Monat Arbeit summiert, nur um die Wartung durchzuführen. Eine Multisite kann dies drastisch reduzieren, da viele der Operationen, die für eine Website durchgeführt werden, automatisch auf alle anderen übertragen werden.
Was sind die Nachteile des Multisite-Ansatzes?
Wie bei jeder Lösung hat auch eine Multisite einige Punkte, die berücksichtigt werden müssen.
Es ist technologisch anspruchsvoller
Der Aufbau und die Wartung einer erfolgreichen Multisite-Installation erfordert mehr technisches Können als der Aufbau mehrerer vollständig separater Drupal-Websites. Es gibt mehr Dinge, die berücksichtigt werden müssen, und mehr Einstellungen, die verwaltet werden müssen. Insgesamt ist das System komplexer.
Ein unzureichend erfahrenes Team könnte mit Problemen und Schwierigkeiten konfrontiert werden, die die Entwicklung verlangsamen und die Vorteile einer Multisite könnten niemals erlangt werden. Die Wahl des richtigen Drupal-Entwicklungsteams ist entscheidend für den Erfolg des Projekts. Es wäre am besten, wenn das Unternehmen über vorherige Erfahrungen mit Drupal-Multisite verfügte.
Mehr Planung ist erforderlich
Wenn Sie eine Website erstellen, ist es viel einfacher, schnell zu iterieren, zu ändern und anzupassen. Wenn Sie eine Multisite aufbauen, könnten Änderungsanfragen größere Refaktorisierungen erfordern.
- Sie planen für viele Websites. Wann immer Sie etwas ändern, müssen Sie berücksichtigen, wie sich das auf alle anderen Websites auswirken wird. Sie müssen darüber nachdenken, wie Sie möchten, dass alle Websites insgesamt arbeiten, anstatt wie Sie möchten, dass dieses bestimmte Banner oder Formular auf einer Website funktioniert.
- Änderungen in einer Multisite erfordern mehr Refaktorisierungen und sind teurer. Wenn Sie etwas Neues oder eine Änderung für eine Website benötigen, müssen Sie normalerweise das Installationsprofil ändern und Updates für die bereits erstellten und live geschalteten Websites schreiben. Dies ist ein schwierigerer Prozess als nur eine Website zu ändern.
Websites sollten einem Standard entsprechen
Multisite ist großartig, weil es Ihnen ermöglicht, zuvor erstellte Komponenten wiederzuverwenden. Dies ist jedoch ein zweischneidiges Schwert. Diese Komponenten funktionieren, wie sie es tun. Um die bereits vorhandenen Komponenten nutzen zu können, müssen Sie sich an einige zuvor festgelegte Standards halten. Wenn Sie zum Beispiel einen Veröffentlichungsworkflow erstellen, wäre es großartig, wenn alle Websites ihm folgten.
Zum Glück können Sie in Drupal fast immer auf einer pro-Website-Basis Änderungen vornehmen, aber je mehr Sie tun, desto weniger Vorteile werden Sie von einer Multisite haben.
Wann man eine Multisite verwenden sollte
Wir wissen jetzt, wie eine Multisite funktioniert und welche Vorteile sie bietet. Wann sollten Sie also einen Multisite-Ansatz verwenden?
Wenn Sie viele ähnliche Websites erstellen müssen
Organisationen haben oft die Notwendigkeit, viele Websites zu erstellen, die sich hauptsächlich in den Inhalten unterscheiden, aber insgesamt die gleiche oder sehr ähnliche Funktionalität und Erscheinung haben: eine Website pro Land, pro Marke, die gleiche Art von Website jedes Jahr für eine Veranstaltung oder eine Website pro Abteilung einer Universität.
Wenn es 2 oder mehr Websites gibt
Offensichtlich können Sie keine Multisite mit nur einer Website haben. Was ich jedoch sagen möchte, ist, dass es Sinn macht, eine Multisite für nur 2 Websites zu erstellen. Und je größer sie sind, desto mehr macht es Sinn, es zu tun.
Wenn sie nicht auf einer Multisite sind, werden sich ihre Codes immer mehr unterscheiden und es wird schwieriger sein, dass ein Team sie verwaltet.
Ihr Team wird einen viel besseren Fokus haben, wenn es nur eine Code-Basis gibt, über die es sich Gedanken machen muss.
Wann man keine Multisite verwenden sollte
Eine Multisite ist eine großartige Möglichkeit, hochwertige Systeme zu erstellen, die dann mehrere Websites betreiben können. Das gesagt, es ist nicht immer eine gute Idee, eine Multisite zu erstellen. Die Stärke einer Multisite liegt in der Wiederverwendbarkeit von Dingen - einmal erstellen, überall verwenden. Außerdem ist es die gemeinsame Wartung - einen Fehler einmal beheben - auf alle Websites bereitstellen. Wenn wir diese Vorteile nicht erreichen können, könnte eine Multisite nicht der richtige Ansatz sein.
Wenn sich die Websites stark unterscheiden sollen
Wenn Sie Websites erstellen müssen, die nichts gemeinsames haben, wird Ihnen der Aufbau auf einer Multisite keine Vorteile bringen. Wenn Sie zum Beispiel eine E-Commerce-Website, eine Marketing-Website, ein Intranet und eine Social-Networking-Website erstellen müssen, die alle unterschiedlich funktionieren und aussehen, wären Sie wahrscheinlich besser dran, sie separat zu erstellen.
Sie könnten vielleicht einige Komponenten wiederverwenden, aber wahrscheinlich nicht viele und die zusätzliche technische Komplexität würde sich wahrscheinlich nicht auszahlen.
Wenn separate Teams die Websites erstellen sollen
Eine Multisite erfordert eine gute Planung und technische Koordination, um sicherzustellen, dass das, was erstellt wird, auf allen Websites funktioniert. Dies wird am besten erreicht, wenn es einen technischen Leiter gibt, der Pläne validieren und Liefergegenstände akzeptieren kann. Wenn separate Teams Websites parallel erstellen, könnte es schwierig sein, diese zu koordinieren, um ein gutes Ergebnis zu erzielen.
Das gesagt, es ist ziemlich üblich bei Unternehmen, die Hunderte von Websites haben, eine Multisite-Plattform mit Installationsprofilen zu erstellen und dann separate Teams einzuladen, die Websites an verschiedene Anforderungen anzupassen (z.B. lokale Märkte).
Das Team kann dann die Multisite selbst nicht ändern. Es kann nur innerhalb eines begrenzten Umfangs arbeiten - typischerweise nur ein Subthema hinzufügen und Module für eine bestimmte Website. Dieser Ansatz könnte ein guter Kompromiss sein, wenn lokale Einsichten wichtig sind und wenn wirklich Hunderte von Websites benötigt werden und ein Team nicht in der Lage wäre, innerhalb eines vernünftigen Zeitrahmens zu liefern.
Andere Multisite-Überlegungen für eine Multisite
Stellen Sie sicher, dass Ihr Hosting dies unterstützt
Da eine Multisite einen Mechanismus zum Verwalten mehrerer Domains erfordert, die genau auf die gewünschte Stelle zeigen und der Bereitstellungsmechanismus genau so ist, wie Sie es benötigen, müssen Sie sicherstellen, dass Ihr Hosting-Anbieter dies zulässt. Die meisten größeren Hosting-Anbieter tun dies, aber nicht alle, also überprüfen Sie dies vor der Auswahl.
Automatisieren Sie die Bereitstellung
Wenn Sie es ernst meinen, eine robuste Multisite aufzubauen, müssen Sie sicherstellen, dass Sie über gute DevOps-Prozesse verfügen, die dies unterstützen.
Da das Bereitstellen von Änderungen an einer Multisite bedeutet, Änderungen an vielen Websites gleichzeitig bereitzustellen, ist die Automatisierung des Prozesses ein sehr guter Ansatz, um Vorhersagbarkeit zu gewährleisten und Fehler zu vermeiden.
Automatisieren Sie Tests
Da jede Änderung, die Sie bereitstellen, standardmäßig auf alle Websites bereitgestellt werden muss, müssen Sie sicherstellen, dass Sie nichts auf einer der live schaltenden Websites kaputt gemacht haben. Wenn es viele Websites gibt, die Sie verwalten, könnte es sehr mühsam und zeitaufwändig sein, dies manuell zu tun.
Der beste Weg, um zu validieren, dass neue Änderungen die Funktionalität keiner der Websites beeinträchtigen, ist, sie automatisch zu testen. Viele Tools sind jetzt verfügbar, die Ihnen helfen können, die Funktionalität und das Erscheinungsbild der Websites sogar auf vielen Browsern und Geräten zu testen. Die Automatisierung wird über lange Zeiträume hinweg für hohe Qualität sorgen.
Zusammenfassung
Eine Drupal Multisite ermöglicht es Unternehmen, viele Websites auf demselben Code-Stamm zu erstellen. Es ist eine großartige Möglichkeit, die Menge an Code zu reduzieren und die Zeit zu reduzieren, die erforderlich ist, um ihn zu warten. Es kann Organisationen helfen, Websites schneller und mit höherer Qualität zu bauen, dank Installationsprofilen und der Wiederverwendung derselben Funktionalität auf vielen Websites. Es kann Zeit und Geld sparen. Andererseits erfordert es größere Planung und mehr technische Fähigkeiten des implementierenden Teams.
Wenn Sie mehrere Websites erstellen und warten müssen, sollten Sie definitiv einen Multisite-Ansatz in Betracht ziehen.