In a digital era where website performance dictates user experience - directly influencing site success metrics like page views and time on site - the Drupal community has worked tirelessly to make Drupal’s performance best-in-class. Now, as a result of an ongoing collaboration between the Google Chrome team and Tag1 Consulting, Drupal’s performance and scalability are getting a major boost. We are excited to announce a new open source automated performance testing framework, designed and led by Drupal core release and framework manager Nathaniel Catchpole - catch. The system will greatly benefit the development of the Drupal platform itself and, as an open-source tool, enable end-users of Drupal to integrate performance testing into their DevOps toolchain, delivering a substantial competitive advantage to sites powered by Drupal.
Performance is a core part of our ethos at Tag1. Our senior team members led the creation of, and maintain most of Drupal's performance and scalability capabilities. We are often hired by our clients (such as Renesas, Sumitomo, US Department of Energy, …) to audit the performance of their websites and help them resolve the issues that are found. We also worked with the Google Chrome team to improve Drupal’s Core Web Vitals, which are now best-in-class. The success of that collaboration has shown us that we should strive to achieve more. We analyzed Drupal’s needs, considered the priorities of Google’s Chrome team and concluded that automated performance testing is the next step we should take. This is how Gander was born, which lets users “take a gander” at their performance.
It Will Soon be Part of the Drupal Core Development Process and Available to End-Users
The automated performance testing framework is being incorporated into Drupal's automated QA infrastructure. Initially, it will regularly run on active Drupal core branches. In the future, we would like to advance it even further to be able to test open merge requests and then see it expand to Drupal distributions, contributed modules and themes with additional support from the community to do so. While our main goal is to bring the Drupal Core development to a new level, this isn't the only way it can be used. The base class for performance tests is already part of Drupal core, which means that anyone can start writing performance tests for their own projects and incorporate them into their in-house development processes.
Why is Performance Important and How Are We Changing the game
Milliseconds matter. Even slight improvements in load times can lead to significant gains in user engagement and overall website performance, including increasing page views, optimizing conversion rates, and driving revenue. Furthermore, search engines prioritize fast-loading sites, ensuring better online visibility and more organic traffic. Especially in an era of mobile browsing, optimal performance isn't just a benefit – it's essential for the success of websites.
While Drupal inherently boasts impressive performance, the lack of automated performance testing has historically made the identification and resolution of regressions challenging. Performance testing for Drupal Core and most sites (if the sites test performance at all) is currently done manually, infrequently, and late in the development cycle. Automated testing not only streamlines this process, but it ensures that efficiency is consistently upheld. By catching issues early in the development cycle, they are significantly easier to fix, and we can prevent them from causing problems on production websites. Furthermore, it also enables us to see the benefit of improvements when they are made. The integration of such testing reinforces Drupal's already best-in-class performance, ensuring that any updates or modifications do not degrade it. In essence, it provides the Drupal community with an added layer of assurance and traceability, further bolstering user trust and satisfaction.
Who Benefits From Automated Performance Testing?
For Drupal core maintainers and committers automated performance testing presents a huge benefit. Core performance testing often happens when someone personally experiences the performance degradation from a previous core commit, either when developing locally or on a client site. Then there is an investigation, reviewing weeks, if not months, of core commits trying to find the change that introduced it. By automating performance testing, we hope to find regressions early and often, and keep performance front and center in people's minds when they're making changes. This will allow core developers, maintainers and committers to focus on their most important job - maintaining and developing Drupal. They will gain valuable insight into the performance metrics of the automated performance tests through the dashboard that the automated performance testing framework creates using OpenTelemetry and Grafana. This will allow them to monitor Drupal’s performance more frequently while reducing their workload.
Organizations using Drupal will benefit in two ways. Drupal’s improved performance directly translates into improved performance of their sites. This will increase their page views, drive more revenue, and increase user satisfaction. Due to the framework's open-source nature and the fact that it is already part of Drupal Core, they will also be able to leverage it to performance test their sites and incorporate these tests into their internal continuous integration quality assurance pipelines.
The Drupal project as a whole just got another tool to continuously improve Drupal. But we want to achieve more; in the future we want to performance test Drupal core more frequently (testing merge requests before they are merged, testing active branches after each new commit, and more) and also expand it onto the contributed modules space. This would allow maintainers of these modules to write performance tests adjusted to their module’s needs and run them regularly. Gander is capable of doing this today! The main limitation we are currently facing is the infrastructure costs. One of the goals that we have for the future is to secure funding to cover these expenses.
How will Automated Performance Testing impact Drupal, Other Open Source Projects, and the Entire World?
Gander will help Drupal in many ways. In the future we expect to be able to avoid the majority of performance regressions that would be hard to identify otherwise. It will also, through the use of automation, speed up development and increase quality.
We expect it to raise awareness of how important milliseconds are to site success. As we often notice during the performance audits that we do for our clients, it is often overlooked until it becomes a glaring problem. By adding automated testing to Drupal core development process the message about the importance of performance will reach more people. Additionally, this tooling will give organizations the tools to start regularly monitoring the performance of their projects.
As far as we know, nothing like this exists in the broader open-source CMS community. We expect this tooling to encourage other open-source projects to adopt similar tools into their development process, confirming Drupal’s place at the forefront of innovation. As part of our collaboration with Google, we have been collaborating with Core WordPress developers - such as Adam Silverstein, who are also building out a system similar to this one - for the same reasons.
And, a wonderful side-effect of this work is the environmental savings; a faster Drupal requires less computing power. It will also drain less of your mobile’s battery life. With Drupal powering ~3% of the Internet, the savings across just a fraction of the installs could be substantial. It also makes Drupal less expensive for organizations to run and host.
Want to learn more? Join us at DrupalCon Lille!
At the upcoming DrupalCon we are hosting a BoF session where we will talk about motivation for Gander, how it benefits Drupal itself, its developers, and the organizations using it, our roadmap and goals, and get your input and feedback. The architect and lead developer, Nathaniel Catchpole, will also do a live demo and answer questions to help you get started.
Don’t miss out! Join us on Thursday, October 19th, at 15:00 CET in Room 2.3 - BoF.