Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Haussmann Fielding Fowler: network-based architects

1,241 views

Published on

Presented at Tech2Days June 2015. Parallels between Code Civil/HTTP, REST/Haussmann-style façade, Microservices/Haussmann-Paris renovation into the City of Lights.

Published in: Internet

Haussmann Fielding Fowler: network-based architects

  1. 1. Network Based Architecture Haussmann, Fielding, Fowler HTTP, REST, Microservices Eric Horesnyi Tech2Day 2015 @StreamdataIO #Tech2Day
  2. 2. Realtime UX from any API @StreamdataIO #Tech2Day  
  3. 3. Haussmann & Fielding 1853, Paris 2000, Irvine @StreamdataIO #Tech2Day  
  4. 4. CHALLENGES IN PARIS IN 1853 Haussmann Fielding and Fowler @StreamdataIO #Tech2Day  
  5. 5. Dropout @StreamdataIO Cholera, 1832 – 19,000 dropout #Tech2Day  
  6. 6. Congestion @StreamdataIO 1hab/sq mt density #Tech2Day  
  7. 7. Slow & Unsecure @StreamdataIO Security threats: No inspection possible obscure streets No patches to remove viruses and threats lack of air circulation Poor latency: slow access lines narrow streets No backbone Street  in  Ile  de  La  Cité,  Early  XiXth   #Tech2Day  
  8. 8. Unstable system Full reboot 1789, 1815, 1830, 1848… No backward compatibility No service desk Restricted vote DDOS in small access lines Barricades @StreamdataIO Liberty  Leading  the  People,  July  28th,  1830'  by  Delacroix   #Tech2Day  
  9. 9. INHERITED FEATURES Haussmann Fielding Fowler @StreamdataIO #Tech2Day  
  10. 10. Inherited Properties @StreamdataIO #Tech2Day  
  11. 11. DNS .gov, .com and .fr follow same scheme Seine is .root Streets start there Right/even Left/Uneven @StreamdataIO Paris street numbering, 1805 #Tech2Day  
  12. 12. Famous heritage @StreamdataIO Napoleon, France 1804 Tim Berners-Lee, CERN 1990 Comment: // limited to ability to establish basic rules. I do not admire Napoleon for anything else. #Tech2Day  
  13. 13. Separation of concerns @StreamdataIO Client Server #Tech2Day  
  14. 14. Stateless @StreamdataIO All clients are treated equal, no special treatment, no segregation A server cannot treat a client, even if he is root, as part of itself: Affaires Palais de Justice, Ile de la Cité #Tech2Day  
  15. 15. Stateless @StreamdataIO Client access server via a network call #Tech2Day  
  16. 16. SELECTION OF PROPERTIES FIELDING // HAUSSMANN REST // PARIS Haussmann Fielding Fowler @StreamdataIO #Tech2Day  
  17. 17. Mission @StreamdataIO Network performance throughput, small overhead, bandwidth User-perceived performance latency, and completion Network-efficiency avoid using the street too much. Homeworking (differential data) Napoleon  III  describing  his  mission  to  Haussmann,  1853     #Tech2Day  
  18. 18. KPIs Haussmann // Fielding Scalable make it possible for Paris to grow Simple no need for a city-user manual, Modifiable ability to evolve in the future through change Extensible add new neighborhood Customizable specialize a building without impacting others Configurable easily modify a building post-deployment Reusable building can host a bakery then a cremerie Visible to provide best security and auditability Portable style should work well in other regions Reliable susceptible to failure (no single event could stop water, gas or circulation for citizens) @StreamdataIO #Tech2Day  
  19. 19. P1: Low-Entry Barrier @StreamdataIO A  popular  neighborhood  in  Paris   #Tech2Day  
  20. 20. P2: Extensibility @StreamdataIO Streaming  =  Paris  Metro/Subway,  1900     #Tech2Day  
  21. 21. P3: Distributed Hypermedia @StreamdataIO #Tech2Day  
  22. 22. P4: Anarchic Scalability @StreamdataIO Paris  Metropole  today,  10m+  people   #Tech2Day  
  23. 23. P6: Independant Deployment @StreamdataIO Ile  de  La  Cité  restructured,  embedding  legacy/sacred  Notre  Dame   #Tech2Day  
  24. 24. WHY HAUSSMANN DECIDED TO MAKE PARIS RESTFUL Haussmann Fielding Fowler @StreamdataIO #Tech2Day  
  25. 25. REST=LCODC$SS&UI @StreamdataIO #Tech2Day   CSS=Client-Server-Stateless
  26. 26. Layer 1: sewage & gas @StreamdataIO #Tech2Day  
  27. 27. Layer 2: street & boulevards @StreamdataIO #Tech2Day  
  28. 28. Layer 3: roofs @StreamdataIO #Tech2Day  
  29. 29. Layered Networks Within a layer, a component connects to its neighboor Between two layers, gateways allow for interaction Each layer is autonomous @StreamdataIO #Tech2Day  
  30. 30. Cache @StreamdataIO Le  Bon  Marché,  LeS  Bank  Grand  Magasin/Mall,  server  w/cache     #Tech2Day  
  31. 31. Cache @StreamdataIO Opera,  a  server  with  cache     #Tech2Day  
  32. 32. Code On Demand @StreamdataIO Les  Halles,  seXng  the  tone  for  all  restaurants  in  the  City   #Tech2Day  
  33. 33. Uniform Interface = Genious @StreamdataIO Codified  UI,  by  floor  (header),  with  token/key,  proxy,  cache   #Tech2Day  
  34. 34. Uniformity = beauty inside @StreamdataIO Uniformity  in  APIs  brings  harmony  in  UX   #Tech2Day  
  35. 35. Uniformity = pattern beauty @StreamdataIO Uniformity  brings  fractal  harmony:  s`ll  there  from  a  distance   #Tech2Day  
  36. 36. HAUSSMANN URBANIST // FOWLER CONTINUOUS DELIVERY & MICROSERVICES Haussmann Fielding Fowler @StreamdataIO #Tech2Day  
  37. 37. Continuous Delivery @StreamdataIO Resilient  Water  Induc`on,  requiring  aqueducts  and  reservoirs   #Tech2Day  
  38. 38. Microservices Not too big/high Autonomous components Own API Standard protocol Scalable @StreamdataIO Rue  Montorgueil,  Paris  2e   #Tech2Day  
  39. 39. Continuous Delivery @StreamdataIO Aqueduct,  Arcueil   Reservoir,  Arcueil   #Tech2Day  
  40. 40. Zoning @StreamdataIO Quar`er  Panthéon,  a  zone  dedicated  to  Our  Big  Men   #Tech2Day  
  41. 41. Lead by example @StreamdataIO Opera,  an  Hypermedia  API  >  great  UX  >  trac`on  for  API  owners   #Tech2Day  
  42. 42. Cut Corners @StreamdataIO Cut  corners  vs  straight  corners:  a  design  choice     #Tech2Day   And  x2  exemplar:  conduct  the  most  difficult  transforma`ons  
  43. 43. Polyglot @StreamdataIO XVIII  architecture  encapsulated,  if  API  complies   #Tech2Day  
  44. 44. SUSTAINABLE SYSTEMS? PARIS 160 YEARS LATER HTTP REST 16 YEARS LATER Haussmann Fielding Fowler @StreamdataIO #Tech2Day  
  45. 45. UX performance: City of Lights @StreamdataIO #Tech2Day   20m  unique  visitors  a  year  
  46. 46. Reproductible @StreamdataIO Chicago  aSer  the  Burnham  Plan,  designed  in  1909   #Tech2Day  
  47. 47. @StreamdataIO Durable Courneuve,  1986,  20y  lifespan  Monolith   #Tech2Day  
  48. 48. Evolvable @StreamdataIO Tour  Eiffel  under  construc`on,  evolu`on  built  years  aSer   Haussmann  had  leS  office   #Tech2Day  
  49. 49. DAYTODAY LIFE IN A RESTFUL CITY Haussmann Fielding Fowler @StreamdataIO
  50. 50. Incomplete Protocol: Velib Leverage reusable assets Share same layer as existing traffic But incomplete protocol: collisions, missing RFC for cars Rate-limited API, realtime difficult @StreamdataIO #Tech2Day  
  51. 51. Error Handling in your code @StreamdataIO Gare  Montparnasse,  1895  –HTTP  or    REST  does  not  prevent  from   good  error  handling,  contrib  @rit    
  52. 52. HTTP//PARIS DICTIONARY, MAPS & RESSOURCES Haussmann Fielding Fowler @StreamdataIO #Tech2Day  
  53. 53. Lost in Translation Code Civil HTTP Paris Web Boulevards Internet Backbone Streets Access Lines Street Numbers URI Light in the streets Authentication Concierge Proxy Cellar Cache Carriage Request/Response Subway/Metro Streaming Homeworking Differential update over JSON Patch Pierre de Carrière JSON Compagnon du Devoir API Developer Haussmann Architect Beaux Arts Apple, Android and JS Developers Façade API Haussmann Façade RESTful API Utilities (gas, water) Cloud/PaaS Annonces Parisiennes Criteo Grands MagasinsAmazon Opera Deezer Theaters Netflix Prefecture NSA Bibliotheque Nat.Wiki Senat W3C Assemblee Nationale IETF Louvre Pinterest Bois de Boulogne MineCraft Bois de Vincennes Facebook Bon Marché Ebay Eiffel Tower Twitter Latin Quarter Udacity, Coursera MOOCs Left bank spirit Android Right bank spirit Apple iPhone @StreamdataIO #Tech2Day  
  54. 54. To go deeper Paris Architecture & Urbanism: Musée Carnavalet, Cité Chaillot Haussmann: Haussmann à Paris : Architecture et urbanisme Seconde moitié du XIXe siècle, Book, 2012 HTTP: Tim Berners-Lee & Team, Cern, 1990 REST: Network-Based Architecture Style, Thesis, Fielding 2000 Continuous Delivery : Farley & Humbl, 2010 Microservices : Microservices in a Nutshell, Fowler & Lewis, Thoughtworks, 2014 Web Corp Organization: How Google Works, Eric Schmidt, 2014 Design & UX : Jonathan Ive, Apple by The New Yorker, 2015 Microservices Building Microservices, Sam Newman, O’Reilly Book, 2015 Code Civil : on github by Steeve @StreamdataIO #Tech2Day  
  55. 55. To go deeper UX/API articulation at Netflix : Dan Jacobson blog API best practices: Kin Lane APIEvangelist, Jason Harmon, ProgrammableWeb, Mike Amundsen, Steve Klabnik, Mark O’Neill, Runscope inc. Neill & Darrel , Guillaume Laforge, and many more @StreamdataIO #Tech2Day  

×