Il 9 giugno 2020 ha sancito la nascita di Drupal 9, naturale evoluzione tecnologica di Drupal.
Un avvenimento annunciato già da molto tempo, che solleva diverse domande in chi fa attualmente uso di una versione precedente del famoso CMS. Conviene fare l’aggiornamento? E come farlo nel modo meno impattante possibile da un punto di vista di tempi e costi?
In questo articolo affrontiamo il tema, introducendo brevemente Drupal 9 e analizzando poi le vie migliori per passare a questa ultima versione. Prima di iniziare, se ancora non conosci tutti i vantaggi e le funzionalità di Drupal ti consigliamo di leggere "Perché scegliere Drupal per siti aziendali complessi".
Durante il DrupalCon tenutasi ad Amsterdam a ottobre 2019, Dries Buytaert ha esposto i pilastri su cui si fonda quest’ultima versione della piattaforma, che può dare un importante contributo alla crescita digitale delle aziende. In sintesi, ecco i quattro obiettivi strategici che hanno guidato la creazione di Drupal 9:
Ma come si concretizzano questi obiettivi a livello di feature di prodotto? Ecco alcune delle novità che hanno caratterizzato gli ultimi aggiornamenti di Drupal.
Per rispondere a questa domanda dobbiamo analizzare due diverse situazioni: quella di chi usa attualmente Drupal 7 e quella di chi invece ha già effettuato il passaggio a Drupal 8.
Questo caso è il più semplice da affrontare: per chi ha una piattaforma Drupal 8, infatti, l’aggiornamento sarà (quasi) indolore.
Drupal 9.0 comporta la rimozione del codice deprecato e l'aggiornamento delle dipendenze di terze parti (Symfony 3.0 → 4.5), ma non introduce nuove funzionalità. Si tratta di fatto della stessa codebase (stabile e ampiamente testata) che caratterizza Drupal 8, dunque l'aggiornamento avrà lo stesso impatto di un aggiornamento da una minor release all'altra, a patto che il core sia aggiornato all'ultima versione disponibile.
Possiamo quindi affermare che Drupal 9 sia semplicemente una nuova release di Drupal 8. D'altronde, da Drupal 8 in avanti tutti gli aggiornamenti saranno frequenti e di minor impatto, rappresentando infatti la naturale continuazione di un processo di sviluppo iterativo e seguendo un modello di "rolling release" dove nuove funzionalità potranno essere introdotte anche tra una minor release e l’altra nello stesso ramo di sviluppo.
Questo nuovo paradigma si riflette anche nella limitata durata del supporto previsto per Drupal 8, che infatti terminerà già a novembre 2021, dal momento che l’upgrade alla versione 9 è molto più semplice rispetto a quello dalla 7 alla 8.
Chi usa attualmente Drupal 7 deve considerare che l’ultima release supportata di questa versione, dopo ben 10 anni di supporto, sta andando in “EOL” (End of life). Di conseguenza non si avrà più a disposizione supporto ufficiale di sicurezza, con tutti i relativi rischi di security che questo comporta. Va da sé che carenze sotto questo punto di vista possono causare gravi effetti sulla continuità di business, nonché rischi di data breach e multe anche molto salate.
La fine del supporto coincide anche con lo stop alla creazione di nuove feature, con la cessazione di supporto dei moduli contrib, di miglioramenti e di bug fix: in altre parole, per avere un sito sicuro, performante e moderno l’aggiornamento a Drupal 9 è un must. E senza considerare ovviamente tutte le nuove funzioni relative all'ultima release – precedentemente elencate – che rappresentano il vero motivo per effettuare il “salto”.
Inizialmente la cessazione del supporto per Drupal 7 era previsto per Novembre 2021, ma a causa dell'emergenza Covid la deadline è stata estesa a Novembre 2022. Ci sono quindi ancora diversi mesi per organizzare il passaggio alla versione più aggiornata e sicura di Drupal.
Il passaggio dalla release 7 alla release 8 oppure 9 significa, nella maggior parte dei casi, affrontare un’intera riscrittura del sito o dell’applicazione web; per questo è importante prendersi tutto il tempo necessario per progettare con attenzione l'upgrade.
Di seguito vediamo come farlo.
Come abbiamo già avuto modo di anticipare, il principale vantaggio di passare da Drupal 8 a Drupal 9 consiste nel non dover affrontare un grande progetto di migrazione, quanto piuttosto un upgrade incrementale. Occorre quindi prestare attenzione ad alcuni aspetti e seguire delle semplici istruzioni per poi procedere all’aggiornamento.
Parlando di infrastruttura server, il primo passo è essere sicuri che il proprio hosting, qualora non fosse aggiornato, abbia i requisiti minimi dei servizi richiesti per Drupal 9.
Più nel dettaglio, Drupal 9 richiede PHP 7.3 o superiore (anche il 7.4 è supportato ma non richiesto), MySQL 5.7.8 +, MariaDB 10.3.7 +, SQLite 3.26 +, PostgresSQL 10 + con estensione pg_trgm attiva.
Per chi usa Drush, è bene sapere che solo Drush 10 è compatibile con Drupal 9.
Partendo da Drupal 8, il passaggio a Drupal 9 è indolore se hai aggiornato sempre all’ultima minor release (8.9.6, alla data di scrittura). Assicurati inoltre di rimuovere le dipendenze che non stai utilizzando.
Il modulo Upgrade Status e lo strumento Drupal Check permettono di verificare se i moduli contrib che stai utilizzando nel tuo sito sono stati già aggiornati a Drupal 9. Questi tool non sono solo utili per analizzare lo status quo ma permettono anche di andare a verificare che il codice scritto per gli eventuali moduli custom sia compatibile con Drupal 9.
Risolvendo i problemi rilevati dai due tool sarai certo di avere codice compatibile sia con Drupal 8 sia con Drupal 9: puoi scegliere di farlo manualmente o di usare degli strumenti utili come Drupal-rector o anche l’interfaccia utente Upgrade Rector.
Una volta aggiornato Drupal 8 all’ultima minor release, verificato e aggiornati moduli contrib ed eventuale codice custom, allora è possibile procedere all’upgrade senza problemi.
Migrare da Drupal 7 a Drupal 9 richiede una completa riscrittura, come lo è passare da Drupal 7 a Drupal 8.
Molti si chiedono quindi se sia meglio passare dalla release 7 direttamente alla 9, oppure se convenga passare prima dalla 8. Posto che non c’è una risposta universalmente valida, un ragionamento da fare è quello che riguarda la disponibilità di moduli e temi.
Potresti infatti scoprire che i temi e i moduli di cui necessiti sono disponibili nella versione 8 ma non ancora nella 9: in questo caso conviene fare il passaggio all’ultima minor release di Drupal 8, che rappresenta la parte più impegnativa della migrazione, nell’attesa che moduli contrib, i temi e la documentazione aggiornata siano disponibili anche nella versione 9. A questo punto non resterà altro che seguire le istruzioni riportate poco sopra per passare dall’8 al 9.
Dal momento che Drupal 9 è di fatto un aggiornamento di Drupal 8, tra qualche mese l’ecosistema sarà pienamente compatibile e dunque sarà raccomandabile passare direttamente dalla versione 7 alla 9: gli sforzi sarebbero gli stessi, anzi si eviterebbe un passaggio inutile. Nel frattempo Acquia fornisce un tool interessante per vedere lo stato di avanzamento dei moduli compatibili con Drupal 9.
Ecco alcuni strumenti da conoscere e utilizzare per affrontare in modo efficace la migrazione:
Indipendentemente dall’aiuto che possono fornire i tool, non va dimenticato che di fatto occorre fare una completa riscrittura e i tools menzionati possono essere un valido aiuto per affrontare le sfide di una migrazione così complessa.
Gli approcci previsti possono essere due:
Drupal è sicuramente la piattaforma più indicata per ottenere grande flessibilità nell’organizzazione e gestione dei contenuti, nonché semplicità nell’integrazione con l’ecosistema presente in azienda. Permette di gestire picchi di richieste elevatissimi, con un eccellente livello di sicurezza.
Garantisce un supporto a lungo termine costante, riducendo notevolmente il problema dell’obsolescenza: un sito in Drupal può vivere diversi anni sempre al massimo delle funzionalità e della sicurezza, a patto di ricevere la corretta manutenzione.
La sua natura open source rende la piattaforma estremamente customizzabile: non è lo strumento a dettare il modo di lavorare e i processi da seguire, ma viceversa è Drupal ad adattarsi perfettamente a ogni esigenza. Questo lo rende, in definitiva, la soluzione ideale per molte realtà di piccole, medie e grandi dimensioni.
Un ultimo consiglio per chi decide di avviare un progetto Drupal o di affrontare una grande migrazione è sicuramente quello di prendersi del tempo per scegliere il giusto partner. Se da un lato la totale libertà di personalizzazione rappresenta un vantaggio, infatti, dall’altro può anche rivelarsi un’arma a doppio taglio se in mani poco esperte. Affidandosi a chi conosce bene lo strumento si avrà la certezza di vedere applicate le best practice che permetteranno di ottenere un sito sicuro, performante e flessibile che abbia la possibilità di essere evoluto nel tempo.