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

Network-Based Architectures : Haussmann Fielding Fowler

Embed Size (px)

Citation preview

Network Based Architects Haussmann, Fielding, Fowler

HTTP/2, REST API, Microservices

@erichoresnyi

@StreamdataIO #softshake

@StreamdataIO #so$shake  

Turn APIs into Real-time Experiences

Streamdata.io homepage pix Paris subway

@StreamdataIO #so$shake  

Haussmann & Fielding

1853, Paris 2000, Irvine

@StreamdataIO #so$shake  

CHALLENGES IN PARIS IN 1853 Haussmann Fielding and Fowler

@StreamdataIO #so$shake  

Dropout

@StreamdataIO

Cholera, 1832 – 19,000 dropout

#so$shake  

Congestion

@StreamdataIO

1hab/sq mt density

#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  

INHERITED FEATURES Haussmann Fielding Fowler

@StreamdataIO #so$shake  

Inherited Properties

@StreamdataIO #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  

Separation of concerns

@StreamdataIO

Client Server

#so$shake  

Stateless

@StreamdataIO

Client access server via a network call

#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  

P1: Low-Entry Barrier

@StreamdataIO

A  popular  neighborhood  in  Paris  

#so$shake  

P2: Extensibility

@StreamdataIO

Streaming  =  Paris  Metro/Subway,  1900    

#so$shake  

Streamdata.io homepix Paris subway

P3: Distributed Hypermedia

@StreamdataIO #so$shake  

P4: Anarchic Scalability

@StreamdataIO

Paris  Metropole  today,  10m+  people  

#so$shake  

P6: Independant Deployment

@StreamdataIO

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

#so$shake  

WHY HAUSSMANN DECIDED TO MAKE PARIS RESTFUL

Haussmann Fielding Fowler

@StreamdataIO #so$shake  

REST=LCODC$SS&UI

@StreamdataIO

CSS=Client-Server-Stateless

#so$shake  

Layer 1: sewage & gas

@StreamdataIO #so$shake  

Layer 2: streets

@StreamdataIO #so$shake  

Layer 3: roofs

@StreamdataIO #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    

Code On Demand

@StreamdataIO

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

#so$shake  

Uniform Interface = Genious

@StreamdataIO

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

#so$shake  

Uniformity = beauty inside

@StreamdataIO

Uniformity  in  APIs  brings  harmony  in  UX  

#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  

Continuous Delivery

@StreamdataIO

Aqueduct,  Arcueil   Reservoir,  Arcueil  

#so$shake  

Microservices

Not too big/high

Autonomous components

Own API

Standard protocol

@StreamdataIO

Rue  Montorgueil,  Paris  2e  

#so$shake  

Zoning

@StreamdataIO

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

#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  

Polyglot

@StreamdataIO

XVIII  architecture  encapsulated,  if  API  complies  

#so$shake  

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

Haussmann Fielding Fowler

@StreamdataIO #so$shake  

UX performance: City of Lights

@StreamdataIO

20m  unique  visitors  a  year  

#so$shake  

Reproductible

@StreamdataIO

Chicago  a$er  the  Burnham  Plan,  designed  in  1909  

#so$shake  

Reproductible

@StreamdataIO

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

#so$shake  

@StreamdataIO

Durable

Courneuve,  1986,  20y  lifespan  Monolith  

#so$shake  

Evolvable

@StreamdataIO

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

#so$shake  

RECENT EVOLUTIONS IN CITIZEN #UX

Haussmann, Fielding, Fowler

@StreamdataIO #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    

Code Civil by @steeve

@StreamdataIO

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

#so$shake  

Map of Paris by @vnccc

@StreamdataIO

github.com/vbarbaresi/MetroGit.git  

#so$shake  

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  

HTTP//PARIS DICTIONARY, MAPS & RESSOURCES

Haussmann Fielding Fowler

@StreamdataIO #UX  #API  

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