The Present and Future of Drupal Distributions
This blog post is part of a series on Drupal distributions. The first post discussed the difference between distributions, installation profiles, and Features.
Drupal distributions are the foundation of what I like to call "Drupal as a product." Distributions are like pre-packaged websites: where Drupal core can be turned into any kind of website by configuring it and adding modules, distributions come pre-configured and with the modules needed for a certain type of website.
Drupal 7 has many new improvements that make distributions easier to build, so you can expect to see them become a significantly more important part of the Drupal landscape moving forward. Even Dries Buytaert, the founder of Drupal, recently wrote about how "Drupal as a product" could once again be a major focus in the next version of Drupal. He notes that the major problem facing Drupal distributions is that they require a lot of resources to build, but the financial motivation for Drupal firms to build distributions is not necessarily clear. The business model for selling services around Drupal distributions has not yet been fully established.
To learn more about this problem, I interviewed Irakli Nadareishvili, Director of Product Development at the Drupal firm Phase2 Technology. Irakli’s role involves spearheading Phase2’s work on Drupal distributions.
What Drupal distributions does Phase2 currently offer?
OpenPublish, OpenPublic, and TattlerApp.
How do you think the growth of Drupal distributions will affect enterprise adoption of Drupal?
Drupal is a great content management framework which provides unmatched flexibility for building a wide variety of content-based solutions. However, organizations at the large-scale, "enterprise" level are looking for tailored solutions to niche problems. Drupal distributions address this need head-on. As such, distributions are the champions of Drupal adoption and help promote the platform as a whole.
What do you see as some of the obstacles that Drupal distributions currently face? What problems (if any) are holding back creation of Drupal distributions? What challenges do you face in maintaining them?
The distribution phenomenon is quite new in the content-management world, which is true for Drupal as well as other open-source content management systems. The initial architecture of Drupal was not specifically targeted towards easy creation of distributions, so there were significant challenges in effectively packaging functionality and configuration in a way that would be maintainable and easily upgradeable.
During the Drupal 6 lifecycle a lot of work was done in the Drupal contributions to build a better infrastructure. Innovative tools like Drush Make, CTools exportables, and Features make the creation and maintenance of distributions much more streamlined. A large number of these innovations are reflected in Drupal 7, so Drupal is becoming increasingly distribution-friendly. There is a growing consensus in the Drupal community that distributions are one of the most important items on Drupal's roadmap.
So far, many of the major Drupal distributions have been built by large Drupal development agencies for their large, enterprise customers. What effect, if any, do you think Drupal distributions will have on the low-end Drupal market?
Building a distribution is an expensive and challenging undertaking. To produce a high-quality, well-supported distribution a company must invest significant amount of analysis, design, development and project management resources. Large development shops can support such investment more than the smaller ones. Also, sponsorship from clients can help bootstrap distribution development. OpenPublish was created with initial support from Thomson Reuters and, if I am not mistaken, Development Seed's OpenAtrium was initially built for the World Bank. So, client work can help initial take-off. An important thing to keep in mind is that initial development is only a fraction of the cost, and properly maintaining a distribution is often even more important. Maintaining a distribution over the length of multiple years is definitely more costly than the initial development.
Most of the (currently) existing distributions are primarily supported by the development shops that created them. In general, there are contributions from the community in terms of translations and patches, but main development is still more contained than in the case of Drupal [core]. Our hope at Phase2 is that once distributions gain more ground and become more mainstream there will be more community involvement in the actual development of distributions.
When we released OpenPublish, distributions were still a relatively new concept within the Drupal community. This meant that we had to drive the contributions and maintenance if we wanted it to continue to be relevant. Our hope is that as we launch OpenPublic we will see more contributions from the community in the form of features and module development.
I like to refer to Drupal distributions as "Drupal as a product." That is, where Drupal core can be molded into nearly any kind of website, Drupal distributions are designed for specific types of websites. It's a balance that Drupal has often struggled with: should Drupal core try to solve every use case imperfectly out of the box, or should it focus on more specific use cases? Do we really need the forum and poll modules in core, for instance, or can they live as contributed modules as the "small-core" movement advocates? How do you think the rise of Drupal distributions will impact the way Drupal core itself develops moving forward?
You raise an important question that has been extensively debated in the community and still remains somewhat controversial. I personally belong to the camp that believes in small core. I think that the core should only provide infrastructural components (persistence, caching, session management, user management etc.). What we know now as "core Drupal" should probably be just one of the distributions – maybe the default, most generic distribution.
I think with the rise of distributions the change will happen. In Drupal 7 you can already see that installer asks whether you want to install "Standard" or "Minimal" flavors of Drupal, so that to me is a clear sign of moving in the right direction.
What kind of distribution-related changes do you expect or hope to see in Drupal 8?
Better exportability of configuration is the key. At the end of the day, a distribution is a collection of modules that are best suited for the niche solution plus the configuration that serves the purpose the best. If you cannot release configuration from code and (even more importantly) effectively manage its lifecycle past the initial release, then things get very complicated.
I expect CTools exportables and plugins, either as direct code contributions or at least conceptually, to end up in Drupal 8 core. We also need an improved change management. Currently, it is impossible to push updates to Features (or exportable objects) that have been overridden. It is a significant problem for Features-driven development.
Do you have any tips for Drupal companies looking to create their own distribution(s)? Anything you've learned along the way that has been particularly effective?
"The devil is in details." There are a lot of "secrets of the trade" that make distribution build-out and maintenance effective. I think the best advice, as in any other open-source endeavor, is to look in the existing code. I would recommend checking out the code and documentation for the existing, major distributions and seeing how people before you have solved typical problems. The two distributions I keep referring to the most are OpenPublish and OpenAtrium (in D6). Soon we will be releasing OpenPublic in Drupal 7 where we tried to capture best practices from Drupal 6 incorporating newer techniques specific to Drupal 7.
Isaac Sukin is a student at the Wharton School at the University of Pennsylvania. He has worked with Drupal for over 3 years, and is particularly interested in Drupal as a social networking platform. He interned at Mediacurrent during the summer of 2010. You can follow him on his blog or on Twitter.