A shorter, faster way to performance - Making the Kessel Run in <12 parsecs with Fastly & Drupal 8

Fabianx
drwilco
Speed up your site! Deliver it via a CDN!

Speed is asked for everywhere, every millisecond counts, studies show that slow sites loose real money and everyone wants a fast page. But how do you get one?

Obviously there is a lot to optimize (time-to-first-byte on the server, Images, Javascript, CSS), but when you have optimized all of that you still have to deliver it to the user. And if your user is in Australia and your server is in the USA, this can add up to a lot of time.

CDNs like Fastly solve that problem since ages for static assets (CSS, JS, Images) and with the cdn module it is a no-brainer in Drupal 7 and 8 to deliver those via any CDN. But what about the pages itself and authenticated users?

Drupal 8 Cache Tags make invalidation easy

Thanks to the usage of Cache Tags everywhere within Drupal 8 and Fastly Surrogate Keys, it is simpler than ever to just publish content and the CDN is immediately up-to-date on all edges.

This means: Instantaneous purging of all (and only!) the affected pages when an article is updated. No more manual purging by content editors. No more fiddling with URLs to purge. It all just works. Optimally.

Cache anonymous pages without any effort. On your own reverse proxy, and on many CDNs — thanks to standardized configuration.

Drupal 8 Cache Contexts make authenticated user caching possible

And thanks to Drupal 8 Cache Contexts a simple ESI module, can make it possible to cache authenticated user content at the edge without almost any configuration needed (just a custom VCL). It transparently just works.

The typical example here is: a shopping site, users categorized in groups according to interests, and a shopping cart.

Automatic caching of the entire page, minus the shopping cart, on the edge. Reused across all users in the same group. And, if the CDN supports it, even the shopping cart can be cached on the edge (and be kept up-to-date thanks to cache tags). Otherwise only that needs to talk to the origin (via AJAX, for example).

Cache authenticated pages without any effort.  On your own reverse proxy, and on some CDNs — thanks to standardized configuration.

Summary

For sites with many mobile users (high latency due to network), global audiences (high latency due to distance) and performance-sensitive sites (e-commerce), Drupal 8 will be a huge leap forward.

Because Drupal 8 has comprehensive knowledge about the cacheability of the things it renders, that means Drupal 8 will be able to cache everything at the edge!

Goals
  • Learn how easy it is to setup a CDN like Fastly or do-it-yourself with Varnish
  • Learn about the basic caching concepts
  • See some fantastic Demos
  • ESI, AJAX and hybrid rendering strategies
  • Get excited about the future of the internet!
Audience

The session is for everyone that is interested in having a fast site that transparently just serves everything from a CDN and hence gives the user the best possible experience. It is targeted for beginners, but will also cover some more intermediate concepts in between.

About the speakers

DocWilco is an employee at Fastly with vast experience in Varnish caching and helped to realize the new ESI approach by providing background knowledge and advice.

Fabianx is the co-author of the BigPipe module and introduced together with Wim lots of the presented concepts into Drupal 8 realizing their vision of making the whole internet fast.

Session Track

Drupal Showcase

Experience Level

Beginner

Drupal Version