it's just a web server - a plea for simplicity

Post on 12-May-2015

2.009 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides of my keynote at the Connect Web Experience conference, Basel, June 2014 - http://www.connectcon.ch/

TRANSCRIPT

It’s just a Web server a plea for simplicity

Bertrand Delacrétaz@bdelacretaz, grep.codeconsult.ch

Principal Scientist, CQ/AEM R&D group, Adobe BaselApache Software Foundation Member and Director

June 2014slides revision 2014-06-18

looking for answers? wrong place! I’m more about questions today…

picture: dhester on morguefile.com

could we invent this today?

beautiful simplicityas simple as possible, but not simpler

(to be precise, it’s a Victorinox skipper knife)

astory

of simplicity

(two stories, actually)

s = UDP socket While(s is open) { Wait for packet Packet matches our filter? If not -> continue If yes: Compute storage path from T Append packet to storage file }

26 lines of code 3 months of work (happily chugging along since 1999)

record digital audiocontinuously

cannot lose morethan 15 seconds

(remember - 1999)

options?BigCo#1 BigCo#2

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

N-dimensional maze

pict

ure:

psc

hube

rt on

mor

guefi

le.c

om

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

and

yk o

n m

orgu

efile

.com

5127 prototypes

overnight? no - 8 yearsWIRED April 2011

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

N-dimensional maze

pict

ure:

psc

hube

rt on

mor

guefi

le.c

om

simpler?

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

yes!

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

RTPpacket

recorder

26 lines of code3 months

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

RTPpacket

recorders = UDP socket While(s is open) { Wait for packet Packet matches our filter? If not -> continue If yes: Compute storage path from T Append packet to storage file }

if it’s not simple enough yet

do not give up

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

RTPpacket

recorder

storage?

RTPpacket

recorder

storage?

continuous storage seek by timestamp

variable speed replay 100% robust

enterprise DB!

pict

ure:

jusb

en o

n m

orgu

efile

.com

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

psc

hube

rt on

mor

guefi

le.c

om

N-dimensional maze

RTPpacket

recorder

storage!

2014/06/25/1402.rtp

timestamp-addressed file stores 15 seconds of RTP packets

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

RTPpacket

recorder

storage2014/06/25/1402.rtp

continuous recording continuous storage seek by timestamp

variable speed replay

s = UDP socket While(s is open) { Wait for packet Packet matches our filter? If not -> continue If yes: Compute storage path from T Append packet to storage file }

beautiful simplicityas simple as possible, but not simpler

beautiful simplicityunix pipelines

cat sortgrep awk stdout

stderr

simple modules simple assembly model

transparent, robust, powerful

ok, but

high-end CMS?

HTTP request

CC

CCC

CCC

C

processor

dispatcher

it’s just aWebserver…

HTTP 0.9 (start simple)

GET /hello.txt

<html>hello!</html>

client server

HTTP requests

CC

CCC

CCC

C

dispatcher

even if itgets busy…

processorprocessor

processor

processor

processorprocessor

processor

processor

processor

CC

CCC

CCC

C

dispatcher

HTTP isenough…

processor

processor

processorprocessor

processor

processor

GETPOSTPUT

DELETE

processorprocessor

processor

so,

how?

put the bar

highdo not accept extra complexity

investin simplicity

can be expensive…and worth it

chase the right

metaphor“a network packets recorder and player”

simplicity is a

processyou usually know when you’re there

beautiful simplicityas simple as possible, but not simpler

what are the

enablers?

modularityenablers

opendevelopmentenablers

Apache Slingenablers

JCRenablers

not simple enough?

don’t give up!

top related