Demystifying web performance automation

This past Wednesday, I had the great privilege of hanging out with the New York Web Performance Meetup crowd, where I led a session on web performance automation. If you’re interested, here’s the slideshow deck:

Summary

I wanted to identify what kinds of performance best practices are manually do-able versus which practices lend themselves better to automation. After going over performance-related terminology and concepts — such as waterfall charts, first vs repeat views, and concurrency — we jumped into a hands-on case study: optimizing the Velocity website. (Full disclosure: O’Reilly recently became a Strangeloop customer, though we’re not yet implemented.)

Delivery vs transformation: The history of performance automation

It’s important to note how performance optimization has changed over the years, from a delivery-focused approach to a transformation-based approach:

Delivery = “I will deliver what the server gives me as efficiently as possible to the browser.”

Transformation = “I will transform what the server gives me to optimize it for the user’s browser.”

Methodology

This presentation is based on a similar session that I ran with Strangeloop’s VP Product, Hooman Beheshti, at the Velocity conference. Much like that session, I artificially “de-optimized” the Velocity site, then implemented a series of best practices, one by one, showing the speed improvements that accompanied each one.

We reviewed the major performance pains of the unoptimized site:

  • Too many connections
  • Too many bytes
  • Concurrency
  • Bad caching for repeat views
  • No CDN
  • Too many roundtrips
  • And some others

Then we implemented a handful of performance best practices (some from Yahoo and Google, and some from Strangeloop), starting with the low-hanging fruit:

  • Keep-alives
  • Compression
  • Client-side caching
  • Use a CDN
  • Reduce roundtrips
  • Reduce payload further
  • Increase concurrency

Throughout this exercise, we talked about the pros and cons of each of these best practices, including the work involved in implementing and maintaining them.

My hope in doing this session was to demystify the automation process, and show how it can complement hand-crafted optimization, making it another useful tool in the developers’ arsenal.

Many thanks to my hosts, Sergey Chernyshev and Alla Gringaus, who did an incredible job of coordinating the entire event, bringing together a great group of people and making me feel very welcome.

Related posts:

11 thoughts on “Demystifying web performance automation

  1. Pingback: Twitted by Gomez_Inc

  2. Joshua, great slides! A really thorough introduction to performance tuning. Wish I had been there in person. :)

    Was curious what you covered during the TCP optimization slides. Could you give a couple sentence summary?

  3. Pingback: Twitted by vincentflanders

  4. Pingback: A (somewhat) brief history of the performance landscape — Web Performance Today

  5. Pingback: A (somewhat) brief history of the performance landscape | Wang Jun's Blog

  6. Pingback: Almost half of the top 1000 retail sites don’t follow two easy performance best practices. Does yours? — Web Performance Today

  7. Pingback: VIDEO: Demystifying web performance automation — Web Performance Today

  8. Pingback: Case study: Faster pages lead to 6% revenue increase for Artbeads.com — Web Performance Today

  9. Pingback: From techs to execs: Putting performance in business terms — Web Performance Today

  10. Pingback: Preview of my mobile keynote slides for Velocity Europe

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>