It’sjustaWebserverapleaforsimplicity
BertrandDelacrétaz

@bdelacretaz, grep.codeconsult.ch
PrincipalScientist,CQ/AEMR&Dgro...
lookingforanswers?
wrongplace!
I’mmoreaboutquestionstoday…
picture: dhester on morguefile.com
couldwe
invent
this
today?
beautifulsimplicity
assimpleaspossible,butnotsimpler
(tobeprecise,it’saVictorinoxskipperknife)
a

storyof
simplicity
(twostories,actually)
s = UDP socket
While(s is open) {
Wait for packet
Packet matches our filter?
If not -> continue
If yes:
Compute storage pa...
recorddigitalaudio

continuously
cannotlosemore

than15seconds
(remember-1999)
options?
BigCo#1 BigCo#2
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
picture:RoganJoshonmorguefile.com
N-dimensionalmaze
picture:pschubertonmorguefile.com
picture:RoganJoshonmorguefile.com
picture:andykonmorguefile.com
5127prototypes
overnight?no-8years
WIREDApril2011
picture:RoganJoshonmorguefile.com
N-dimensionalmaze
picture:pschubertonmorguefile.com
simpler?
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
yes!
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
RTP

packet

recorder
26linesofcode

3months
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
RTP

packet

recorder
s = UDP socke...
ifit’snotsimpleenoughyet
donotgiveup
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
RTP

packet

recorder
storage?
RTP

packet

recorder
storage?
continuousstorage
seekbytimestamp
variablespeedreplay
100%robust
enterpriseDB!
picture:jusbenonmorguefile.com
picture:RoganJoshonmorguefile.com
picture:pschubertonmorguefile.com
N-dimensionalmaze
RTP

packet

recorder
storage!
2014/06/25/1402.rtp
timestamp-addressedfilestores15secondsofRTPpackets
picture:RoganJoshonmorguefile.com
picture:MrMagiconmorguefile.com
RTP

packet

recorder
storage
2014/06/25/1402.rtp
continuo...
beautifulsimplicity
assimpleaspossible,butnotsimpler
beautifulsimplicity
unixpipelines
cat sortgrep awk stdout
stderr
simplemodules
simpleassemblymodel
transparent,robust,powe...
ok,but
high-endCMS?
HTTPrequest
C
C
C
C
C
CC
C
C
processor
dispatcher
it’s

justa

Web

server…
HTTP0.9

(startsimple)
GET/hello.txt
<html>hello!</html>
client server
HTTPrequests
C
C
C
C
C
CC
C
C
dispatcher
evenifit

getsbusy…
processor
processor
processor
processor
processor
processor
p...
C
C
C
C
C
CC
C
C
dispatcher
HTTPis

enough…
processor
processor
processor
processor
processor
processor
GET
POST
PUT
DELET...
so,
how?
putthebar
high
donotacceptextracomplexity
investinsimplicity
canbeexpensive…andworthit
chasetheright
metaphor
“anetworkpacketsrecorderandplayer”
simplicityisa
process
youusuallyknowwhenyou’rethere
beautifulsimplicity
assimpleaspossible,butnotsimpler
whatarethe
enablers?
modularityenablers
open

developmentenablers
ApacheSlingenablers
JCRenablers
notsimpleenough?
don’tgiveup!
Upcoming SlideShare
Loading in...5
×

It's just a Web server - a plea for simplicity

2,496

Published on

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

Published in: Technology, Business

It's just a Web server - a plea for simplicity

  1. 1. It’sjustaWebserverapleaforsimplicity BertrandDelacrétaz
 @bdelacretaz, grep.codeconsult.ch PrincipalScientist,CQ/AEMR&Dgroup,AdobeBasel
 ApacheSoftwareFoundationMemberandDirector June2014
 slidesrevision2014-06-18
  2. 2. lookingforanswers? wrongplace! I’mmoreaboutquestionstoday…
  3. 3. picture: dhester on morguefile.com couldwe invent this today?
  4. 4. beautifulsimplicity
assimpleaspossible,butnotsimpler (tobeprecise,it’saVictorinoxskipperknife)
  5. 5. a
 storyof simplicity
(twostories,actually)
  6. 6. 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 } 26linesofcode 3monthsofwork (happilychuggingalongsince1999)
  7. 7. recorddigitalaudio
 continuously cannotlosemore
 than15seconds (remember-1999)
  8. 8. options? BigCo#1 BigCo#2 picture:RoganJoshonmorguefile.com picture:MrMagiconmorguefile.com
  9. 9. picture:RoganJoshonmorguefile.com N-dimensionalmaze picture:pschubertonmorguefile.com
  10. 10. picture:RoganJoshonmorguefile.com picture:andykonmorguefile.com 5127prototypes
  11. 11. overnight?no-8years WIREDApril2011
  12. 12. picture:RoganJoshonmorguefile.com N-dimensionalmaze picture:pschubertonmorguefile.com
  13. 13. simpler? picture:RoganJoshonmorguefile.com picture:MrMagiconmorguefile.com
  14. 14. yes! picture:RoganJoshonmorguefile.com picture:MrMagiconmorguefile.com RTP
 packet
 recorder
  15. 15. 26linesofcode
 3months picture:RoganJoshonmorguefile.com picture:MrMagiconmorguefile.com RTP
 packet
 recorder 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 }
  16. 16. ifit’snotsimpleenoughyet donotgiveup
  17. 17. picture:RoganJoshonmorguefile.com picture:MrMagiconmorguefile.com RTP
 packet
 recorder storage?
  18. 18. RTP
 packet
 recorder storage? continuousstorage seekbytimestamp variablespeedreplay 100%robust
  19. 19. enterpriseDB! picture:jusbenonmorguefile.com
  20. 20. picture:RoganJoshonmorguefile.com picture:pschubertonmorguefile.com N-dimensionalmaze
  21. 21. RTP
 packet
 recorder storage! 2014/06/25/1402.rtp timestamp-addressedfilestores15secondsofRTPpackets
  22. 22. picture:RoganJoshonmorguefile.com picture:MrMagiconmorguefile.com RTP
 packet
 recorder storage 2014/06/25/1402.rtp continuousrecording continuousstorage seekbytimestamp variablespeedreplay 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 }
  23. 23. beautifulsimplicity
assimpleaspossible,butnotsimpler
  24. 24. beautifulsimplicity
unixpipelines cat sortgrep awk stdout stderr simplemodules simpleassemblymodel transparent,robust,powerful
  25. 25. ok,but high-endCMS?
  26. 26. HTTPrequest C C C C C CC C C processor dispatcher it’s
 justa
 Web
 server…
  27. 27. HTTP0.9
 (startsimple) GET/hello.txt <html>hello!</html> client server
  28. 28. HTTPrequests C C C C C CC C C dispatcher evenifit
 getsbusy… processor processor processor processor processor processor processor processor processor
  29. 29. C C C C C CC C C dispatcher HTTPis
 enough… processor processor processor processor processor processor GET POST PUT DELETE processor processor processor
  30. 30. so, how?
  31. 31. putthebar high donotacceptextracomplexity
  32. 32. investinsimplicity canbeexpensive…andworthit
  33. 33. chasetheright metaphor “anetworkpacketsrecorderandplayer”
  34. 34. simplicityisa process youusuallyknowwhenyou’rethere
  35. 35. beautifulsimplicity
assimpleaspossible,butnotsimpler
  36. 36. whatarethe enablers?
  37. 37. modularityenablers
  38. 38. open
 developmentenablers
  39. 39. ApacheSlingenablers
  40. 40. JCRenablers
  41. 41. notsimpleenough? don’tgiveup!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×