• Print

Velocity 2009 – Big Ideas (early registration deadline)

what-is-velocityconf.png

(tag cloud created from Velocity session & speaker information using wordle.net)

My favorite interview question to ask candidates is: “What happens when you type www.(amazon|google|yahoo).com in your browser and press return?”

While the actual process of serving and rendering a page takes seconds to complete, describing it in real detail can take an hour. A good answer spans every part of the Internet from the client browser & operating system, DNS, through the network, to load balancers, servers, services, storage, down to the operating system & hardware, and all the way back again to the browser. It requires an understanding of TCP/IP, HTTP, & SSL deep enough to describe how connections are managed, how load-balancers work, and how certificates are exchanged and validated… and that’s just the first request!

Web Performance & Operations is an emerging discipline which requires incredible breadth, focusing less on specific technologies and more on how the entire system works together. While people often specialize on particular components, great engineers always think of that component in relation to the whole. The best engineers are able to fly to the 50,000 foot view and see the entire system in motion and then zoom in to microscopic levels and examine the tiny movements of an individual part.

John Allspaw recently described this interconnectedness on his blog:

With websites, the introduction of change (for example, a bad database query) can affect (in a bad way) the entire system, not just the component(s) that saw the change. Adding handfuls of milliseconds to a query that’s made often, and you’re now holding page requests up longer. The same thing applies to optimizations as well. Break that [bad] query into two small fast ones, and watch how usage can change all over the system pretty quickly. Databases respond a bit faster, pages get built quicker, which means users click on more links, etc. This second-order effect of optimization is probably pretty familiar to those of us running sites of decent scale.

Working with these systems requires an understanding not only of the way technology interacts, but the way that people do as well. The structure, operation, and development of a website mirrors the organization that creates it, which is why so many people in WebOps focus on understanding and improving management culture & process.

Organizing a conference like Velocity is a wonderful challenge because it requires the same sort of thinking. We focus on the big concepts that everyone needs to know and then go deep into the technologies that change our understanding of the system. We find ways to share the unique experience that can only be gained by operating at scale. We make it safe to share as much of the “Secret Sauce” as we can.

Please join us at Velocity this year, we have an amazing lineup of speakers & participants. Early registration ends on Monday, May 11th at 11:59 PM Pacific. (Radar readers can use “vel09cmb” for an additional 15% discount.)

Velocity, the Web Performance and Operations Conference 2009

tags: , , , , , , , , ,
  • http://tim.oreilly.com/ Tim O'Reilly

    Jesse – I love this post. Your opening paragraph reminded me of a passage in Alain du Botton’s fabulous book How Proust Can Change Your Life. A friend returning from the train station, starts to tell Proust about his day. “More slowly,” asks Proust. The man gives a bit more detail. Again, Proust: “No, more slowly.”

    A fabulous reminder of how much complexity hides behind simplicity.

  • http://www.bwatkins.com Bob Watkins

    I agree, great question!

    The John Allspaw quote is interesting too. I see the opposite problem with SQL, though – developers who do multiple small queries against different tables which individually are fast, but the time adds up. A more complex query that joins the tables and filters the results within the database server can improve overall performance because less data needs to travel the network to the application that uses it.

  • http://www.robocallaghan.com/ robert O'Callaghan

    Reminds me of the question I used to do right at the end of a technical interview for our dba’s. I used to pull out a fresh print out of the sql server log (sybase) of our live system and ask the to tell me about my server.

    You got looks of horror from people who had never seen a log thru to people who instantly got your set up and would open right up their knowledge chest.

    Rob.

  • http://www.alertsite.com Ken Godskind

    I have frequently asked a similar question of employee candidates to gauge their knowledge of website interactions and performance.

    To most non-technical users the web-browser is a magic box where you type a website in the top and a beautiful web page comes out the bottom.

    From a monitoring perspective, an understanding of all these metrics…
    - DNS resolve time
    - TCP connect time
    - Time to first byte
    - Redirection
    - HTML content
    - Fullpage Content

    and a way to measure them so you can see their contribution to end-user experience are critical.

    An actual web-browser is one of the best ways to collect information on all of the above metrics.

    Chief Strategy Officer, AlertSite
    http://www.alertsite.com

  • Dennis Linnell

    Excellent post. I teach a 5-day course on performance for web applications developers. The second topic the class covers, taking 5 hours (including 2 hours of lab), is your interview question “What happens when you type www.(amazon|google|yahoo).com in your browser and press return?”

    My first class topic is “What is performance?” That might also be a good interview question.

  • http://www.villagetree.com Rajiv Dholakia

    To Tim’s point about simplicity/complexity, my goal is to have at least one person on the team who really understands and can articulate the complexity behind the simplicity. To that end a standard part of my interview questions for the last decade is outlined below.

    After asking candidates to define/distinguish between HTTP & HTML for a technical audience, I ask why invent HTTP 1.0 when you had a perfectly good protocol like FTP around that permits clients to ask for file based resources on the server, anonymously if necessary?

    Why not use a server that talks FTP to serve content and a browser that requests files over FTP and renders HTML? Would there be any difference?

    I’m less interested in a specific answer than how candidates play with that curve ball, the questions/clarifications they ask me in turn and how they reason their way around something that isn’t in a text book.

    Usually sorts the mere “chauffeur” from the “mechanic” from the “mechanical engineer” (of course, the combination of those skills is the ideal profile).

  • Quinn

    Well, it’s hard to know for sure, but I suspect first I recall some patterns from my associative cortex, forming not only a plan of sequenced actions, but a set of assumptions about the result. then… skipping ahead, I set up a temporary feedback loop between my sensory experience and my motor cortex (contact key, sense contact, press, initiate next…) that process pushes aside some air molecules, and removes skin cells. then I close a number of circuits in an order that creates the linguistic feedback from the local computer I expected from the initial association set, linguistic feedback that has a number of interesting historical touchstones. There’s latin greek and anglo saxon/german history in there, plus 1980s & 90s technical neologisms (which tend to be heavy on the latinate) and some really substantial American white cultural assumptions in domain word choice. Not to mention, of course, it all went the phonic direction, didn’t it? Once I’ve closed the last circuit on the computer I’m waiting to close the last neural circuit, and get what is most likely the small dopamine comfort from the point where my expectations on page load are met, in the mean time, the whole request, having been codified three or four times in me (associative signal, motor nerve signal, sensory nerve signal, lather rinse repeat) it’s now gone through various local language translations down to binary and back up again to request language traversing first a wireless connection, meaning the vast majority of it is probably headed for space… wait, come back! I’m not getting this job, am I?