Feedback on DrupalCon Vienna 2017

I was able to attend DrupalCon Vienna 2017. Here are my notes on the sessions and BOFs I attended or co-presented.

This year, DrupalCon welcomed 1,670 participants.

A note on the BOF rooms: they were well suited for discussions (chairs arranged in a circle), but there were no tables or projectors, which made presentations a bit tricky.

Sessions and BOFs I attended

Advanced Configuration Management with Config Split et al.

The configuration management session, presented by the creator of Config Split, Fabian Bircher, who is also heavily involved at the core level and in community modules around everything related to configuration.

The "Graylist" feature of Config Split would benefit from a more concrete use case for explanation. I was able to discuss this with him after a BOF. The idea is primarily for client-authorized changes in production, by putting those items (with wildcards if needed) on the Graylist, it becomes possible to:

  • provide those items in the main configuration folder,
  • import them during a deployment,
  • modify them in production,
  • export them to the production split before importing new configuration,
  • so that when configuration is imported (with all splits active), production changes are not overwritten.

Using JSON web tokens & Varnish to cache content for logged-in users

The idea of the presentation is to send session information to the client so that Varnish can cache pages for authenticated users, by creating cache variations based on user data sent in JSON web tokens.

PHP 7+: The whys and hows

The speaker was unable to display his presentation. The session recording will be worth watching.

Prophecise your phpunit tests

A fairly average presentation — the topic is interesting, but the delivery added little value over simply reading the documentation.

Distributions and Install Profiles: The Challenge and the Glory

A general presentation on the concept of distributions and installation profiles.

It also helped clarify the subtle difference between the two.

An installation profile is what you select when installing Drupal, it consists of setup steps, modules and themes to be enabled, and configuration to be imported.

A distribution is one or more packaged installation profiles. In addition to the profiles, it may include modules and themes not systematically activated, scripts for asset compilation, packaging, etc.

The presentation made the point that Drupal.org is no longer well-suited for packaging distributions:

  • increasingly widespread inclusion of external front-end libraries,
  • module and library management via Composer,
  • Drush will soon be removing its drush make functionality,
  • it is impossible to run automated tests on distributions.

The presentation also listed the emerging distributions in Drupal 8. Among them, two I had not come across in Drupal 8 that I should test to see what they offer:

  • Varbase
  • Openchurch

Sharing configuration in a multisite environment in Drupal 8

A discussion around configuration management challenges. The topic was initiated by people from Lund University (Sweden), who use Jenkins and Aegir to provide sites to university staff.

They use Jenkins to package Drupal 8 in a way that can then be used by Aegir, since Aegir does not yet support Composer-based installations.

For configuration management in Drupal 8, they use Features and hook_update for importing Features updates.

They also tested the Configuration Synchroniser and Install Profile Generator modules with a view to adopting CMI. However, the main problem encountered is that it is impossible to change things like the site name or site email address when installing from an existing configuration.

Fabian Bircher and Alex Pott were present and were able to clarify questions about how CMI works and why UUIDs must be preserved across environments.

Core makes as few assumptions as possible about the workflow people use to manage their configuration.

The idea behind UUIDs is to allow a configuration to be identified. If it is the same configuration, a view for example, regardless of the environment, it makes sense for it to have the same UUID. So if you install a site from an existing configuration, it is expected to have the same UUIDs.

Life on the Edge: CDN and HTTPS Delivery in 2017

A presentation focused more on why you should use HTTPS and a CDN, rather than how to do it.

Plenty of metrics were shown to raise awareness of the value of putting such infrastructure in place when setting up site hosting.

Another point on the HTTP/2 protocol: it is only used when the site is on HTTPS, due to a limitation enforced by browsers.

Rendering & caching: a journey through the layers

A presentation of Drupal 8's cache system, with a very clear explanation of the differences between the Dynamic page cache, Page cache, and Big Pipe modules and where they sit relative to each other.

A clear explanation of a very complex system.

BOFs I co-presented

Together with Vincent Maucorps, we co-presented 2 BOFs registered on the BOF board on the day itself.

Presentation of Entity share

We presented the Entity share module, explaining the problem it addresses, how it works, and giving a demo.

The module's primary objective is to share content entities between Drupal 8 sites. For example, to synchronize content in multiple languages across several subsidiary sites within an organization, with or without a site acting as a central content repository.

Based on feedback from attendees, and having already received this feedback at Drupagora 2017, another emerging use case is retrieving content from production environments to pre-production, staging, etc.

During this BOF, I also got to meet Gabe Sullice, co-maintainer of the JSON API module that Entity share relies on. He was pleased to see JSON API being used for content sharing, something he had also wanted to do.

Ted Bowman was also present and suggested using the Subrequests module to improve performance. Something I'll need to look into.

Presentation of a showcase site distribution

We followed on in the next time slot with a presentation of a Drupal 8 distribution for showcase sites.

This distribution will be contributed to Drupal.org once it is ready.

During the discussion with attendees following the distribution presentation, we presented Entity share again.

Sprints

While sprints ran continuously throughout the DrupalCon, Friday was a dedicated sprint day.

I was also able to take advantage of the presence of Greg Anderson, co-maintainer of Drush and collaborator on the Drupal Composer GitHub group, to make progress on improvement proposals I had submitted for his tools:

Nothing was committed, but it at least allowed progress on the merge request reviews. Contributions move faster when people can exchange directly.

A note on certifications

I was able to sit 3 Drupal 8 certification exams during this DrupalCon, I'll use this article to compare sitting exams on-site versus remotely.

If you have the opportunity, I would recommend sitting your certifications at a test centre, it is far less constraining than doing it remotely.

When taking an exam remotely, you must:

  • be filmed by a webcam
  • have a microphone for audio
  • install software on your machine (Windows required)
  • when launching the exam, go through 2 authentication steps:
    • facial recognition
    • text recognition, where you must type your first and last name at the same speed as during the initial calibration.

Conclusion

Photo DrupalCon 2017 closing session

Closing session of DrupalCon 2017.

Thanks to the organizers for this event.

Thanks to the community for its presence and for taking on the organization to ensure future DrupalCon Europe events can take place.

It was wonderful to reconnect with familiar faces and meet new ones.

And thanks to Smile (silver sponsor) for sending me there.

Comments

Add new comment