In June 2020 the latest version of open source Content Management System (CMS) Drupal – Drupal 9 – was released. For organisations who rely on earlier versions of Drupal to power their digital experiences, and who may now be grappling with questions about a Drupal 9 upgrade, this blog post explains the implications of migrating to this new version, with tips to help you make an informed decision about the future of your platform.
Definitely not. In fact since the release of Drupal 8 the CMS has continued to build its enterprise capabilities, making it suitable for an increasingly wide range of organisations (although it may no longer be as suitable for smaller sites).
Drupal 8 will be supported until November 2021. After this time, it will no longer receive security updates from the Drupal core team, which presents a significant risk to any platforms still using this version. Support will end as Drupal 8 is written on version 3 of the Symfony framework, which itself reaches end-of-life in November 2021 (Drupal 9 is written on version 4.4 of Symfony, which is set to be supported until late 2023).
Support for Drupal 7 was initially set to end in November 2021, as it will for Drupal 8. However due to the business impact of Covid-19 (and because Drupal 7 does not use the Symfony framework) this deadline has been extended to November 2022.
However it is still worth considering your upgrade path, as Drupal 8 and 9 represent a notable move forward in the content management system’s capabilities, offering much more out of the box than Drupal 7.
At the time of writing, the latest version of Drupal is Drupal 9.0.7. For sites still running Drupal 8 and Drupal 7 the current supported versions are 8.9.8 and 7.7.3. You can check what the latest versions of Drupal are by visiting their site here: https://www.drupal.org/project/drupal.
As the move from Drupal 7 to Drupal 9 is such a big leap, it’s important to put in place a clear plan for your upgrade to ensure you retain the features and functionality that matter most to your business. With minimal migration paths for basic elements such as page layout and site structure, your Drupal 9 upgrade will likely involve rebuilding large sections of your site (with an associated data migration), and should be approached accordingly.
You may want to take this opportunity to conduct a more detailed discovery phase prior to upgrading, to understand how well your site is currently serving you and identify any areas for improvement that you can address alongside your migration. You might even find that Drupal is no longer the best technology for your requirements, and that migrating to a new platform can deliver you better results for the same budget.
Whatever the scale of the changes you’re making however, there are a number of steps you’ll need to take to prepare your site for migration:
Firstly, check whether the modules used in your Drupal 7 installation are also in place on Drupal 9, and that these modules have migration paths in place to support your upgrade. If anything is missing, you may want to move to Drupal 8 as an interim step until a migration path is released by third-party module providers for Drupal 9. There may also be alternative, supported modules that provide the functionality you require, so do your research and make sure you plan for any new integrations (including any associated process updates and tutorial or training requirements).
Make sure you’re aware of any additional changes between Drupal 7 and later versions too, as this may affect your new installation. For example, Drupal 8 now includes caching for logged-in users which may impact what data is accessible or shared across your platform, so think about areas of your site that may need particular attention to remain compliant and secure.
The same applies for your site layout modules; make sure the modules you have in place exist in Drupal 9 (or Drupal 8) and have a migration path set up. If they aren’t available in the newer versions of Drupal (or if you’re unhappy with your current means of managing layout) then you may need to plan for a new approach, as Drupal offers several methods to deliver this crucial functionality.
Any changes to your content and Information Architecture (IA) can increase the complexity of your Drupal 9 migration, so take some time to review what you have in place currently and clean it up as far as possible to support a streamlined upgrade process. You’ll also want to document your current and future IA so that content and any other data can be migrated across accurately; this will also enable you to understand the scale of the changes required, which will inform the level of bespoke software development involved in the upgrade.
It’s vital that you put in place a detailed test plan to confirm your new Drupal installation works as expected, and will effectively support your needs. At a minimum all core functionality will need to be tested, along with key tasks, user journeys and interactions (for example forms, or checkout processes).
Your test plan should also be informed by your wider migration plan, for example covering any changes to modules (particularly layout modules) or information architecture. It’s important too that you have a clear list of Drupal 8 / Drupal 9 requirements that your new solution must perform against, to support a comprehensive software testing phase.
The migration path from Drupal 8 to Drupal 9 is generally more straightforward than the leap from Drupal 7; the upgrade model has been changed which seeks to remove a great deal of complexity and associated planning and development work. However, it remains vital to review your current Drupal 8 platform before you embark on a migration, to confirm it meets the minimum Drupal 9 requirements and doesn’t have any hidden issues that may cause trouble post-upgrade. (This also applies if you’re currently using Drupal 7, in addition to the steps detailed in the previous section.)
It’s likely, for example, that you’ll have some level of custom code in your Drupal installation, which must adhere to certain standards if you want to upgrade to Drupal 9 (there are some links at the bottom of this article to tools that will check the status of your code prior to migration). Drupal 9 also uses a composer-based approach for managing dependencies, so the way you deploy and develop your site may need to be reviewed if you’re not using the latest methods. It’s possible too that some of your Drupal 8 modules have not been carried across to Drupal 9, which may require you to find alternative solutions to serve your needs.
In addition to specific Drupal 9 requirements, a note here about technical debt, which can build up to a harmful degree if not carefully managed. While high levels of technical debt can remain hidden for years or dealt with via workarounds, it’s likely that a migration or upgrade will reveal any issues that can add complexity or hinder progress. If you’re worried that your software is suffering from technical debt, a code review is a great first step to assess the situation and identify the fixes that should be in place before you upgrade to Drupal 9.
You should then create and maintain a list of any technical debt as you continue to develop on your Drupal installation, providing details of why decisions have been made and putting measures in place to control this debt where possible. Doing this will make any future migrations much easier, as with Drupal’s new upgrade process well-prepared sites can be migrated in a few simple steps (although of course it’s still vital to have robust planning and testing processes in place).
Drupal 9 removes deprecated code from Drupal 8, and includes updates to major dependencies, which is why it’s important to review the code and modules you have in place and understand how these may be affected by the upgrade. Beyond this however there is no change to the user functionality or appearance (although it does include a new admin theme option), which does help streamline the migration process from Drupal 8 to Drupal 9.
If your site is still using this unsupported version of Drupal, you’ll most likely want to take a step back and think about why it hasn’t been upgraded for so long. A common reason is that it’s a legacy platform that has evolved over time, adding complexity that will be incredibly difficult to migrate across to a new version, and likely require a total rewrite. In addition to this, Drupal 9 will not feature migration support for Drupal 6, meaning that you’ll have to upgrade to Drupal 8 first (which itself will of course soon become unsupported), making the process that much more difficult. As such, an initial requirements gathering/discovery phase is definitely recommended here, to understand if the platform is still serving your requirements as effectively as it could.
As you can see, migrating to Drupal 9 requires a clear, considered plan that takes into account your specific situation, requirements and goals, and the upgrade path will look different for everyone. By taking the time to migrate in the right way though you’ll set yourself up for success from the outset; you’ll also be in a great position when it comes to further upgrades, which should become smoother and more incremental (fewer ‘big bang’ releases) as a result of Drupal’s new model.
If you’re looking to begin the process of migrating to Drupal 9, there are a number of tools available to check your site’s readiness:
Looking for some support in your Drupal 9 migration journey? At Box UK we have a strong team of software consultants and developers with extensive experience in Drupal development, alongside a range of other content management systems and technologies. If you’re interested in finding out more about how we can help you, contact us on +44 (0)20 7439 1900 or email firstname.lastname@example.org.