Drupal Multisite - When, How and Why.

Drupal Multisite - kiedy, jak i dlaczego. Kompletny przewodnik zarządzania wieloma stronami internetowymi na Drupalu

Drupal może zostać skonfigurowany do obsługi wielu stron internetowych z poziomu jednej bazy kodu. Taka instalacja Drupala nazywana jest instalacją multisite. Możliwość korzystania z jednego Drupala do obsługi wielu stron internetowych jest świetna, niemniej jednak wymaga uwagi. W niniejszym artykule omówię szczegółowo funkcjonalność instalacji Drupal multisite, aby dogłębnie i w pełni zrozumieć, w jaki sposób działa funkcjonalność multisite, dlaczego jest stosowana, kiedy ma to sens i kiedy należy jej unikać.

Co to jest Drupal multisite i jak to działa?

Instalacja Drupal multisite to instalacja, która obsługuje więcej niż jedną witrynę Drupala w jednej bazie kodu.

Funkcjonalność multisite jest osiągana poprzez stworzenie osobnego folderu dla każdej witryny w katalogu /sites/ systemu Drupal. Przykładowo:

  1. /sites/website-one.com/
  2. /sites/website-two.com/

Każdy z folderów witryny zawiera swój własny plik settings.php i łączy się z oddzielną bazą danych. Zawiera również własne pliki binarne (zdjęcia, uploady, itp.).

Gdy zgłoszenie dotrze do serwera, Drupal może je zmapować w zależności od tego, z jakiej domeny pochodzi z danego folderu i załadować odpowiednią bazę danych oraz konfigurację (aktywne moduły, motywy, treści, itp.), serwując całkowicie odrębną stronę internetową.

Dodatkowo możemy kontrolować, które strony mogą korzystać z poszczególnych modułów i motywów, umieszczając je w odpowiednich folderach dostępnych tylko dla poszczególnych stron.

Bardzo szczegółowy artykuł na temat wszystkich zagadnień technicznych można znaleźć w poście na blogu poświęconym temu, jak działa multisite w Drupalu.

Jest to dość prosta koncepcja, która daje nam ogromne możliwości zbudowania solidnej platformy, która z powodzeniem może obsługiwać nawet setki stron internetowych z jednej bazy kodu.

Drupal multisite vs. drupal multidomain (dysambiguacja)

Przed dalszą dyskusją na temat instalacji multisite Drupala musimy najpierw wyraźnie rozróżnić dwa różne podejścia, w których instalacja Drupala może obsługiwać wiele stron internetowych: Drupal multisite w porównaniu z podejściem multidomain.

W opisanym powyżej (i w tym artykule) podejściu multisite wykorzystujemy pojedynczą bazę kodu i tworzymy na niej oddzielne strony internetowe. Każda strona posiada swoją własną bazę danych i treść, w związku z tym zasadniczo wszystkie strony są całkowicie oddzielne. Mogą być nawet hostowane na oddzielnych serwerach.

W podejściu multidomain nie korzystamy z funkcjonalności multisite, jak opisano powyżej. Zamiast tego, używamy modułu Domain Access, aby wprowadzić zróżnicowanie odnośnie do tego, co robi nasza strona w zależności od tego, z jakiej domeny pochodzi zapytanie.

W podejściu multidomain istnieje tylko jedna baza danych, ale istnieją dodatkowe ustawienia w zależności od domeny. Możemy kontrolować wiele rzeczy, na przykład:

  • jakie treści są dostępne,
  • którzy użytkownicy mogą się zalogować,
  • który motyw jest aktywny lub,
  • które bloki są umieszczane w regionach.
  • Możemy też posiadać oddzielne menu i wiele innych rzeczy.

Możemy tworzyć strony internetowe, które dla użytkownika końcowego wydają się całkowicie odrębne, ale w wielu dziedzinach są w istocie jednym systemem, który jest nierozłączny.

Nie będziemy tu wdawali się szczegółowo w kwestię tego, jak działa podejście multidomain i jakie są jego zalety i wady. Co do zasady:

  • Jeśli Twoim celem jest ponowne wykorzystanie funkcjonalności, standaryzacja kodu i funkcji, zmniejszenie liczby serwisów internetowych i szybkie uruchamianie wielu serwisów (np. strony internetowe konkretnej marki, strony danego kraju, itp.) -> skorzystaj z podejścia multisite. 
  • Jeśli chcesz dzielić się użytkownikami, treściami, danymi, itp. pomiędzy kilkoma stronami internetowymi, które mają bardzo podobny charakter i w jakiś sposób odnoszą się do siebie -> skorzystaj z podejścia multidomain.

Jakie są korzyści płynące z instalacji multisite?

Instalacja Drupal multisite jest pomocna w zbudowaniu ustandaryzowanego systemu, który pomoże uruchomić i efektywnie zarządzać flotą serwisów internetowych.

Instalacja multisite pozwala na ponowne wykorzystanie już wykonanej pracy dla jednej strony internetowej

Zbuduj funkcję jeden raz i wdrażaj ją na wszystkich stronach internetowych. To właśnie święty Graal instalacji multisite. Tak naprawdę ponownie używasz kodu.

Można by to zrobić oczywiście bez funkcjonalności multisite, ale w praktyce, jeśli strony internetowe nie znajdują się na jednej platformie, to zadanie jest bardzo trudne. Dzięki multisite funkcja zaprojektowana dla jednej strony internetowej działa sprawnie z innymi stronami.

Niemniej jednak nie jest to tylko ponowne wykorzystanie funkcjonalności. Dzięki multisite możesz wykorzystać „mechanizm dziedziczenia motywu” Drupala. Możesz zbudować motyw podstawowy, a następnie stworzyć dodatkowe motywy, które „odziedziczą” podstawę, ale dodają swoje akcenty.

Pozwala to na zaoszczędzenie ogromnej ilości czasu na pracach frontendowych. Upewniasz się, że motyw podstawowy działa na wszystkich urządzeniach, a następnie wszystkie pochodne motywy również działają sprawnie.

theme-inheritance

Multisite zmniejsza ilość kodu i prac związanych z utrzymaniem strony

Mniej kodu to mniej kłopotów. Jeśli posiadasz jeden system, to masz o wiele mniej kodu do zarządzania w porównaniu do rozwiązania obejmującego wiele systemów. Ułatwia to zarządzanie kodem.

  • Upewnij się, że jest aktualny
  • Sprawdź go
  • Utrzymaj wysoki standard

Jeśli naprawisz błąd, który ma na coś wpływ (np. problem bezpieczeństwa lub sposób działania menu na urządzeniu mobilnym), możesz wdrożyć go na wszystkich stronach jednocześnie.

fix-one-deploy

Multisite (zazwyczaj) zmniejsza dług technologiczny

Dług technologiczny powstaje, gdy w celu szybkiego zapewnienia wyników zespół developerski idzie na kompromis, co później może powodować problemy w przypadku aktualizacji lub użytkowania.

Pracując w agencji drupalowej przez ponad 10 lat, widziałem wiele stron internetowych budowanych przez różne zespoły pracujące w większych i mniejszych grupach. Najczęściej kompromisy są efektem konieczności dotrzymania wymagających terminów, jakie zazwyczaj dotyczą witryny internetowej.

Ogólnie dług technologiczny nie jest czymś złym, a raczej decyzją biznesową - pozwala na szybką wysyłkę i późniejszy refaktoring. Praca została wykonana, ale może wystąpić efekt domina.

Problemem wielu stron internetowych jest jednak to, że ten dług nigdy nie zostaje spłacony. Gdy strona już działa - nie ma budżetów na zwrot i refaktoring, naprawy i poprawki. Zespół przechodzi do następnej strony internetowej, gdzie terminy są podobne, a następnie do kolejnej. Przy każdym zleceniu dług rośnie. Ostatecznie, firma ma dużo kodu (osobny kod dla każdej strony internetowej), a każdy kod jest w pewnym stopniu zadłużony.

Zadłużenie to daje znać o sobie wówczas, gdy konieczne są aktualizacje lub wprowadzenie zmian na stronie (np. rebranding itp.). Nagle okazuje się, że trzeba poświęcić więcej czasu na aktualizacje i zmiany niż przewidywano, ponieważ system nie jest tak elastyczny, jak byśmy sobie tego życzyli, albo niektóre rzeczy nie działają tak, jak powinny. Dotyczy to w pewnym stopniu każdej strony, chociaż w różnej formie.

Podejście multisite dość często likwiduje ten problem.

Po pierwsze, fakt, że masz mniej kodu już zmniejsza twój dług technologiczny.

Po drugie, systemy multisite oznaczają zazwyczaj wyższą jakość w porównaniu do „wielu pojedynczych oddzielnych stron internetowych”. Jest kilka czynników, które mają na to wpływ:

  • Firma potrzebuje czasu, aby wybrać odpowiedniego dostawcę dla wszystkich swoich stron internetowych. Może to być zbyt kosztowny i skomplikowany proces, aby przejść przez niego na zasadzie pre-website.
  • Zespoły developerskie bardziej dbają o tworzenie elastycznych i długotrwałych rozwiązań, jeżeli wiedzą, że nie będzie to tylko jedna strona internetowa, ale wiele stron i zaciągnięty dług pojawi się szybko dając o sobie znać.
  • Łatwiej jest również sprzedać zarządowi konieczność refaktoringu, jeśli proces będzie dotyczył wielu stron internetowych a nie tylko jednej.

Aby dowiedzieć się więcej na temat długu multisite oraz technologicznego, odsyłam do mojego postu na blogu poświęconemu radykalnemu zmniejszeniu długu technologicznego w organizacji poprzez budowę instalacji multisite Drupala.

Multisite pozwala firmie na szybkie uruchamianie stron internetowych

To, czego wiele firm szuka decydując się na multisite, to możliwość szybszego i mniej kosztownego uruchamiania stron internetowych.

Multisite Drupal z wbudowanym profilem instalacyjnym umożliwia uruchomienie nowej strony internetowej w czasie liczonym w godzinach (jeśli nie minutach), w pełni gotowej do wprowadzenia treści i przy ograniczonym wsparciu ze strony IT.

Profil instalacyjny Drupala to sposób na uchwycenie wielu funkcjonalności i konfiguracji, które kiedyś były wbudowane w pakiet instalacyjny; następnie mogą być uruchamiane ponownie i ponownie. Firmy, które wymagają szybkiego postawienia wielu stron internetowych, mogą uzyskać ogromne korzyści, dzięki zastosowaniu podejścia multisite.

installation-profile

Dowiedz się więcej o profilach instalacyjnych w tworzeniu multisite.

Multisite obniża koszty utrzymania

Jeśli mamy jedną bazę kodu, taniej jest ją utrzymać. We wspomnianym wcześniej poście o redukowaniu długu technologicznego przedstawiłem krótkie wyliczenie wskazujące, że w przypadku, gdy firma posiada 50 stron internetowych, a każda z nich wymaga 20 godzin pracy miesięcznie, to szybko sumuje się 1000 godzin pracy miesięcznie przeznaczonych wyłącznie na ich utrzymanie. Multisite może ten czas wydatnie zmniejszyć, ponieważ wiele operacji wykonywanych dla jednej strony internetowej jest automatycznie propagowanych na wszystkie pozostałe strony.

Jakie są wady podejścia multisite?

Jak w przypadku każdego rozwiązania, także w przypadku multisite istnieje kilka kwestii, na które należy zwrócić uwagę.

System multisite jest bardziej zaawansowany technologicznie

Zbudowanie i utrzymanie poprawnej instalacji multisite wymaga większych umiejętności technicznych niż budowanie wielu indywidualnych drupalowych stron internetowych. Jest więcej rzeczy, które muszą zostać uwzględnione i więcej ustawień, którymi należy zarządzać. Ogólnie rzecz biorąc, system jest bardziej złożony.

Niewystarczająco doświadczony zespół może ugrzęznąć w problemach i kwestiach, które spowolnią rozwój, a korzyści z instalacji multisite mogą wymknąć się z rąk. Wybór odpowiedniego zespołu programistów Drupala ma kluczowe znaczenie dla powodzenia projektu. Najlepiej by było, gdyby firma dysponowała wcześniejszym doświadczeniem z drupalowymi instalacjami multisite.

Planowanie to podstawa

Jeśli zbudujesz jedną stronę internetową, o wiele łatwiej będzie ją szybko iterować, zmieniać i dostosowywać. Jeśli budujesz kilka stron, żądania zmian mogą wymagać większych prac w zakresie refaktoringu.

  1. Planujesz wiele stron internetowych. Za każdym razem, gdy coś zmieniasz, musisz zastanowić się, jak to wpłynie na wszystkie pozostałe strony. Musisz się przemyśleć, jak ogólnie mają działać wszystkie strony zamiast konkretnego baneru lub formularza na jednej witrynie.
  2. Zmiany w wielu miejscach wymagają większego poziomu refaktoringu i są droższe. Jeśli potrzebujesz czegoś nowego lub zmiany dla jednej strony, zazwyczaj wystarczy zmiana profilu instalacji i utworzenie aktualizacji już utworzonych i działających stron internetowych. Jest to trudniejszy proces niż zmiana jednej witryny internetowej.

Strony internetowe powinny spełniać normy

Instalacja multisite jest świetna, ponieważ pozwala na ponowne wykorzystanie wcześniej zbudowanych komponentów. Jest to jednak miecz obosieczny. Takie komponenty działają tak, jak działają. Aby móc używać już istniejących komponentów, będziesz musiał dostosować się do pewnych norm, które ustaliłeś już wcześniej. Na przykład, jeśli tworzysz jeden obieg publikacji, byłoby dobrze, żeby wszystkie strony internetowe postępowały zgodnie z nim.

Na szczęście w Drupalu prawie zawsze można zmienić rzeczy na zasadzie wykonania dla konkretnej strony, ale im więcej takich działań, tym mniej korzyści z instalacji multisite.

Kiedy używać multisite

Wiemy już jak działa multisite i jakie są jego korzyści. Kiedy więc należy stosować podejście multisite?

Gdy musisz zbudować wiele podobnych stron internetowych

Organizacje dość często mają potrzebę budowania wielu stron internetowych, które różnią się od siebie głównie treścią, ale generalnie mają taką samą lub bardzo podobną funkcjonalność i wygląd: strona dla danego kraju, marki, ten sam typ strony corocznie na imprezę lub strona dla wydziału na uczelni.

multiple-websites-reasons

Gdy istnieją 2 lub więcej stron internetowych

Rzecz jasna, nie można mieć instalacji multisite tylko z 1 stroną internetową. Natomiast chcę powiedzieć, że sensowne jest stworzenie instalacji multisite nawet dla 2 stron internetowych. I im większe są, tym większy ma to sens.

Jeśli nie będzie ich na instalacji multisite, ich kody będą się coraz bardziej różnić i trudniej będzie je utrzymać jednemu zespołowi.

Twój zespół będzie się lepiej koncentrował, jeśli będzie miał tylko jedną bazę kodu, którą będzie się zajmował.

Kiedy nie używać instalacji multisite

Multisite to świetny sposób na zbudowanie wysokiej jakości systemów, które następnie mogą obsługiwać wiele stron internetowych. Jednak nie zawsze jest to najlepszy pomysł na tworzenie wielu stron. Siłą instalacji multisite jest możliwość wielokrotnego wykorzystania rzeczy - tworzysz raz, używasz wiele razy. Ponadto, to także wspólne utrzymanie - naprawiasz błąd raz i wdrażasz na wszystkich stronach. Jeśli nie jesteśmy w stanie osiągnąć tych korzyści, instalacja multisite może nie okazać się najlepszym rozwiązaniem.

Jeśli strony internetowe mają się bardzo różnić

Jeśli musisz stworzyć strony internetowe, które nie mają nic wspólnego ze sobą, budowanie ich na jednej instalacji multisite nie przyniesie żadnych korzyści. Na przykład, jeśli musisz opracować stronę internetową e-commerce, stronę marketingową, intranet i stronę społecznościową, które wszystkie działają i wyglądają inaczej, najprawdopodobniej lepiej będzie zbudować je oddzielnie.

Być może mógłbyś ponownie wykorzystać niektóre komponenty, ale raczej nie za wiele - za to wystąpią dodatkowe komplikacje techniczne i instalacja prawdopodobnie nie zwróci się.

Jeśli strony internetowe mają być budowane przez oddzielne zespoły

Multisite wymaga dobrego planowania i koordynacji technicznej, aby upewnić się, że to, co jest zbudowane, będzie działać na wszystkich stronach internetowych. Najłatwiej to osiągnąć, jeśli istnieje jeden lider technologiczny, który może zatwierdzać plany i akceptować wyniki. Jeśli oddzielne zespoły tworzą strony internetowe równolegle, koordynacja może być za trudna, aby osiągnąć dobry wynik.

Niemniej jednak, wśród firm, które posiadają setki stron internetowych, dość popularne jest budowanie wielobranżowej platformy z profilami instalacyjnymi, a następnie zapraszanie odrębnych zespołów do dostosowania stron do różnych wymagań (np. rynków lokalnych).

Zespół nie może wtedy zmienić samej instalacji multisite. Może pracować tylko w ograniczonym zakresie - zazwyczaj jedynie dodając skórkę dziedziczącą i moduły dla konkretnej strony. Takie podejście może być dobrym kompromisem, jeśli lokalne spostrzeżenia są ważne i jeśli naprawdę potrzebne są setki stron internetowych, których jeden zespół nie byłby w stanie dostarczyć w rozsądnych ramach czasowych.

Pozostałe uwagi na temat instalacji multisite

Upewnij się, że twój hosting to obsługuje

Ze względu na to, że instalacja multisite wymaga mechanizmu zarządzania wieloma domenami skierowanymi dokładnie tam, gdzie chcesz, a mechanizm wdrażania musi być dokładnie taki, jakiego potrzebujesz, musisz upewnić się, że Twój dostawca usług hostingowych umożliwia taki dobór. Większość większych dostawców usług hostingowych zapewnia taką możliwość, ale nie wszyscy, stąd należy tę kwestię sprawdzić przed wyborem dostawcy.

Automatyzacja wdrażania

Jeżeli poważnie myślisz o zbudowaniu solidnej instalacji multisite, musisz mieć pewność, że dysponujesz dobrymi procesami DevOps, które będą ją obsługiwały. Ponieważ wprowadzenie zmian na wielu stronach internetowych oznacza wprowadzenie zmian na wielu stronach jednocześnie, automatyzacja procesu jest bardzo dobrym podejściem, które zapewnia przewidywalność i pozwala uniknąć błędów.

Automatyzacja testów

Ponieważ każda zmiana, którą będziesz wdrażać, będzie domyślnie musiała zostać wdrożona na wszystkich stronach internetowych, należy się upewnić, że nie zepsułeś niczego na żadnej z działających stron. W przypadku zarządzania wieloma stronami internetowymi ręcznie wykonywanie tego zadania może być bardzo żmudne i czasochłonne.

Najlepszym sposobem na sprawdzenie, czy nowe zmiany nie naruszają funkcjonalności żadnej z witryn jest ich automatyczne testowanie. Obecnie dostępnych jest wiele narzędzi, które mogą pomóc w testowaniu funkcjonalności i wyglądu stron internetowych nawet na wielu przeglądarkach i urządzeniach. Automatyzacja zapewni wysoką jakość w długim okresie czasu.

Podsumowanie

Instalacja Drupal multisite pozwala firmom budować wiele stron internetowych na tej samej bazie kodu. Jest to świetny sposób na zmniejszenie ilości kodu i czasu potrzebnego na jego utrzymanie. Dzięki profilom instalacyjnym i ponownemu wykorzystaniu tej samej funkcjonalności w wielu serwisach internetowych, instalacja multisite może pomóc organizacjom budować serwisy szybciej i wyższej jakości. Dzięki temu zaoszczędzamy czas i pieniądze. Z drugiej strony, tego typu instalacja wymaga większego planowania i większych możliwości technicznych zespołu wdrożeniowego. Jeśli musisz zbudować i utrzymać wiele stron internetowych, zdecydowanie powinieneś rozważyć podejście multisite.

W ramach wsparcia dla Drupala utrzymujemy istniejące strony internetowe i rozbudowujemy je o nowe funkcjonalności