As we embark upon our next big adventure, planning for the migration from Drupal 7 to Drupal 8 of EdWeb, the University’s central CMS, a group of us from Information Services are here in Vienna this week attending DrupalCon 2017. We are a small but diverse bunch of project managers, developers, sysadmins, and support staff who all play a part in building, running and managing EdWeb. For the next few days we’ll be sharing our thoughts on the sessions we attend, recommending top sessions, and giving our key takeaways – not the wurst variety – from our DrupalCon experience.
On Tuesday, we started DrupalCon the right way by attending the always entertaining Pre-note, followed by Dries Buytaert’s traditional Driesnote keynote presentation on the state of Drupal. We then set out on our different tracks, paths crossing at coffee and lunch, for the first intense but interesting day of DrupalCon sessions.
Thanks to Riky, Tim, Andrew, Adrian, Bruce and Billy for contributing their thoughts on sessions they attended; any errors, omissions or misinterpretations in their edited notes are entirely mine. All of the sessions mentioned below, along with many more interesting talks, are recorded and available on the Drupal Association YouTube channel.
Adrian Richardson is a full-stack developer with experience in both Drupal and non-Drupal technologies. He is heavily involved in the development of EdWeb, our central CMS, and EdGEL, our evolving framework that supports front-end developers around the University.
Theme for today
Configuration management and de-coupling of the web front-end.
- Fabian Bircher from Nuvole covered the use of Config Split and Config Filter, as well as best practices around Drupal 8 configuration management with multiple environments and developers.
- Drush 9 has been re-written from the ground up and now takes a component-centric view. This session with Moshe Weitzman and Greg Anderson covered the major developments in how Drush is used, how commands work and how to build new commands.
- Demo of the migrate module for Drupal 8 by Rakesh James.
- An overview from Jan Tarvainen of a site using Facebook’s GraphQL to return all required page data in one API call, with Next.js providing both server and client rendering of markup.
- Use feature branch merging workflow to ensure configuration changes aren’t lost and don’t leave the database copy of configuration in an unusable state.
- Lots of interesting tips on Drush 9:
- Drush 9 is built on Symfony 3 so is not compatible with Drupal 8.3 and below;
- Stick with Drush 8 for earlier versions, it will be supported for a long time;
- Commands like drush dl and make are not there any more because you should be using composer;
- There are lots of handy code generation commands available to give you the boiler plate for new modules, plugins, etc.;
- Drush commands are now written using annotated methods and do not appear in drush.inc files, so keep using them for Drush 8 support and use the new methods for Drush 9.
- To support autoloading version conflicts, Drush should now be added as a dependency within your project and not installed globally, although there is a launcher that can be put in your path and will run the correct local drush install.
- The new drush 9 should be used with config split, etc. to manage configuration.
- Configuration of migrations is much easier in Drupal 8 using YAML to define source, process and destination pipeline as plugin configuration. Writing plugins for the source, processing and destination elements of migration looks straightforward now too. Custom modules can provide these plugins to migrate any Drupal 7 content they manage.
- Views are not supported in migrate, nor will they be. Views should be redefined in D8 so they can take advantage of the new features available.
- GraphQL with Next.js is just one of many methods available for running headless Drupal, and Drupal development will improve with the integration of these third-party JS libraries (cf the Driesnote)
Andrew Hobden is a support engineer who works with some of the University’s key systems, including EdWeb.
Theme for today
Today was about configuration management at all levels!
- This session was a simple run-through of all the “correct” testing methodologies needed to provide a high degree of confidence that a site would not have any problems after deployment.
- In this session the “Config” modules were discussed by Fabian Bircher. These modules allow Drupal content and config to be transferred from one environment to another while “tailoring” it along the way. The process involves saving the DB config into files and also filtering before that save and after the respective load. The process followed becomes very important.
- In this session Jen Lampton proposed a completely different approach to the configuration management problems solved by using features. She suggests that in most cases it is possible to use hooks and a bit of organisation to solve these issues. Her arguments make sense for smaller sites where the overhead of using features leads to increased developer times.
- This session was basically an advert for platform.sh. The speakers are high level members of various companies that have adopted the use of platform.sh. In this session there was a lot of discussion about the time-saving aspects of using a system that allows an environment to be spun up in minutes for every branch being developed as well as the versioning of that environment in git as a single YAML file.
For a problem that seems so simple there were a surprisingly diverse set of “solutions”:
- Take all the techniques learned elsewhere and apply them to a Drupal project;
- Do something very Drupally;
- Roll your own;
- Pay someone else.
All of these techniques will work – we just need to find the combination that will work for us.
Billy Wardrop is a developer who also provides technical support for the University’s central website and CMS.
Theme for today
- An overview of some really useful aspects of Drupal 8 module development, I thought this was the best session of the day as Acquia’s Ted Bowman talked through several in-depth examples and provided the underlying code, which I will look at once I get back to Edinburgh.
- A whistle-stop tour of the UI Patterns module in Drupal 8 from Nuvole’s, Antonio De Marco, which was very impressive!
- Drupal will get a JS framework as part of core soon.
- Decoupled Drupal is becoming more popular as the API gets better.
- You can still get a free t-shirt if you try.
- Oida means dude (cf DrupalCon Pre-Note!).
Bruce Darby is the product owner for the University’s central CMS.
Theme for today
Dries calmly trouble-shooting the technical problems with the presentation screen while giving his Keynote, rather than getting annoyed and demanding someone come up to fix it. A true community player!
- An overview of 40 developers in 8 scrum teams spread across multiple timezones working towards a common aim.
- In the ‘Building high performing teams’ presentation, it was said that sprints need time to allow for knowledge transfer, cross training and collaboration, that everyone knows this but it’s hard to do, and that it’s an area that needs continuous improvement!
Mairi Fraser is a senior developer who works with some of the University’s key systems, including EdWeb, and the University’s portal for Staff and Students, MyEd.
Theme for today
As is so often the case at DrupalCon, the theme for today was not unique to Drupal. The sessions I attended were very much focused on approaches to breaking down monolithic systems and de-coupling the front-end, themes which are increasingly pertinent across the services and applications we run in IS.
- A succinct overview by Wim Leers of the progress and current focus of the API-First Initiative, set up to make Drupal API-first and expose the data stored and managed by Drupal to other software. This talk chimed nicely with work we are doing in IS to build APIs that make better use of data across our systems, regardless of the underlying platform or the consuming technology. If you’re interested in the work we’re doing in this area, take a look at Michael Sun’s blog post on how we are using APIs.
- A really interesting talk from Deeson’s John Ennew on key factors in successfully creating a de-coupled component layer, supported by a living style guide, that acts as a design system separate from but integrated with Drupal. Given that we’ve already started down this road with EdGEL, it was good to see this approach reinforced and applied beyond what we’re currently doing for the CSS, incorporating twig templates and JS as well.
- Even the API-First Initiative hasn’t solved the problem of API versioning!
- Page design should be done at the level of a component, not at page level; you shouldn’t even be trying to share a page design with clients.
- There were many things that could be directly quoted from John Ennew’s talk on component driven front-end development, but here is one point that really struck home about the importance of being able to update components directly in the design system rather than in the CMS, and what happens when this isn’t done:
“…changes made as the project evolves are unlikely to find their way back into the styleguide. The usual project strains and time constraints mean that changes get applied directly to the CMS and the Drupal theme, and the style guide will slowly drift out of sync with the systems that it’s supposed to be supporting. When this happens, the style guide ceases to be useful and in fact can be a cause of misdirection and confusion between the project team members as they reference different versions of the truth that’s stored in different places”
- In the context of front-end development, the parallels between today’s talks on de-coupling, and our drive to build a sustainable, evolving framework to support front-end development around the University are striking; we must capitalise on the work we have already done and bring EdGEL, our own framework, closer to the excellent component-driven development model demonstrated by John Ennew from Deeson today.
- Exciting opportunities lie ahead!
Riky is a DBA and SysAdmin who loves solving problems with technology and is here at DrupalCon to get ideas and learn best practice for architecting our new Drupal 8 infrastructure.
Theme for today
The theme of the day was performance, with several sessions quoting the statistic that “40% of people abandon a website that takes more than 3 seconds to load”.
- This was an excellent session by the very experienced speaker Thijs Feryn which had a ton of useful, very technical content in a short amount of time. This technique will be thoroughly investigated for our future Drupal 8 infrastructure so we ensure a better experience on the main website for all of our users, not just the unauthenticated ones.
- Our performance testing for the current Drupal 7 site had page loads for the 90th percentile of responses within 5 seconds as a pass criteria, so we may want a more challenging test for our next platform as expectations of our users increase.
- At the University, as with the majority of sites using Varnish for content caching, we have a problem that Varnish won’t cache anything as soon as a user has a logged in session. By using JSON Web Tokens to hold hashed session data in the users browser, we remove the requirement to hit the backend and can provide cached content to authenticated users.
- There are many techniques for improving the performance of websites, with caching being a vital part of a Drupal architecture: “Don’t recompute if the data hasn’t changed”.
- Using JWT with Varnish can speed up the web for all users.
- While Google AMP and Facebook Instant Articles improve their users’ experience at the high cost of being very restrictive and breaking web standards (Instant speed with Google AMP and Facebook Instant Articles).
- BigPipe can improve the perceived speed of a site by breaking a page into chunks so faster static assets can be served first (Tunneling its way fast with BigPipe).
Tim Gray is a senior project manager who also manages the programme for work for the University’s central website. In this role, Tim manages a number of Drupal projects as well as other non-Drupal projects related to the University website.
Theme for today
Communication, leadership and making the community more inclusive for non-developers.
- An interesting view on how to define your leadership styles from Russian Development Manager Marina Patch. Marina outlined her personal journey where along the way she tried to find out and understand the common things that make one happy or inspire one. Using this she describes that “what I stand for should be very clear and easy for others to understand.” This stance should stand up (bitterly) to challenge.
- Donna Benjamin, Project Lead and member of the Drupal Association Board, encouraged dialogue and discussion in small groups on Communication. The session covered three topics of the what, the how and the why. It’s no surprise to hear the conclusions that listening, feeding back through reformulating are key elements in successful communication. Other important tools are the ability to tune into your audience and of course a touch of humour can go a long way.
- Acquia CEO Tom Erickson talked through his observations since setting up Acquia with Dries over 10 years ago. The session covered Tom’s personal views on some touchy subjects for example where the community has gone wrong and in a place where DrupalCon Europe will not take place in 2018. The key message being that in order to progress as a community the Drupal Community must adapt, become more inclusive – it’s not all about developers – and find a way to incorporate the marketing aspects of business.
- I’m always fascinated by the energy and enthusiasm of a DrupalCon. It shows the amazing power the community can have. It really is an encouragement as to what can be achieved and in a kind of way confirmation that the community building at use is on the right track.
- Interesting session on leadership, with some good tips on how to practically integrate what’s important in one’s life into leadership tools.
- Dries’s reaction to Tom Erickson’s session was interesting to observe!
- On the downside, The Higher Ed Box Was disappointing. The session was called by a Russian Drupal agency plugging their own research publishing module. There was some discussion around where different higher ed organisations are but with only three represented, Flensburg (Germany) and Adelaide (Aus), this was limited.