Network Based Architecture Haussmann, Fielding, Fowler HTTP, REST, Microservices Eric Horesnyi Tech2Day 2015 @StreamdataIO #Tech2Day
Network Based Architecture Haussmann, Fielding, Fowler
HTTP, REST, Microservices
Eric Horesnyi
Tech2Day 2015
@StreamdataIO #Tech2Day
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
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
DNS
.gov, .com and .fr follow same scheme
Seine is .root
Streets start there
Right/even
Left/Uneven
@StreamdataIO
Paris street numbering, 1805
#Tech2Day
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
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
SELECTION OF PROPERTIES FIELDING // HAUSSMANN REST // PARIS
Haussmann Fielding Fowler
@StreamdataIO #Tech2Day
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
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
P6: Independant Deployment
@StreamdataIO
Ile de La Cité restructured, embedding legacy/sacred Notre Dame
#Tech2Day
Layered Networks
Within a layer, a component connects to
its neighboor
Between two layers, gateways allow for
interaction
Each layer is autonomous
@StreamdataIO #Tech2Day
Uniform Interface = Genious
@StreamdataIO
Codified UI, by floor (header), with token/key, proxy, cache
#Tech2Day
Uniformity = pattern beauty
@StreamdataIO
Uniformity brings fractal harmony: s`ll there from a distance
#Tech2Day
HAUSSMANN URBANIST // FOWLER CONTINUOUS DELIVERY & MICROSERVICES
Haussmann Fielding Fowler
@StreamdataIO #Tech2Day
Continuous Delivery
@StreamdataIO
Resilient Water Induc`on, requiring aqueducts and reservoirs
#Tech2Day
Microservices
Not too big/high
Autonomous components
Own API
Standard protocol
Scalable @StreamdataIO
Rue Montorgueil, Paris 2e
#Tech2Day
Lead by example
@StreamdataIO
Opera, an Hypermedia API > great UX > trac`on for API owners
#Tech2Day
Cut Corners
@StreamdataIO
Cut corners vs straight corners: a design choice
#Tech2Day
And x2 exemplar: conduct the most difficult transforma`ons
SUSTAINABLE SYSTEMS? PARIS 160 YEARS LATER HTTP REST 16 YEARS LATER
Haussmann Fielding Fowler
@StreamdataIO #Tech2Day
Evolvable
@StreamdataIO
Tour Eiffel under construc`on, evolu`on built years aSer Haussmann had leS office
#Tech2Day
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
Error Handling in your code
@StreamdataIO
Gare Montparnasse, 1895 –HTTP or REST does not prevent from good error handling, contrib @rit
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 #Tech2Day
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