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

9,053 views
9,577 views

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!

×