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

41
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 Basel Apache Software Foundation Member and Director June 2014 slides revision 2014-06-18

Upload: bertrand-delacretaz

Post on 12-May-2015

2.008 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: It's just a Web server - a plea for simplicity

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

Page 2: It's just a Web server - a plea for simplicity

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

Page 3: It's just a Web server - a plea for simplicity

picture: dhester on morguefile.com

could we invent this today?

Page 4: It's just a Web server - a plea for simplicity

beautiful simplicityas simple as possible, but not simpler

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

Page 5: It's just a Web server - a plea for simplicity

astory

of simplicity

(two stories, actually)

Page 6: It's just a Web server - a plea for simplicity

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)

Page 7: It's just a Web server - a plea for simplicity

record digital audiocontinuously

cannot lose morethan 15 seconds

(remember - 1999)

Page 8: It's just a Web server - a plea for simplicity

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

Page 9: It's just a Web server - a plea for simplicity

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

Page 10: It's just a Web server - a plea for simplicity

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

and

yk o

n m

orgu

efile

.com

5127 prototypes

Page 11: It's just a Web server - a plea for simplicity

overnight? no - 8 yearsWIRED April 2011

Page 12: It's just a Web server - a plea for simplicity

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

Page 13: It's just a Web server - a plea for simplicity

simpler?

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

Page 14: It's just a Web server - a plea for simplicity

yes!

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

RTPpacket

recorder

Page 15: It's just a Web server - a plea for simplicity

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 }

Page 16: It's just a Web server - a plea for simplicity

if it’s not simple enough yet

do not give up

Page 17: It's just a Web server - a plea for simplicity

pict

ure:

Rog

anJo

sh o

n m

orgu

efile

.com

pict

ure:

MrM

agic

on

mor

guefi

le.c

om

RTPpacket

recorder

storage?

Page 18: It's just a Web server - a plea for simplicity

RTPpacket

recorder

storage?

continuous storage seek by timestamp

variable speed replay 100% robust

Page 19: It's just a Web server - a plea for simplicity

enterprise DB!

pict

ure:

jusb

en o

n m

orgu

efile

.com

Page 20: It's just a Web server - a plea for simplicity

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

Page 21: It's just a Web server - a plea for simplicity

RTPpacket

recorder

storage!

2014/06/25/1402.rtp

timestamp-addressed file stores 15 seconds of RTP packets

Page 22: It's just a Web server - a plea for simplicity

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 }

Page 23: It's just a Web server - a plea for simplicity

beautiful simplicityas simple as possible, but not simpler

Page 24: It's just a Web server - a plea for simplicity

beautiful simplicityunix pipelines

cat sortgrep awk stdout

stderr

simple modules simple assembly model

transparent, robust, powerful

Page 25: It's just a Web server - a plea for simplicity

ok, but

high-end CMS?

Page 26: It's just a Web server - a plea for simplicity

HTTP request

CC

CCC

CCC

C

processor

dispatcher

it’s just aWebserver…

Page 27: It's just a Web server - a plea for simplicity

HTTP 0.9 (start simple)

GET /hello.txt

<html>hello!</html>

client server

Page 28: It's just a Web server - a plea for simplicity

HTTP requests

CC

CCC

CCC

C

dispatcher

even if itgets busy…

processorprocessor

processor

processor

processorprocessor

processor

processor

processor

Page 29: It's just a Web server - a plea for simplicity

CC

CCC

CCC

C

dispatcher

HTTP isenough…

processor

processor

processorprocessor

processor

processor

GETPOSTPUT

DELETE

processorprocessor

processor

Page 30: It's just a Web server - a plea for simplicity

so,

how?

Page 31: It's just a Web server - a plea for simplicity

put the bar

highdo not accept extra complexity

Page 32: It's just a Web server - a plea for simplicity

investin simplicity

can be expensive…and worth it

Page 33: It's just a Web server - a plea for simplicity

chase the right

metaphor“a network packets recorder and player”

Page 34: It's just a Web server - a plea for simplicity

simplicity is a

processyou usually know when you’re there

Page 35: It's just a Web server - a plea for simplicity

beautiful simplicityas simple as possible, but not simpler

Page 36: It's just a Web server - a plea for simplicity

what are the

enablers?

Page 37: It's just a Web server - a plea for simplicity

modularityenablers

Page 38: It's just a Web server - a plea for simplicity

opendevelopmentenablers

Page 39: It's just a Web server - a plea for simplicity

Apache Slingenablers

Page 40: It's just a Web server - a plea for simplicity

JCRenablers

Page 41: It's just a Web server - a plea for simplicity

not simple enough?

don’t give up!