Web performance and ops – Weekend must-read articles #37
This is our collection of must-read articles about web performance and ops for the weekend. There’s something about Facebook, Twitter, Real User Monitoring, memcache, NGINX, and more.
We regularly bring you a collection of links to places on the web that we find particularly newsworthy, interesting, entertaining, and topical. We try to focus on some particular area or topic each week, but in general we will cover Internet, web development, networking, web performance, webops, security, and other geeky topics.
This week’s suggested reading
Here at Facebook, the HipHop team constantly strives to improve the efficiency of PHP execution and increase productivity for our PHP developers. In late 2011 we announced that we were pursuing a just-in-time (JIT) compilation approach called HipHop VM (HHVM) as a successor to the HipHop PHP-to-C++ compiler (HPHPc). The goals of the HHVM project are two-fold: build a production-ready virtual machine that delivers superior performance, and unify our production and development environments.
This is where an anomaly detection algorithm, backed by a good statistical engine with access to the data can prove invaluable: it does not need to be perfect, but it should be able to alert you to significant outliers in the data. With the alert in hand, or in your mailbox, you can dig in and determine if more investigation is required.
Have you ever noticed that when you click on a link the page doesn’t change right away? If I had written the code I would have cleared the page as soon as the link was clicked. But in a masterstroke of creating the perception of faster websites, browsers instead don’t erase the old page until the next page arrives.
At my new job we’re reigniting an effort to move to continuous delivery for our software releases. We figured that we could learn a thing or two from Facebook, so we reached out to Chuck Rossi, Facebook’s first release engineer and the head of their release engineering team. He generously gave us an hour of his time, offering insights into how Facebook releases software, as well as specific improvements we could make to our existing practice. This post describes several highlights of that conversation.
As part of our continuing effort to improve the performance of twitter.com, we’ve recently implemented pushState. With this change, users experience a perceivable decrease in latency when navigating between sections of twitter.com; in some cases near zero latency, as we’re now caching responses on the client. This post provides an overview of the pushState API, a summary of our implementation, and details some of the pitfalls and gotchas we experienced along the way.
Evernote stores hundreds of terabytes of online data in order to preserve our users’ memories. Over the last four years, 36.8 million people have created Evernote accounts, and together have uploaded more than 1.2 billion notes with more than 2 billion attachments. The online application has generated a continuous stream of structured logs, which record high-level activity performed via our APIs from clients and web interfaces. These logs have grown with time and usage so that now we’re recording nearly 200 million events per day, with more than 66 billion events since our launch in 2008.
The web — and how websites perform in the real world — are directly related to the various ways users interact with them. I covered this concept of situational performance and why it’s important in an earlier post, “Web Performance: Why One size Doesn’t fit all.” A modern website has to work well on new browsers, old browsers, powerful desktop machines with great connectivity, and a long tail of mobile devices with a broad range of bandwidth situations.
Here at Etsy we (ab)use our memcache infrastructure pretty heavily as a caching layer between our applications and our database tiers. We functionally partition our memcache instances into small pools and overall it works fabulously well. We have however suffered occasionally from what we call “hot keys”.
The reelection of Barack Obama was won by people, not by software. But in a contest as close as last week’s election, software may have given the Obama for America organization’s people a tiny edge—making them by some measures more efficient, better connected, and more engaged than the competition.
WordPress is one of the most popular content platforms on the Internet. It powers the majority of all freshly released websites and has a huge user-community. Running a WordPress site enables editors to easily and regularly publish content which might very well end up on Hacker News – so let us make sure the web server is up to its job! This setup will easily let you serve hundreds of thousands of users per day, including brief peaks of up to 100 concurrent users on a ~15$/month machine with only 2 cores and 2GB of RAM.
What’s the secret to staying fresh, lean and mean when you’re a hot tech company on a fast growth trajectory? A fascinating document brought to our attention today today by Andrew Mager, hacker advocate at Spotify, answers that question in some detail by telling us how the music streaming juggernaut does it: by dividing up its business into small clusters — which it calls ‘squads’ — and running each like a startup in its own right.
You can also subscribe to these articles
You can also subscribe to these weekly articles and receive them in your email inbox each week.
Image (top) via Shutterstock.