Drupal to darmowy system zarządzania treścią (CMS) o otwartym kodzie źródłowym, napisany w języku PHP, który służy do budowania zaawansowanych aplikacji webowych i rozbudowanych portali korporacyjnych. Oprogramowanie to wyróżnia się potężnymi możliwościami kategoryzacji danych za pomocą taksonomii oraz architekturą pozwalającą na działanie w trybie bezgłowym (Headless CMS), gdzie warstwa bazy danych jest całkowicie odseparowana od interfejsu użytkownika. To konkretne rozwiązanie techniczne wybierają duże organizacje, rządy i korporacje potrzebujące specyficznej kontroli nad uprawnieniami redaktorów i bezpieczeństwem bazy danych. Zwykłe blogi po prostu się do tego nie nadają.
Zastanawiacie się zresztą, dlaczego ten konkretny system CMS budzi tak skrajne emocje wśród programistów i agencji wdrażających? Sam się nad tym borykałem dzisiaj u siebie we wtorek, analizując logi serwera po kolejnej dużej aktualizacji z wersji dziewiątej na dziesiątą. Prawda jest absolutnie taka, że mamy tu do czynienia z kombajnem, a nie zabawką dla początkujących. Drupal wymaga wiedzy programistycznej. Odwdzięcza się za to skalowalnością, o której inne popularne systemy mogą tylko pomarzyć. My w zespole traktujemy go bardziej jako framework do budowy CMS-a, a nie gotowy produkt wyjęty z pudełka. Wymaga rąk do pracy. Daje efekty.
Co to jest Drupal i do czego służy ten system CMS?
Architektura Drupala opiera się na koncepcji węzłów, czyli tak zwanych „nodes”. Każdy artykuł, strona informacyjna, produkt czy wpis na forum to w bazie danych po prostu węzeł. Brzmi to na pozór technicznie, bo tak właśnie jest. Oprogramowanie bazuje na frameworku Symfony, wykorzystuje silnik szablonów Twig i stawia na architekturę zorientowaną na obiekty. Użytkownik widzi interfejs graficzny. Programista widzi potężne API i system haków modyfikujących zachowanie rdzenia. Zrobiliśmy na wdrożeniu systemu dla dużej uczelni przebudowę relacji między wydziałami, potem zawiesiło się indeksowanie wyszukiwarki Apache Solr, więc wprowadzono poprawkę limitów pamięci PHP przed poniedziałkiem. Tak wyglądają realia pracy z tym oprogramowaniem.
System służy przede wszystkim do obsługi portali o wysokim natężeniu ruchu. Domyślny mechanizm BigPipe ładuje najpierw główne elementy struktury strony, a dopiero później doczytuje spersonalizowane bloki użytkownika. To ratuje maszyny przed przeciążeniem. Co więcej, używamy go tam, gdzie struktura publikacji ma kilkanaście różnych typów zawartości. To nie jest po prostu tytuł i treść. To relacje. Taksonomia buduje powiązania między autorami, tagami, kategoriami i zewnętrznymi bazami danych.
Jak działa struktura danych w Drupalu?
Aby zrozumieć ten system zarządzania treścią, trzeba odrzucić myślenie z innych, prostszych narzędzi. Tu nic nie jest przypisane na stałe. Programiści operują na bytach zwanych encjami. Encją jest węzeł, encją jest użytkownik, encją jest nawet taksonomia. Wszystko ma swoje pola (Fields API).
- System Widoków (Views): To serce całego silnika. Moduł Views pozwala redaktorom i administratorom tworzyć zapytania do bazy danych bez pisania ani jednej linijki kodu SQL. Wyklikujesz z listy, że chcesz pokazać pięć najnowszych artykułów z kategorii „Technologia”, napisanych przez autora X, posortowanych po dacie modyfikacji. System generuje blok lub dedykowaną stronę. To potężne narzędzie. Wymaga jednak wyobraźni przestrzennej od administratora.
- Taksonomia: Słowniki kategoryzujące dane. Zmieniliśmy te zasady na robocie kilka miesięcy temu u jednego z klientów. Miał płaską strukturę tagów. Drupal pozwolił nam zbudować drzewo hierarchiczne, w którym każdy termin miał swoje dodatkowe pola, na przykład ikonę i opis SEO. Opcja nieosiągalna gdzie indziej bez kupowania płatnych wtyczek.
- Bloki i układ (Layout Builder): Moduł pozwalający na wizualne budowanie stron. Redaktor przeciąga klocki z zawartością w odpowiednie miejsca na siatce. Daje to sporo wolności. Czasami aż za dużo, bo użytkownicy potrafią zepsuć spójność wizualną portalu.
- Zarządzanie konfiguracją: Pliki YAML przetrzymują całą konfigurację witryny. Przeniesienie ustawień z serwera testowego na produkcję to wpisanie jednej komendy w terminalu (Drush). Git śledzi wszystkie zmiany. Koniec z ręcznym wyklikiwaniem opcji na trzech różnych środowiskach po kolei.
Jakie są największe zalety systemu Drupal?
Z biznesowego i technologicznego punktu widzenia, ten system CMS ma wady, ale jego mocne strony zdecydowanie przeważają w projektach o wysokim ryzyku. Największe zalety systemu Drupal ujawniają się dopiero przy dużym obciążeniu i skomplikowanej strukturze redakcyjnej. Nie ocenisz go sprawiedliwie stawiając wizytówkę dla lokalnego hydraulika. My instalujemy go tam, gdzie w grę wchodzą setki tysięcy podstron.
Przede wszystkim, architektura bezpieczeństwa. Rdzeń systemu przechodzi bardzo rygorystyczne testy. Zespół do spraw bezpieczeństwa (Drupal Security Team) działa prężnie i publikuje biuletyny informacyjne. Każda luka jest natychmiast łatana. Rządy na całym świecie stawiają na to oprogramowanie swoje platformy obywatelskie. To twardy dowód zaufania. Ponadto, wbudowana wielojęzyczność. Od wersji ósmej rdzeń ma moduły pozwalające na przetłumaczenie dosłownie każdego elementu interfejsu i treści. Nie musisz szukać zewnętrznych dostawców. Włączasz opcję i działa.
Czy Drupal jest bezpieczny na ataki hakerskie?
Tak. Jest wybitnie odporny na masowe ataki. Wynika to w dużej mierze z mniejszego udziału w rynku w porównaniu do najpopularniejszego konkurenta, ale też z samej architektury kodu. Baza danych korzysta z warstwy abstrakcji PDO, co w praktyce eliminuje najprostsze ataki typu SQL Injection. Formularze mają wbudowane tokeny CSRF. System uprawnień (RBAC – Role Based Access Control) pozwala na ustawienie autoryzacji z dokładnością do konkretnego pola w artykule. Redaktor może edytować treść, ale nie może zmienić daty publikacji. Wdrożyliśmy to w portalu medycznym. Działa bez pudła.
Oczywiście, żaden kod nie jest wolny od błędów. Zdarzały się głośne luki typu „Drupalgeddon” kilka lat temu. Społeczność wyciągnęła z tego lekcję. Dzisiaj procedury aktualizacji są znacznie szczelniejsze. Utrzymanie bezpieczeństwa wymaga jednak reagowania. Jak wyjdzie łatka, administrator musi ją wgrać. Zwykłe zaniedbanie to najczęstsza przyczyna włamań.
Jakie są wady i ograniczenia Drupala?
Nie ma systemów idealnych. Wady Drupala potrafią zrujnować budżet niejednej firmy, która wybrała to narzędzie bez analizy technicznej. Koszty utrzymania rosną bardzo szybko. Znalezienie dobrego programisty PHP z doświadczeniem w Symfony i specyfice tego CMS-a graniczy obecnie z cudem. Stawki godzinowe specjalistów są wysokie. To nie jest oprogramowanie, które postawi w weekend student za kilkaset złotych.
Druga sprawa to ogromny próg wejścia (learning curve). Panel administratora, pomimo wielu poprawek w najnowszych odsłonach, nadal jest toporny. Wymaga od redaktora przestawienia się na logikę węzłów i bloków. Zwykli twórcy stron przyzwyczajeni do intuicyjnych edytorów wizualnych odbijają się od tego interfejsu z krzykiem. Wymagane są szkolenia. Zwykła strata czasu dla małych zespołów.
Dlaczego aktualizacja Drupala bywa trudna?
Historycznie, przejście z wersji 7 na wersje oparte o framework Symfony (8, 9, 10) było koszmarem. To nie była aktualizacja. To była całkowita migracja i przepisanie kodu od zera. Wiele firm utknęło na starych instancjach, bo wycena nowej platformy przekraczała ich budżety. To jest bez mała najgorsza opcja z wszystkich.
Dzisiaj wygląda to lepiej. Przejście z wersji 9 na 10 czy 11 przypomina bardziej aktualizację bibliotek przez system Composer. Mimo to, jeśli masz w systemie niestandardowe moduły pisane na kolanie przez poprzednią agencję, aktualizacja rdzenia najpewniej wysadzi stronę w powietrze. Wymaga to środowiska deweloperskiego, testów automatycznych i żmudnego sprawdzania kompatybilności wtyczek. Nie klikniesz po prostu przycisku „Aktualizuj” w panelu i nie pójdziesz na kawę. To proces inżynieryjny.
Dla kogo Drupal to dobry wybór, a kto powinien go unikać?
Decyzja o wyborze CMS-a determinuje losy projektu na najbliższe pięć do dziesięciu lat. Drupal system CMS to narzędzie dla wymagających. Sprawdza się na uniwersytetach, w ministerstwach, w międzynarodowych korporacjach posiadających wiele subdomen i redakcji w różnych krajach. Wykorzystują go platformy e-commerce zintegrowane z systemami ERP i PIM. Gdziekolwiek dane są skomplikowane i relacyjne, tam ten kod błyszczy.
Kto powinien go omijać szerokim łukiem? Małe firmy, blogerzy, lokalne sklepy internetowe i fundacje z ograniczonym budżetem na IT. Jeżeli potrzebujesz strony, którą odpalisz w dwa dni, kupisz gotowy szablon za pięćdziesiąt dolarów i sam będziesz dodawał teksty, uciekaj stąd. Koszty infrastruktury i obsługi deweloperskiej zjedzą cię na starcie.
Drupal czy WordPress – co wybrać do projektu?
To klasyczne starcie. Oba systemy bazują na PHP. Oba to open source. Na tym podobieństwa się kończą. WordPress powstał jako platforma blogowa i ewoluował w stronę uniwersalnego CMS-a. Stawia na prostotę i masowość. Ma tysiące wtyczek i motywów. Niestety, przy dużej ilości danych lub nietypowej strukturze użytkowników, zaczyna się dławić i wymaga pisania ciężkich obejść architektonicznych.
| Cecha systemu | Drupal | WordPress |
| Zastosowanie | Złożone aplikacje, portale korporacyjne, Headless CMS | Blogi, strony firmowe, małe sklepy WooCommerce |
| Koszty wdrożenia | Bardzo wysokie | Niskie do średnich |
| Krzywa uczenia się | Stroma, wymaga czasu i szkoleń | Bardzo łagodna, intuicyjny interfejs |
| Bezpieczeństwo | Wysokie, rygorystyczne standardy rdzenia | Średnie, bardzo zależne od jakości wtyczek trzecich |
Prawda zresztą jest taka, że nie ma złych narzędzi. Są tylko źle dobrane do wymagań. Zawsze mówię klientom na warsztatach analitycznych: nie kupujcie ciężarówki, żeby pojechać po bułki do sklepu na rogu. Ale jeśli planujecie przewieźć tony gruzu z placu budowy, osobówka z bagażnikiem dachowym po prostu zgnije na pierwszym zakręcie.
Jak zarządzać systemem w trybie Headless CMS?
Obecne trendy w projektowaniu aplikacji webowych idą w stronę dekapitacji systemów zarządzania treścią. Drupal w trybie bezgłowym (Headless) działa wyłącznie jako magazyn danych (backend). Nie renderuje w ogóle warstwy wizualnej, czyli HTML-a i CSS-a. Wystawia jedynie czyste dane za pomocą interfejsów API w formatach JSON lub GraphQL. Frontend, czyli to co widzi użytkownik, jest budowane przez osobne zespoły programistów w nowoczesnych bibliotekach JavaScript, takich jak React, Vue.js czy Angular.
To podejście drastycznie zwiększa wydajność. Odciąża serwer bazy danych. Pozwala też na dystrybucję tych samych treści do wielu kanałów naraz. Ten sam wpis z bazy wędruje na stronę internetową, do aplikacji mobilnej na iOS oraz na ekrany inteligentnych zegarków. Wbudowany moduł JSON:API robi to niemal natychmiast po instalacji. Wdrożenia tego typu są bardzo drogie, bo wymagają utrzymania dwóch osobnych aplikacji – backendu i frontendu. Jednak dla banków czy platform VOD to dzisiaj standard inżynieryjny.
Ile kosztuje utrzymanie strony na Drupalu?
Porozmawiajmy o pieniądzach, bo to one ostatecznie decydują o technologii. Wdrożenie średniej wielkości portalu na tym silniku to wydatek rzędu kilkudziesięciu do kilkuset tysięcy złotych. Ale to tylko początek góry lodowej. Całkowity koszt posiadania (TCO – Total Cost of Ownership) obejmuje infrastrukturę serwerową, aktualizacje bezpieczeństwa, rozwój nowych funkcji i audyty kodu.
Hosting dla tego rozwiązania musi być mocny. Oprogramowanie zużywa sporo pamięci RAM przy generowaniu widoków i czyszczeniu pamięci podręcznej. Zwykły hosting współdzielony za sto złotych rocznie wywiesi białą flagę po pierwszym dniu. Wymagane są serwery VPS lub dedykowane środowiska chmurowe z obsługą Redis do cachowania zapytań bazy danych. Do tego dochodzą godziny pracy deweloperów. Bez mała prawie pięćdziesiąt procent budżetu rocznego w dużych firmach idzie na samo utrzymanie kompatybilności i łatanie modułów po aktualizacjach rdzenia PHP na serwerach.
Czas skończyć z mitem darmowego oprogramowania. Kod źródłowy nic nie kosztuje. Kosztuje wiedza inżynierów, którzy potrafią z tego kodu złożyć bezpieczną i skalowalną maszynę. Masz w firmie budżet na stałą opiekę techniczną i planujesz rozbudowę portalu o nowe integracje z zewnętrznymi API? Bierz to w ciemno. Szukasz taniej wizytówki? Zrezygnuj od razu i oszczędź sobie nerwów.
Często zadawane pytania (FAQ)
- Czy Drupal jest w pełni darmowy?
Tak, sam rdzeń oprogramowania i większość modułów udostępniana jest na licencji GNU GPL. Płacisz jednak za hosting, pracę programistów i wdrożenie. - Jakie firmy korzystają z tego CMS-a?
Z systemu korzystają między innymi Tesla, uniwersytety z ligi Ivy League, rządy państw europejskich, telewizje oraz duże instytucje finansowe. - Czy można samodzielnie nauczyć się obsługi?
Zarządzania treścią nauczysz się w kilka dni. Zrozumienie architektury, programowania modułów i systemu widoków zajmuje miesiące ciężkiej pracy z dokumentacją. - W jakim języku jest napisany ten system?
Oprogramowanie bazuje na języku PHP i intensywnie wykorzystuje komponenty frameworka Symfony. Baza danych to najczęściej MySQL lub PostgreSQL. - Czy system wspiera pozycjonowanie SEO?
Tak, jest wysoce zoptymalizowany pod kątem wyszukiwarek. Posiada moduły do meta tagów, przyjaznych adresów URL, map XML i strukturyzacji danych. - Jak często wydawane są aktualizacje?
Małe poprawki bezpieczeństwa publikowane są zazwyczaj w środy w określonych oknach czasowych. Duże wersje rdzenia pojawiają się co kilkanaście miesięcy.
Bibliografia
1. Drupal Association – https://www.drupal.org
2. Symfony – https://symfony.com
3. PHP – https://www.php.net
4. OWASP – https://owasp.org
5. W3Techs – https://w3techs.com
