Thin Server Architecture

Post on 29-Jan-2018

9.052 views 0 download

Transcript of Thin Server Architecture

Extreme Scale: Thin Server ArchitectureMitch Pirtle

codeworks new york city 2009

Wha?

As website interactivity demands put a bigger strain on your beautiful code, faster internet connections and more website visitors don't make it any easier. There is a way to dramatically drop the overhead of rendering a page, by asking the browser to do all the work. Learn how to scale your applications to absurd extremes with this simple, ingenious concept.

Before we begin

Coffee?

Breakfast?

How it all started

Data Center

Web server

Data server

Internet

Hey, this thing is taking off

Data Center

Web server

Data server

Internet

Ok, we can handle that

Data Center

Web server

Data server

Internet

See the pattern?

Problems with this approach

Ties computation with display

Significantly increases load

Significantly reduces opportunity to cache

IT DOESN’T SCALE

But wait, there’s more

Most developers suck at design

Most designers suck at code

We just mixed a huge load of markup and code together in a big, amorphous glop

There’s got to be a better way.

Thin Server Architecture

Wha?

Keeps display and logic separate

Pulls unique information separately

Cache is simpler to implement

Cache reused objects separately from dynamic

What it looks like

BrowserPHPPHP

TSA to PHP developers

MV

C

M

CV

Problems solved

Seperates display from computational work

Simplifies cache implementation

Lowers network latency, bandwidth usage

Users perceive fast, snappy response

Opens the door to rich internet applications (RIA)

Great example: Dojo

Dojo Toolkithttp://www.dojotoolkit.org/

TSA is platform agnostic

CODE: You can use Perl, Ruby, Python, PHP, etc.

CLIENT: You can use Dojo, jQuery, MooTools, etc.

DATA: The simpler the better...(next slide, Mitch)

Why develop in an object language, just to stuff mismatched chunks of your objects in a non-object data store?

MongoDBDocument store with speed, scale of key/value and creature comforts of relational systems

What MongoDB can do

Simplifies development

Stores in binary JSON objects

Return data directly to browser in JSON

Store data, binary objects, whatevah!

Time for my favorite gameStump the Nerd™

Great resources

Rich Internet Applications

http://en.wikipedia.org/wiki/Rich_Internet_application

Thanks!http://www.spacemonkeylabs.comhttp://www.mitchitized.com

Photo credits

Bulldog Frances (stock photo by jaimo)

Cat (stock photo by klsa12)

Sleepy zoo lioness (stock photo by Meeshoo)