Upload
eric-horesnyi
View
356
Download
1
Embed Size (px)
Citation preview
Network Based Architects Haussmann, Fielding, Fowler
HTTP/2, REST API, Microservices
@erichoresnyi
@StreamdataIO #softshake
Turn APIs into Real-time Experiences
Streamdata.io homepage pix Paris subway
@StreamdataIO #so$shake
Slow & Unsecure
@StreamdataIO
Security threats: No inspection possible
obscure streets
No patches to remove viruses
lack of air circulation
Poor latency narrow streets
No backbone Street in Paris, E.Atget
#so$shake
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
#so$shake
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
#so$shake
DNS
.gov, .com and .fr follow same scheme
Seine is .root
Streets start there
Right/even
Left/Uneven
@StreamdataIO
Paris street numbering, 1805
#so$shake
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.
#so$shake
SELECTION OF PROPERTIES FIELDING // HAUSSMANN REST // PARIS
Haussmann Fielding Fowler
@StreamdataIO #so$shake
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 #so$shake
P2: Extensibility
@StreamdataIO
Streaming = Paris Metro/Subway, 1900
#so$shake
Streamdata.io homepix Paris subway
P6: Independant Deployment
@StreamdataIO
Ile de La Cité restructured, embedding legacy/sacred Notre Dame
#so$shake
Layered Networks
Within a layer, a component connects to
its neighboor
Between two layers, gateways allow for
interaction
Each layer is autonomous
@StreamdataIO #so$shake
Cache
@StreamdataIO
Ste Geneviève Library, 1850
#so$shake
700 concurrent clients 80,000 records in cache 2m records in stock
Uniform Interface = Genious
@StreamdataIO
Codified UI, by floor (header), with token/key, proxy, cache
#so$shake
Uniformity = pattern beauty
@StreamdataIO
Uniformity brings fractal harmony: s`ll there from a distance
#so$shake
HAUSSMANN URBANIST // FOWLER CONTINUOUS DELIVERY & MICROSERVICES
Haussmann Fielding Fowler
@StreamdataIO #so$shake
Continuous Delivery
@StreamdataIO
Resilient Water Induc`on, requiring aqueducts and reservoirs
#so$shake
Microservices
Not too big/high
Autonomous components
Own API
Standard protocol
@StreamdataIO
Rue Montorgueil, Paris 2e
#so$shake
Lead by example
@StreamdataIO
Opera, an Hypermedia API > great UX > trac`on for API owners
#so$shake
Cut Corners
@StreamdataIO
Cut corners vs straight corners: a design choice
And x2 exemplar: conduct the most difficult transforma`ons
#so$shake
SUSTAINABLE SYSTEMS? PARIS 160 YEARS LATER HTTP REST 16 YEARS LATER
Haussmann Fielding Fowler
@StreamdataIO #so$shake
Evolvable
@StreamdataIO
Tour Eiffel under construc`on, evolu`on built years a$er Haussmann had le$ office
#so$shake
Boulevards=HTTP/2 by @gcouprie
Boulevards=protocol to manage streams
Very slow (walk), Slow (horses), and Fast lanes
Citizen UX improved with latency
@StreamdataIO #so$shake
@clevercloud
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 #so$shake
By @erichoresnyi, a$er an accident crossing Champs Elysées
Error Handling in your code
@StreamdataIO
Gare Montparnasse, 1895 –HTTP or REST does not prevent from good error handling, contrib @rit
#so$shake
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 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 MOOCs
Left bank spirit Android
Right bank spirit Apple iPhone
@StreamdataIO #UX #API
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 #UX #API