Paul on 13 Mar 2012 05:08:42 -0700


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Many Thanks


Many thanks to all that came out last night.  Thank you so much for
the attention, the feedback, and the great discussion.  You all
provided me with some insight on how to really hone in the focus of my
talk.

If anyone has questions specific to the slides, the discussion, or the
Tutorspree technology pieces, follow up in this thread.

I'm digging up the paper on user perceived system errors based on
response time.


I also wanted to fill in some details about baking that might help
better fill-out the business case:

One of my greatest risks is managing lots of physical computing
resources with a limited number of engineers.  Our time is better
spent serving our internal engineering needs, or the needs of
customers, not the inherent complexities of scaling and maintaining
web machines.

We have a risk that the pipeline from design concept to production
push is just too long.  We'd really like to use the objective data
from A/B tests in a tight loop, to push UI and Interaction changes a
lot faster.

Another risk is that our mobile traffic is growing faster than any
other segment.  The old architecture choice was mobile-dispatching,
but it means that we have to double up on some of the control logic
and also the designs.  Given the second risk, this becomes a small
hangup.

Our best source of traffic comes from organic search (a lot of long
tail stuff that we scoop up).  So we optimize a lot for that sort of
thing.
=====

The idea is simple:
A designer builds us static HTML.  They use a chopped up version of
Bootstrap2 and HTML5boilerplate that has all the responsive/fluid
stuff turned on (we've removed the mobile rendering concern to some
degree.  We also got semantic markup via microdata for free - great
for SEO).  We then put the page through a baking process where we're
doing div transforms with real data from our DB.
The pages that come out are RICH for SEO.  Our static content that we
place on the CDN is the bare-minimum for humans, and the best case
scenario for machines.

We additionally push snippets of JavaScript (some actual JS, but
mostly compiled ClojureScript) to the CDN.

This JS fulfills all the dynamic needs of Tutorspree, by doing simple
div transformations and swapping out the HTML when needed.

90% of all traffic and interaction is now being handled between the
CDN and the client.  So the scaling and system maintenance/
administration risks are greatly reduced.

What we gained is now engineers don't have to worry about taking a
design and turning it into a template, UI/UX changes can happen in a
tight loop, engineers get the benefit of interactive development at
all points of the application, we don't need to worry as much about
scaling our DB for connections, just for data and processing.

Hope this helps clear some confusion for some people,
Paul