Post on 14-Apr-2017
Eric Horesnyi | streamdata.io
Network-based Architectures Fowler, Fielding, and Haussmann
The « Digital » gap
@StreamdataIO #JAXLondon
Haussmann & Fielding 1853, Paris 2000, Irvine
@StreamdataIO #JAXLondon
CHALLENGES IN PARIS,1853
Haussmann Fielding and Fowler
@StreamdataIO #JAXLondon
High Dropout Cholera, 1832 – 19,000 dropout
@StreamdataIO #JAXLondon
Congestion 1hab/sq mt density
@StreamdataIO #JAXLondon
Slow & Unsecure 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
Street in Ile de La Cité Early XIXth
Unstable system Full reboot 1789, 1815,
1830, 1848… No backward compatibility
No service desk Restricted vote
DDOS in small access lines
Barricades
Liberty Leading the People, July 28th, 1830' by Delacroix
INHERITED FEATURES HTTP//PARIS 1789-1853
Haussmann Fielding Fowler
@StreamdataIO #JAXLondon
Inherited Properties
@StreamdataIO #JAXLondon
DNS .gov, .com and .fr
follow same scheme
Seine is .root Streets start there
Right/even
Left/Uneven
Paris street numbering, 1805
Famous heritage
Napoleon, France 1804 Tim Berners-Lee, CERN ‘90
Comment: // limited to ability to establish basic rules. I do not admire Napoleon for anything else.
Separation of concerns Client Server
@StreamdataIO #JAXLondon
Stateless
All clients are treated equal, no special
treatment, no
segregation
Palais de Justice, Ile de la Cité
Stateless
Client access server via a network call
SELECTION OF PROPERTIES FIELDING // HAUSSMANN REST // PARIS
Haussmann Fielding Fowler
@StreamdataIO #JAXLondon
Mission Network performance
throughput, small overhead, bandwidth
User-perceived performance latency,
and completion Network-efficiency
avoid using the street too much.
Homeworking Napoleon III describing his mission to Haussmann, 1853
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 #JAXLondon
P1: Low-Entry Barrier A popular neighborhood in Paris
@StreamdataIO #JAXLondon
P2: Extensibility Streaming = Paris Metro/Subway, 1900
@StreamdataIO #JAXLondon
P3: Distributed Hypermedia
@StreamdataIO #JAXLondon
P4: Anarchic Scalability Paris Metropole today, 10m+ people
@StreamdataIO #JAXLondon
P6: Independant Deployment Ile de La Cité restructured, embedding legacy/sacred Notre Dame
@StreamdataIO #JAXLondon
WHY HAUSSMANN DECIDED TO MAKE PARIS RESTFUL
Haussmann Fielding Fowler
@StreamdataIO #JAXLondon
REST=LCODC$SS&UI
CSS=Client-Server-Stateless
@StreamdataIO #JAXLondon
Layer 1: sewage & gas
@StreamdataIO #JAXLondon
Layer 2: street & boulevards
@StreamdataIO #JAXLondon
Layer 3: roofs
@StreamdataIO #JAXLondon
Layered Networks Within a layer, a
component connects to its neighboor
Between two layers, gateways allow for
interaction
Each layer is autonomous
@StreamdataIO #JAXLondon
Cache 700 concurrent clients
80,000 in cache 2m records
@StreamdataIO St Geneviève Library, 1850
Cache Opera, a server with cache
#Tech2Day
Code On Demand Les Halles, setting the tone for all restaurants in the City
@StreamdataIO #JAXLondon
Uniform Interface = Genious Codified UI, by floor (header), with token/key, proxy, cache
@StreamdataIO #JAXLondon
Uniformity = beauty inside Uniformity in APIs brings harmony in UX
@StreamdataIO #JAXLondon
Uniformity = pattern beauty Uniformity brings fractal harmony: still there from a distance
@StreamdataIO #JAXLondon
HAUSSMANN // FOWLER AS URBANISTS
Continuous Delivery & Microservices
#Tech2Day @StreamdataIO #JAXLondon
Continuous Delivery Resilient Water Induction, requiring aqueducts and reservoirs
@StreamdataIO #JAXLondon
Continuous Delivery Aqueduct, Arcueil Reservoir, Arcueil
@StreamdataIO #JAXLondon
Microservices Not too big
Autonomous components
Own API
Standard protocol Scalable
@StreamdataIO #JAXLondon
Zoning
Quartier Panthéon, a zone dedicated to “The Big Men”
Lead by example
Opera, an Hypermedia API > great UX >>> traction for API owners
Cut Corners
Haussmann corners: Most difficult piece & beautiful
Polyglot XVIII architecture encapsulated, if API
complies
@StreamdataIO #JAXLondon
PARIS 160 YEARS LATER HTTP REST 16 YEARS LATER
Sustainable systems?
@StreamdataIO #JAXLondon
UX performance
City of Lights: 20m unique visitors a year
Reproductible
Chicago after the Burnham Plan, designed in 1909
Durable
Courneuve, 1986, 20y lifespan Monolith
Evolvable
Tour Eiffel under construction, evolution built years after Haussmann had left office
DAYTODAY LIFE IN A RESTFUL CITY
Haussmann Fielding Fowler
@StreamdataIO #JAXLondon
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 #JAXLondon
Error Handling in your code
Gare Montparnasse, 1895 –HTTP or REST does not prevent from good error handling, contrib @rit
HTTP//PARIS DICTIONARY, MAPS & RESSOURCES
Haussmann Fielding Fowler
@StreamdataIO #JAXLondon
Glossary Code Civil HTTP Paris Web Boulevards Internet Backbone Streets Access Lines Street Numbers URI Light in the streets Authentication Concierge Proxy Library Cache Carriage Request/Response Subway/Metro Streaming Homeworking Diff update// JSON Patch Pierre de Carrière JSON Compagnon du Devoir API Developer Haussmann Architect Beaux Arts JS Developers Façade API Haussmann Façade RESTful API
Utilities Cloud/PaaS Annonces Parisiennes Criteo Grands Magasins Amazon 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 Left bank spirit Android Right bank spirit Apple iPhone
@StreamdataIO #JAXLondon
Resources 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