Network-based Architectures Fowler, Fielding, and Haussmann The - - PowerPoint PPT Presentation
Network-based Architectures Fowler, Fielding, and Haussmann The - - PowerPoint PPT Presentation
Eric Horesnyi | streamdata.io Network-based Architectures Fowler, Fielding, and Haussmann The Digital gap @StreamdataIO #JAXLondon Haussmann & Fielding 1853, Paris 2000, Irvine @StreamdataIO #JAXLondon Haussmann Fielding and
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
- bscure 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
- verhead, 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