Top Three
- HTTP/2 is ready to use today. Performance boost heading your way if you use it well
- You measured everything. Now you’re drowning in data. Focus on user experience
- Web tech moving fast. Time for ServiceWorker (HTML5) and new image formats?
Interesting, Tell Me More
I went to the Velocity Conference in Amsterdam last week. It’s about building faster web apps at scale, mostly from an app performance and operations point of view. The quality of the speakers and the content was great and I can recommend going next time if they can keep it up. Three days of massive knowledge sharing is a lot to take in of course, but I’ll try to pick up some of the things that at least resonated with me.
Web Performance
Since Velocity Conf is a lot about web app performance, almost every talk I attended mentioned WebPageTest to validate their findings. A lot of work seems to go into this service and tools are built around it, for example Web Performance Heat Map, Request Map Generator and RUM Wall. Also have a look at Steve Souder’s new baby SpeedCurve.
It was also announced at the conference that Headspin.io now provides with Real Mobile Networks, which means the real crappy 3G network in for example Bangalore for you to use as test location in webpagetest.org. The high priest of speed Steve himself in a video showing how to do that
HTTP/2 (SPDY successor) is ready to use according to several people at the conf. You’ll need to enable HTTPS (https://istlsfastyet.com, https://letsencrypt.org) and you’ll be able to just flick the switch in some web servers, for example Nginx. However, there are some considerations for how you deliver your web pages if you want to reach the touted 15-50% speed boost, for example not concatenate JS/CSS files. Read more about it here
There’s a lot you can do to optimize performance for image serving, like choosing the right format, using better encoders and serve right size to each device. It’s a lot of work, so using an image manager, for example Cloudinary, may be worth it. See the slides from the talk here.
Since the tech behind the web still is moving fast (surprise!), there were some interesting talks about the status of the web today and what is mature enough to start considering when building web apps. A couple of them mentioned ServiceWorker as a way to improve client side rendering, performance and create a more native feel for web apps. You may use it for preloading a local cache with stuff that then could be served even without network connections. Progressive enhancement is still relevant and could be used to improve performance. Here’s an example app with some good practices
Read more
Best viewed with… (description and slides)
Adapting for the times (description and slides)
CSS performance tuning (description and slides)
Web Resilience
Over at OpenTable they had this monolith app that they split into components. At the conference they showed a clever way to create a resilient web app using an independent HTML fragment infrastructure they created: https://github.com/opentable/oc. This allowed them to work on the same product in completely independent teams all over the world.
Acting on the right data was a theme throughout the conference. Some years ago everyone was saying “Measure everything!” and “Monitor everything!”. Yeah, so you have a lot of data. Now what? I attended an interesting talk about anomaly detection by the people from Ruxit. They wanted to avoid waking on-call people up for things that don’t really affect the users. Other tools that were demoed in the conference had the same take on how to surface the right data to act upon. They calculated some kind of user experience index, for example from user action response time and number of errors (+ secret sauce).
When monitoring everything you also get a lot of information pushed to you. At Financial Times they just decided to remove all alerts from error logs to email inboxes. They replaced them with a few alerts pushed to chat rooms in Slack instead. Only alerts having to do with users being affected were allowed.
Another part of resilience is making sure your app is not vulnerable for attacks. Keeping your app secure is one thing, but do you know if the software your app depends on is secure? Some guys from Snyk showed a nifty little helper tool to keep track of vulnerabilities in Node.js dependencies: https://github.com/Snyk/snyk. Here’s a video of the keynote where the tool was presented.
Read more
Guide to anomaly detection (slides)
Can monitoring tools pass the Turing test (video from keynote talk)
Alert overload (description and slides)
And for Dessert
On a more forward-looking note there was a talk about the Physical Web where all things have a URL you can interact with. I liked the simplicity of it and that they’ve thought about user integrity and avoiding notification fatigue from the start.
Another talk was an important reminder how to learn from mistakes when incidents happen. Asking what and how is more relevant than asking why and who. Just changing the way we talk about incidents makes it possible to learn from mistakes. We often fall into the trap of hindsight bias (“stupid pilot didn’t react”) instead of really looking into what was happening at the moment (“runway lights were out”). We should think that people make the best decisions based on the information they had at the time.
Read more
The physical web (description and keynote video)
Learning from incidents in your organisation (description and slides)
Feedback
Feedback is always welcome at Twitter @ocklund If you’d like to see more of my comments on this conference just do a search on Twitter like so: “@ocklund #VelocityConf”