Drupal 7's EOL has been extended a year and is now November 1, 2023. And it might live even longer than that. By July 2023, the security team will announce whether they will extend Drupal 7's support an additional year.
If you are still on Drupal 7, you have some more breathing room. Time to catch your breath a bit. But don't use this extra year to lounge about and twiddle your thumbs. You have some important decisions to make, and once you make them, you need enough time to execute those decisions.
There are two questions you should start asking.
Am I going to stay on Drupal 7?
If the answer to this question is "yes," there are some things you should know.
Drupal 7 is over ten years old. While a decade doesn't seem like a long time when you compare it to the age of the universe, ten years is a long time for software to stick around. In dog years, it's 70 years old, and in software years (something we just made up), it's even older than that.
Drupal 7 has served us well, but like all good things, it must come to an end. It might be next year. It might be three years from now. But it will end.
And in the meantime, anyone still on Drupal 7 is paying a high opportunity cost. You are missing out on the new features and performance enhancements you would get with more recent technology. Not just with Drupal, but with your entire web stack.
For example, Drupal 7 depends upon several JQuery libraries:
- jQuery UI
- jQuery Forms
Out of the box, Drupal 7 comes with versions of these libraries that are obsolete and unsupported. The current version of jQuery is 3.6.x. Drupal 7 comes with 1.4.2. The other libraries are in similar situations.
You can mitigate this a little bit with the jQuery Update module, but the highest version you will get is 2.1.x.
Drupal 8 and above (and many other content management systems) have easy ways to enable API access to your content. In the age of "publish everywhere," this is important functionality. Drupal 7 has some simple, rudimentary API support, but if you want a full-fledged API with write support, you'll need to create it yourself, which adds additional technical debt and potential vulnerabilities.
So are you going to stay on Drupal 7? The answer, at some point, will need to be a resounding "no." Drupal 7 lives, but it lives only to die another day.
You might try to ride Drupal 7 off into the sunset, trusting your noble steed for one more adventure. The problem is that your steed is old and might collapse at any moment, and now the sun is down, and it will be much harder to secure a new one.
Better to let Drupal 7 retire while the sun is still high and clear in the sky and you still have daylight to secure your next solution. Consider this EOL extension an extra hour of daylight to help you get your affairs in order.
The cost of moving off of Drupal 7 might seem high, but it will be less than the cost of trying to recover from an undiscovered Drupal 7 security exploit after its final EOL. Or making sure it stays compatible with newer versions of PHP. Or making sure it stays up to date with new operating systems. Or making sure it still works with your database.
In other words, the cost to simply "keep the lights on" goes up with every passing day.
What are my options?
You have decided you need to move off of Drupal 7. Maybe not today, and maybe not tomorrow. But someday.
What are your options? There are three.
Migrate to Drupal 9
This is the first option to consider. There are a lot of good tools you can use to help you migrate to the latest version of Drupal. And there is a lot you can do to prepare your Drupal 7 website for that eventual migration.
Drupal 9 and above will give you the latest and greatest that Drupal has to offer. You'll have a modern CMS that measures up to any other option you could choose.
- Modern content authoring
- JSON API out of the box
- Improved front-end performance
- Integrated media library
- Better methods of code organization
- More frequent minor releases and easier updates
- Robust and extensible system for handling translations
- A global security team helping to protect your investment
- Easier hiring of talent
- An extensive library of ready-to-use open source modules
And this is important to understand: You can skip Drupal 8 and jump straight to Drupal 9. No need for a bridge migration.
However, you really are getting a completely new system. Ever since Drupal 8, new versions of Drupal have left Drupal 7 behind, and a lot of your institutional knowledge will not transfer one-to-one.
There is some continuity. A lot of the vocabulary will still be the same. Entities, nodes, view modes, themes, modules, taxonomy, fields, etc. This might seem small, but it's a bigger deal than you might think. If your team is already comfortable communicating with Drupal's vocabulary, that is one less thing you have to worry about. Having a ubiquitous language makes everything easier. If everyone is already well-practiced in using it, it's invaluable.
But what if you have ten years of business logic built into Drupal 7? It represents thousands and thousands of hours and millions of dollars of total investment.
What's more, your developer team knows Drupal 7 like the back of their collective hand. Bugs are fixed quickly, and new features are still being added. Most of your organization is happy with the way things are going.
For Drupal 7 sites with a lot of custom functionality and institutional history, migration to Drupal 9+ is not a cheap endeavor, and it is not a fast endeavor. On top of that, your development team might have a steep learning curve to overcome.
You can do a slower, more progressive migration one small piece at a time. This lets your team learn at their own pace while they help migrate your data and logic. But you might not have the team size to pull this off and maintain your current website. You also don't want to stall new development while you migrate over a long period of time.
If this sounds similar to your situation, you might want to take a look at Backdrop.
Upgrade to Backdrop CMS
Backdrop is a fork of Drupal that started back in 2013 when a group of Drupal core developers (including Lullabot Nate Lampton) realized that Drupal 8 was going to require nearly everything to be rewritten. Backdrop is backward compatible with Drupal 7 while continuing to provide similar features.
Some of the similarities between Backdrop and Drupal include:
- Updated libraries and dependencies
- Support for the latest versions of PHP, MySQL, and MariaDB
- A regular feature release cycle (Backdrop releases new features three times a year, compared to Drupal's twice a year).
- Configuration management (the ability to deploy configuration separate from content)
- Views module for creating listings
- A new Layout system for assembling complex pages
- Many modules you used to install separately are now included
However, Backdrop differs from Drupal's approach in several substantial ways:
- Backdrop does not use Composer and limits its external dependencies.
- Backdrop provides an upgrade path (not a migration) from Drupal 7.
- Most APIs are compatible with Drupal 7. Modules usually take hours to upgrade rather than needing to be rewritten.
- Backdrop has a much longer major release cycle. Backdrop 1.0 came out in 2015, and the 1.x branch expects to be supported through 2027.
Backdrop, in many ways, acts as a "Drupal Classic" that keeps the same basic approaches used in earlier versions of Drupal. And at the same time, it's updated with new features regularly. The Backdrop community estimates that the functionality of over 70 contrib modules has been built into the core software. Its security team coordinates with Drupal's security team, and it has support from hosting providers like Pantheon and Platform.sh. Your development team will still be able to use Lando and DDEV for their local development.
Backdrop can provide the most value to sites that have invested heavily in Drupal 7, especially those with a lot of custom development. Stanford University recently upgraded from Drupal 7 to Backdrop CMS for both their off-campus learning program (solo.stanford.edu) and internal research funding program (seedfunding.stanford.edu), two sites that had extensive custom code. They estimated that upgrading to Backdrop was one-fifth the cost of rewriting their code for Drupal 9 — the equivalent of $400,000 in savings for their project.
If you've invested heavily in Drupal, but the upgrade to Drupal 9 or higher looks daunting, expensive, or complicated, Backdrop is worth adding to your bucket of options. It has some downsides. There is a smaller community of developers contributing to it, and there is no large enterprise like Acquia advocating for and supporting it. But for the right situation, it might be the puzzle piece you've been looking for.
Choose a different ecosystem altogether
If migration is required to move to Drupal 9+ and its underlying guts make it a different CMS anyway, why not take the opportunity to migrate to a different CMS altogether?
If you have the budget and the wherewithal, this is a viable option. There are many enterprise-ready CMSs that can help you meet your goals. Each has its own pros and cons, which is beyond the scope of this article.
But there are several things you need to clarify:
- If you want to stick with PHP to match your team's current expertise, you don't have many options. Drupal's biggest competitors, like Sitecore and Adobe AEM, use .NET or Java. Are you ready to retrain and/or hire new developers?
- You might think of switching to a content delivery platform like Contentful, Bloomreach, or Magnolia. This way, you can still leverage some of your team's strengths when writing your front-end consumers. But making the jump to a decoupled architecture is a big undertaking, even in the best of times.
- Do you want to switch because of a genuine business need? Or do you just feel disillusioned with Drupal? Don't make a platform change for the wrong reasons. Often, you will still need to compromise with the new platform you move to. They might be different compromises, and you may prefer those compromises to the ones you made for Drupal, but be sure you aren't pretending that the grass is perfectly green on the other side.
Drupal 9 and above might have completely different guts than Drupal 7, but it is still a true spiritual successor. As already mentioned, it shares the same vocabulary and the same overall paradigms. The high-level mental models your team has about your CMS will still overlay nicely on top of Drupal 9, even if those models might not be accurate as you zoom in on the details.
This is no minor thing. It means much of your team's deep, institutional experience will still be useful. Instead of building a new house from scratch, you get to start with most of the foundation and framing already intact. Instead of starting the race at the beginning, you get a 30-second head start.
For this reason, among many others, it's better to remain in the Drupal ecosystem.
You are going to need to get off of Drupal 7. Eventually. Remaining on software that is over ten years old has a high opportunity cost, and when it reaches EOL, the likelihood and cost of an undiscovered vulnerability begin to rise quickly.
You have many options available and an extra year to decide and plan for one of those options. The best choice depends on your team's experience, how much business logic you have baked into Drupal 7, and your potential budget.
We have helped plan and execute mission-critical migrations from Drupal 7 to Drupal 8 and above, and we have done it for some of the largest websites (and networks of websites) in the world. Our experience covers state government, public broadcasting, healthcare, and more.
If you need help navigating your choices with Drupal 7, Lullabot can help.