Jak się przygotować na Drupal 7 end of life?
Świat technologii ciągle się rozwija – dąży do tworzenia nowych i usprawniania starych rozwiązań. Co za tym idzie, w cykl życia każdego oprogramowania wpisany jest jego niechybny koniec. Taki los czeka już niebawem zasłużonego i wciąż popularnego Drupala 7 wraz z końcem jego oficjalnego wsparcia przez twórców. Jest to doskonały moment, aby przypomnieć sobie nowinki, jakie wprowadził względem poprzednich wersji oraz rzucić trochę światła na to, co dalej.
Podstawowe informacje o Drupalu 7
Wypuszczony 5 stycznia 2011 roku, Drupal 7 był następcą – czego łatwo się domyślić – Drupala 6. Wniósł wiele wyczekiwanych i przede wszystkim koniecznych zmian. Poznaj kilka najważniejszych spośród nich.
- Wprowadzono koncept encji (entity), znany z wielu innych rozwiązań. Encjami może odtąd być wszystko - od profilu użytkownika i node’a, po elementy takie jak komentarz czy taxonomy term.
- Pojawiło się wsparcie dla multisite
- Content Construction Kit (CCK) stało się modułem w rdzeniu Drupala.
Poza tym weszło w życie wiele mniejszych, ale nie mniej ważnych usprawnień, takich jak poprawa wydajności i bezpieczeństwa, zmiany w hook’ach oraz API, zmniejszenie wymagań systemowych, możliwość tworzenia skrótów, planowanie zadań z użyciem crona i wiele, wiele innych.
Drupal 7 end of life - zmiana terminu
Oryginalnie koniec wsparcia dla Drupala 7 miał mieć miejsce w listopadzie 2021 roku. Ta data została jednak zmieniona na 28 listopada 2022 roku, a następnie – na 1 listopada 2023 roku. Zespół Drupala uzasadnił tę ostatnią zmianę faktem, że bardzo dużo firm i instytucji nadal używało Drupala 7. Z tego względu deweloperzy tego CMS-a zdecydowali, że nie zostawią tak wielu stron bez aktualizacji dotyczących bezpieczeństwa.
W czerwcu 2023 roku została jednak ogłoszona nowa data end of life Drupala 7 – 5 stycznia 2025. Wraz z tą aktualizacją pojawiła się również informacja o zmniejszonym wsparciu dla średnio krytycznych problemów w Drupalu 7. Takie zadania będą dodawane do publicznej kolejki zgłoszeń (jeśli tylko nie będą nadawać się do masowej eksploatacji) w celu rozwiązania. Inną zmianą jest to, że od początku sierpnia 2023 w sytuacji, kiedy jakiś contribowy moduł lub motyw zostanie oznaczony jako nieobsługiwany, nie będzie on dostępny dla nowego maintainera.
Specyfika Drupala 7
Drupal 7, w porównaniu ze swoim poprzednikiem, wyróżnia się przede wszystkim bardziej przemyślanym podejściem do zarządzania treścią, co przekłada się na zmiany w sposobie przechowywania, strukturyzacji i wprowadzania danych. Encje to element, który pozostał z nami do dziś, aż do wersji 10.
Dlaczego potrzebujesz przeprowadzić migrację Drupala 7?
Migracja Drupala 7 do wyższej wersji jest istotna z wielu powodów. Oto najważniejsze z nich:
- Koniec wsparcia dla Drupala 7 – w praktyce oznacza to również brak aktualizacji bezpieczeństwa. W konsekwencji naraża to właściciela strony internetowej na konieczność akceptacji większego ryzyka ataków hakerskich i radzenia sobie z ich ewentualnymi skutkami. Wiąże się także z ponoszeniem dodatkowych kosztów wykupienia płatnych usług u firm oferujących wsparcie przy pracy nad lukami bezpieczeństwa.
- Zgodność z nowymi standardami SEO wyższych wersji Drupala – wyszukiwarki zmieniały w trakcie ostatnich 10 lat swoje algorytmy i promują treści na innych zasadach niż kiedyś. Jeśli chcesz, aby Twoja strona widniała wyżej w wynikach wyszukiwania, aktualizacja Drupala z pewnością w tym pomoże. Nowe wersje Drupala radzą sobie o wiele lepiej z SEO. Dzieje się tak dzięki temu, że wyróżniają się większą wydajnością względem starszych wersji, lepszym wsparciem urządzeń mobilnych, a także poprawioną dostępnością witryn dla osób niepełnosprawnych.
- Przyjemniejszy proces edycji treści po migracji – mimo że w latach po premierze Drupala 7 edycja treści była przyjazna dla użytkownika (szczególnie w porównaniu z Drupalem 6), to świat UI poszedł do przodu i przez następne lata podejście do pracy nad treścią w tej wersji systemu stawało się coraz mniej zgodne z najnowszymi trendami i przyzwyczajeniami edytorów. Aktualizacja do Drupala 10 zoptymalizuje proces tworzenia treści, szczególnie dzięki nowej skórce Claro lub contribowym rozwiązaniom, takim jak Gin.
Drupal 7 vs Drupal 10 i inne wersje systemu
Wprowadzenie Drupala 8 było bardzo dużą i znaczącą zmianą w kierunku rozwoju systemu. Spójrzmy na kilka z najważniejszych zmian i usprawnień względem poprzedniej wersji.
- Drupal został przepisany z użyciem frameworka Symfony. Dla osób niezaznajomionych z tematem, Symfony jest jednym z najpopularniejszych frameworków PHP. Zatem już na starcie Drupal mógł poszczycić się w swoich podstawach dużym wsparciem społeczności i twórców związanych z Symfony. Jest to zmiana o tyle duża, iż wcześniejsze wersje Drupala nie były oparte o żaden tak potężny framework.
- Wprowadzony został nowy silnik tworzenia szablonów - znany i popularny Twig (jest to wynik przejścia na Symfony, gdzie wspomniany silnik jest również używany). Usprawnia to pracę przy tworzeniu szablonów i podnosi sposób ich implementowania do współczesnych standardów, porzucając dotychczasowe themes i PHP templates.
- Brak sensownego edytora tekstu w Drupalu 7 został rozwiązany w wersji 8 za pomocą CKEditor - niezwykle rozbudowanego i wielofunkcyjnego narzędzia do pracy nad treścią.
- Moduł Views stał się częścią rdzenia systemu.
- Drupal 8 przyniósł prawie 200 zmian i poprawek, o których możecie przeczytać na stronie Drupal.org.
Może Cię również zainteresować: Sprawna praca z Composerem w Drupal 8
Jak sprawa wygląda w dalszych wersjach? Przejście z Drupala 8 na Drupala 9 pozwoliło na aktualizacje zależności oraz na usunięcie kodu oznaczonego jako deprecated. Migracja aplikacji napisanej w Drupalu 8 na wersję 9 polegała więc na usunięciu z kodu elementów deprecated i na aktualizacji modułów.
Drupal 10 wprowadził natomiast bardziej znaczące zmiany, które wymagały większego zaangażowania społeczności, aby moduły i skórki były zgodne z tą wersją systemu. W Drupalu 10 zamieniono domyślną skórkę administracyjną z Seven na Claro, skórkę z Bartik na Olivero, wprowadzono CKEditor 5, zaaktualizowano Symfony do wersji 6 oraz usunięto niektóre komponenty javascriptowe używające jQuery i zamieniono je na bardziej nowoczesne wersje.
Czy zatem zmiana z wersji 7 na 10 to dobry pomysł? Krótko ujmując: TAK!
Od samego początku przejście na Drupala 8 wydawało się ruchem wręcz koniecznym. Liczba nowinek i możliwości, jakie wprowadziła w ówczesnym czasie wersja 8 była oszałamiająca, a przestarzałe już rozwiązania znane z Drupala 7 zaczynały być kulą u nogi w zestawieniu z szalejącym rozwojem i postępem w dziedzinie web developmentu. Wersje 9 oraz 10 tylko pogłębiły te przepaść.
Skąd zatem tak duża liczba stron (około 380 tysięcy aktywnych instalacji - stan na sierpień 2023) wciąż funkcjonujących na Drupalu 7 oraz wieloletnie wsparcie twórców tak starej wersji oprogramowania? Wszystko wynika z tego, jak wielką rewolucją był Drupal 8 i jak wielkie zmiany dokonały się w samej logice, będącej podłożem dla całego systemu. Wprowadzenie Symfony jako bazowego frameworka dla Drupala było bowiem bronią obosieczną. Choć przyniosło ono w gruncie rzeczy same dobre zmiany, doprowadziło do praktycznie zerowej kompatybilności z poprzednimi wersjami.
Aktualizacja z Drupala 7 do 8 nie mogła zostać przeprowadzona automatycznie, a wymagała niekiedy nawet przepisania całej strony na nowo. Jak łatwo sobie wyobrazić, mogło to być bardzo problematyczne dla systemów utrzymywanych przez lata, nie mówiąc już o kosztach, które taka zmiana mogła generować.
Dzisiaj jesteśmy już jednak mądrzejsi o lata doświadczeń. Aktualizacja z wersji 7 na 8, 9 czy 10 nie musi być już aż tak tytaniczną pracą jak na samym początku. Na rynku mamy do dyspozycji wiele narzędzi, które mogą nam pomóc w takiej migracji i ją ułatwić.
Drupal 7 EOL - profesjonalna pomoc
Jako że ustaliliśmy już, że przejście do najnowszej wersji Drupala jest wręcz koniecznością, a wraz z przeniesieniem planowanej daty zakończenia wsparcia zyskaliśmy jeszczę trochę czasu, przybliżymy przebieg tego procesu. Jeśli nie czujesz się na siłach, aby przeprowadzić go samodzielnie, rekomendujemy zwrócenie się o pomoc do profesjonalnego zespołu wsparcia Drupala. Skorzystanie z usług specjalistów doświadczonych w tego typu migracjach może znacznie skrócić całą ścieżkę, a także rozwiać wiele związanych z nim wątpliwości.
Migracja Drupala 7 do 10 - jak przeprowadzić proces?
Migracja to proces wieloetapowy, który obejmuje czas na przygotowanie, realizację i działania postmigracyjne. Przejdźmy przez kolejne kroki.
Jak się przygotować do migracji Drupala 7 do 10?
Podczas przygotowań należy w pierwszej kolejności ustalić, które funkcjonalności są dla Ciebie ważna i muszą zostać zachowane. Elementy można posegregować względem priorytetu. Należy tutaj pamiętać o zachowaniu zależności pomiędzy funkcjonalnościami, aby nie wykluczyć jakiejś ważnej części. Błędy w zależnościach zostaną wychwycone najpewniej podczas procesu migracji, lecz mogą wtedy wprowadzić zamieszanie, którego można uniknąć, przeprowadzając solidnie etap planowania.
Etap przygotowań jest też doskonałym czasem, aby zaplanować dodatkowe funkcjonalności, które od zawsze chciałeś wprowadzić, ale z jakiegoś powodu nie było to możliwe w starej wersji. W tym przypadku nawet potencjalne funkcjonalności powinny zostać omówionew trakcie planowania migracji, gdyż mogą mieć wpływ na dalszy proces.
Oprócz funkcjonalności należy również określić, które treści powinny zostać zmigrowane. Migracja to również dobry moment, aby odświeżyć wygląd Twojej strony – skórka i tak będzie musiała zostać przepisana ze względu na niemal całkowity brak zgodności z nowszymi wersjami Drupala. Dodatkowy nakład środków będzie więc mniejszy niż w przypadku odłożenia tej inwestycji na późniejszy okres po zakończeniu migracji.
Od strony technicznej warto też przejrzeć dostępne moduły i upewnienić się, że każdy, który posiadasz, rzeczywiście wykorzystujesz. W przypadku modułów contrib należy upewnić się, że wspierają one Drupala 10. Moduły custom będą musiały zostać przepisane, więc wybór wyłącznie potrzebnych modułów oszczędzi czas i pieniądze.
Kluczowym elementem jest również zaplanowanie infrastruktury, na której będziesz uruchamiać swoją stronę internetową. Infrastruktura musi być zgodna z wymaganiami Drupala 10, a także powinna umożliwiać łatwe skalowanie zasobów, aby w przypadku większego zapotrzebowania zrealizować swoje zadanie.
Jak zrealizować migrację Drupala 7 do 10?
Po porządnym przygotowaniu nadchodzi etap realizacji. Warto zadbać o to, aby Twój Drupal 7 był zaktualizowany do najnowszej możliwej wersji. Powinno to zminimalizować jakiekolwiek trudności w przenoszeniu konfiguracji. Następnie zwykle zaczynamy od przeniesienia struktury encji, aby przygotować miejsce na import danych.
Jeśli aplikacja na Drupalu 7 będzie przez cały proces przepisywania nadal używana, to należy rozważyć wprowadzenie przyrostowej migracji treści, czyli sposobu na określenie, które dane zostały zmigrowane, a które jeszcze nie. Zwykle robi się to, zapisując datę eksportu treści danego typu i porównuje się ją z datą ostatniej edycji treści, by w konsekwencji wyeksportować wyłącznie te elementy, których ostatnia modyfikacja miała miejsce później niż ostatni eksport.
Od technicznej strony w migracji pomogą Ci takie moduły jak: Migrate, Migrate Drupal, Migrate Upgrade oraz Migrate Plus.
Co ważne, przed każdym importem danych należy wykonać kopie bezpieczeństwa, aby - w przypadku niepowodzenia - móc wprowadzić odpowiednie poprawki i spróbować ponownie.
Po migracji danych następuje etap instalacji oraz konfiguracji pozostałych modułów i skórek contrib, a także przepisania modułów i skórek custom. Ten etap wymaga (w przypadku modułów i skórek custom) szeregu kroków, gdzie pierwszym z nich jest zrozumienie architektury Drupala 10, aby móc poprawnie i zgodnie ze standardami przepisać kod. Kluczowym elementem jest także aktualizacja dokumentacji, aby cel i sposób użycia modułu był jasny zarówno dla programistów, jak i dla administratorów strony internetowej.
O czym należy pamiętać po migracji Drupala 7?
Po migracji (w przypadku, w którym strona na Drupalu 7 jest aktywna) należy określić moment, w którym nastąpi tzw. content-freeze, czyli czas, w którym na stronę nie będzie dodawana żadna treść. Jest to moment, kiedy importujemy ostatni przyrost treści do nowej strony na Drupalu 10 oraz aktualizujemy moduły.
Drupal 10 to prężnie rozwijany system. Aktualizacje modułów wypuszczane są każdego dnia. Bycie na bieżąco pozwala na eliminacje największej możliwej liczby błędów, a także umożliwia korzystanie z najnowszych funkcjonalności systemu.
Drupal 7 end of life - podsumowanie
Migracja do najnowszej wersji Drupala jest ważna i potrzebna z wielu powodów. W zależności od charakterystyki strony, jej rozmiaru, popularności oraz szeregu innych czynników, proces przygotowania, realizacji i działań po migracji, znacząco się różni.
Jeśli Twoja strona wymaga przeniesienia na wyższą wersję, skorzystaj z pomocy specjalistów. Nasz zespół programistów specjalizujących się w migracji Drupala 7 do wyższej wersji ma doświadczenie w procesach przeprowadzonych z pełnym sukcesem.