Top Banner
Network Based Architects Haussmann, Fielding, Fowler HTTP/2, REST API, Microservices @erichoresnyi @StreamdataIO #softshake
57

Network-Based Architectures : Haussmann Fielding Fowler

Apr 13, 2017

Download

Technology

Eric Horesnyi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Network-Based Architectures : Haussmann Fielding Fowler

Network Based Architects Haussmann, Fielding, Fowler

HTTP/2, REST API, Microservices

@erichoresnyi

@StreamdataIO #softshake

Page 2: Network-Based Architectures : Haussmann Fielding Fowler

@StreamdataIO #so$shake  

Page 3: Network-Based Architectures : Haussmann Fielding Fowler

Turn APIs into Real-time Experiences

Streamdata.io homepage pix Paris subway

@StreamdataIO #so$shake  

Page 4: Network-Based Architectures : Haussmann Fielding Fowler

Haussmann & Fielding

1853, Paris 2000, Irvine

@StreamdataIO #so$shake  

Page 5: Network-Based Architectures : Haussmann Fielding Fowler

CHALLENGES IN PARIS IN 1853 Haussmann Fielding and Fowler

@StreamdataIO #so$shake  

Page 6: Network-Based Architectures : Haussmann Fielding Fowler

Dropout

@StreamdataIO

Cholera, 1832 – 19,000 dropout

#so$shake  

Page 7: Network-Based Architectures : Haussmann Fielding Fowler

Congestion

@StreamdataIO

1hab/sq mt density

#so$shake  

Page 8: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 9: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 10: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 11: Network-Based Architectures : Haussmann Fielding Fowler

INHERITED FEATURES Haussmann Fielding Fowler

@StreamdataIO #so$shake  

Page 12: Network-Based Architectures : Haussmann Fielding Fowler

Inherited Properties

@StreamdataIO #so$shake  

Page 13: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 14: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 15: Network-Based Architectures : Haussmann Fielding Fowler

Separation of concerns

@StreamdataIO

Client Server

#so$shake  

Page 16: Network-Based Architectures : Haussmann Fielding Fowler

Stateless

@StreamdataIO

Client access server via a network call

#so$shake  

Page 17: Network-Based Architectures : Haussmann Fielding Fowler

SELECTION OF PROPERTIES FIELDING // HAUSSMANN REST // PARIS

Haussmann Fielding Fowler

@StreamdataIO #so$shake  

Page 18: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 19: Network-Based Architectures : Haussmann Fielding Fowler

P1: Low-Entry Barrier

@StreamdataIO

A  popular  neighborhood  in  Paris  

#so$shake  

Page 20: Network-Based Architectures : Haussmann Fielding Fowler

P2: Extensibility

@StreamdataIO

Streaming  =  Paris  Metro/Subway,  1900    

#so$shake  

Streamdata.io homepix Paris subway

Page 21: Network-Based Architectures : Haussmann Fielding Fowler

P3: Distributed Hypermedia

@StreamdataIO #so$shake  

Page 22: Network-Based Architectures : Haussmann Fielding Fowler

P4: Anarchic Scalability

@StreamdataIO

Paris  Metropole  today,  10m+  people  

#so$shake  

Page 23: Network-Based Architectures : Haussmann Fielding Fowler

P6: Independant Deployment

@StreamdataIO

Ile  de  La  Cité  restructured,  embedding  legacy/sacred  Notre  Dame  

#so$shake  

Page 24: Network-Based Architectures : Haussmann Fielding Fowler

WHY HAUSSMANN DECIDED TO MAKE PARIS RESTFUL

Haussmann Fielding Fowler

@StreamdataIO #so$shake  

Page 25: Network-Based Architectures : Haussmann Fielding Fowler

REST=LCODC$SS&UI

@StreamdataIO

CSS=Client-Server-Stateless

#so$shake  

Page 26: Network-Based Architectures : Haussmann Fielding Fowler

Layer 1: sewage & gas

@StreamdataIO #so$shake  

Page 27: Network-Based Architectures : Haussmann Fielding Fowler

Layer 2: streets

@StreamdataIO #so$shake  

Page 28: Network-Based Architectures : Haussmann Fielding Fowler

Layer 3: roofs

@StreamdataIO #so$shake  

Page 29: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 30: Network-Based Architectures : Haussmann Fielding Fowler

Cache

@StreamdataIO

Ste  Geneviève  Library,  1850  

#so$shake  

700  concurrent  clients  80,000  records  in  cache  2m  records  in  stock    

Page 31: Network-Based Architectures : Haussmann Fielding Fowler

Code On Demand

@StreamdataIO

Les  Halles,  seWng  the  tone  for  all  restaurants  in  the  City  

#so$shake  

Page 32: Network-Based Architectures : Haussmann Fielding Fowler

Uniform Interface = Genious

@StreamdataIO

Codified  UI,  by  floor  (header),  with  token/key,  proxy,  cache  

#so$shake  

Page 33: Network-Based Architectures : Haussmann Fielding Fowler

Uniformity = beauty inside

@StreamdataIO

Uniformity  in  APIs  brings  harmony  in  UX  

#so$shake  

Page 34: Network-Based Architectures : Haussmann Fielding Fowler

Uniformity = pattern beauty

@StreamdataIO

Uniformity  brings  fractal  harmony:  s`ll  there  from  a  distance  

#so$shake  

Page 35: Network-Based Architectures : Haussmann Fielding Fowler

HAUSSMANN URBANIST // FOWLER CONTINUOUS DELIVERY & MICROSERVICES

Haussmann Fielding Fowler

@StreamdataIO #so$shake  

Page 36: Network-Based Architectures : Haussmann Fielding Fowler

Continuous Delivery

@StreamdataIO

Resilient  Water  Induc`on,  requiring  aqueducts  and  reservoirs  

#so$shake  

Page 37: Network-Based Architectures : Haussmann Fielding Fowler

Continuous Delivery

@StreamdataIO

Aqueduct,  Arcueil   Reservoir,  Arcueil  

#so$shake  

Page 38: Network-Based Architectures : Haussmann Fielding Fowler

Microservices

Not too big/high

Autonomous components

Own API

Standard protocol

@StreamdataIO

Rue  Montorgueil,  Paris  2e  

#so$shake  

Page 39: Network-Based Architectures : Haussmann Fielding Fowler

Zoning

@StreamdataIO

Quar`er  Panthéon,  a  zone  dedicated  to  Our  Big  Men  

#so$shake  

Page 40: Network-Based Architectures : Haussmann Fielding Fowler

Lead by example

@StreamdataIO

Opera,  an  Hypermedia  API  >  great  UX  >  trac`on  for  API  owners  

#so$shake  

Page 41: Network-Based Architectures : Haussmann Fielding Fowler

Cut Corners

@StreamdataIO

Cut  corners  vs  straight  corners:  a  design  choice    

And  x2  exemplar:  conduct  the  most  difficult  transforma`ons  

#so$shake  

Page 42: Network-Based Architectures : Haussmann Fielding Fowler

Polyglot

@StreamdataIO

XVIII  architecture  encapsulated,  if  API  complies  

#so$shake  

Page 43: Network-Based Architectures : Haussmann Fielding Fowler

SUSTAINABLE SYSTEMS? PARIS 160 YEARS LATER HTTP REST 16 YEARS LATER

Haussmann Fielding Fowler

@StreamdataIO #so$shake  

Page 44: Network-Based Architectures : Haussmann Fielding Fowler

UX performance: City of Lights

@StreamdataIO

20m  unique  visitors  a  year  

#so$shake  

Page 45: Network-Based Architectures : Haussmann Fielding Fowler

Reproductible

@StreamdataIO

Chicago  a$er  the  Burnham  Plan,  designed  in  1909  

#so$shake  

Page 46: Network-Based Architectures : Haussmann Fielding Fowler

Reproductible

@StreamdataIO

Goto  Shimpei’s  plan  for  the  reconstruc`on  of  Tokyo,  1923  

#so$shake  

Page 47: Network-Based Architectures : Haussmann Fielding Fowler

@StreamdataIO

Durable

Courneuve,  1986,  20y  lifespan  Monolith  

#so$shake  

Page 48: Network-Based Architectures : Haussmann Fielding Fowler

Evolvable

@StreamdataIO

Tour  Eiffel  under  construc`on,  evolu`on  built  years  a$er  Haussmann  had  le$  office  

#so$shake  

Page 49: Network-Based Architectures : Haussmann Fielding Fowler

RECENT EVOLUTIONS IN CITIZEN #UX

Haussmann, Fielding, Fowler

@StreamdataIO #so$shake  

Page 50: Network-Based Architectures : Haussmann Fielding Fowler

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    

Page 51: Network-Based Architectures : Haussmann Fielding Fowler

Code Civil by @steeve

@StreamdataIO

hpps://github.com/steeve/france.code-­‐civil.git  

#so$shake  

Page 52: Network-Based Architectures : Haussmann Fielding Fowler

Map of Paris by @vnccc

@StreamdataIO

github.com/vbarbaresi/MetroGit.git  

#so$shake  

Page 53: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 54: Network-Based Architectures : Haussmann Fielding Fowler

Error Handling in your code

@StreamdataIO

Gare  Montparnasse,  1895  –HTTP  or    REST  does  not  prevent  from  good  error  handling,  contrib  @rit    

#so$shake  

Page 55: Network-Based Architectures : Haussmann Fielding Fowler

HTTP//PARIS DICTIONARY, MAPS & RESSOURCES

Haussmann Fielding Fowler

@StreamdataIO #UX  #API  

Page 56: Network-Based Architectures : Haussmann Fielding Fowler

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  

Page 57: Network-Based Architectures : Haussmann Fielding Fowler

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