54
Eric Horesnyi | streamdata.io Network-based Architectures Fowler, Fielding, and Haussmann

Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Embed Size (px)

Citation preview

Page 1: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Eric Horesnyi | streamdata.io

Network-based Architectures Fowler, Fielding, and Haussmann

Page 2: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

The « Digital » gap

@StreamdataIO #JAXLondon

Page 3: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Haussmann & Fielding 1853, Paris 2000, Irvine

@StreamdataIO #JAXLondon

Page 4: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

CHALLENGES IN PARIS,1853

Haussmann Fielding and Fowler

@StreamdataIO #JAXLondon

Page 5: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

High Dropout Cholera, 1832 – 19,000 dropout

@StreamdataIO #JAXLondon

Page 6: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Congestion 1hab/sq mt density

@StreamdataIO #JAXLondon

Page 7: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Slow & Unsecure 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

Street in Ile de La Cité Early XIXth

Page 8: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

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

Page 9: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

INHERITED FEATURES HTTP//PARIS 1789-1853

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

Page 10: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Inherited Properties

@StreamdataIO #JAXLondon

Page 11: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

DNS .gov, .com and .fr

follow same scheme

Seine is .root Streets start there

Right/even

Left/Uneven

Paris street numbering, 1805

Page 12: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

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.

Page 13: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Separation of concerns Client Server

@StreamdataIO #JAXLondon

Page 14: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Stateless

All clients are treated equal, no special

treatment, no

segregation

Palais de Justice, Ile de la Cité

Page 15: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Stateless

Client access server via a network call

Page 16: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

SELECTION OF PROPERTIES FIELDING // HAUSSMANN REST // PARIS

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

Page 17: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Mission Network performance

throughput, small overhead, bandwidth

User-perceived performance latency,

and completion Network-efficiency

avoid using the street too much.

Homeworking Napoleon III describing his mission to Haussmann, 1853

Page 18: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

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

Page 19: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

P1: Low-Entry Barrier A popular neighborhood in Paris

@StreamdataIO #JAXLondon

Page 20: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

P2: Extensibility Streaming = Paris Metro/Subway, 1900

@StreamdataIO #JAXLondon

Page 21: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

P3: Distributed Hypermedia

@StreamdataIO #JAXLondon

Page 22: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

P4: Anarchic Scalability Paris Metropole today, 10m+ people

@StreamdataIO #JAXLondon

Page 23: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

P6: Independant Deployment Ile de La Cité restructured, embedding legacy/sacred Notre Dame

@StreamdataIO #JAXLondon

Page 24: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

WHY HAUSSMANN DECIDED TO MAKE PARIS RESTFUL

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

Page 25: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

REST=LCODC$SS&UI

CSS=Client-Server-Stateless

@StreamdataIO #JAXLondon

Page 26: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Layer 1: sewage & gas

@StreamdataIO #JAXLondon

Page 27: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Layer 2: street & boulevards

@StreamdataIO #JAXLondon

Page 28: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Layer 3: roofs

@StreamdataIO #JAXLondon

Page 29: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Layered Networks Within a layer, a

component connects to its neighboor

Between two layers, gateways allow for

interaction

Each layer is autonomous

@StreamdataIO #JAXLondon

Page 30: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Cache 700 concurrent clients

80,000 in cache 2m records

@StreamdataIO St Geneviève Library, 1850

Page 31: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Cache Opera, a server with cache

#Tech2Day

Page 32: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Code On Demand Les Halles, setting the tone for all restaurants in the City

@StreamdataIO #JAXLondon

Page 33: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Uniform Interface = Genious Codified UI, by floor (header), with token/key, proxy, cache

@StreamdataIO #JAXLondon

Page 34: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Uniformity = beauty inside Uniformity in APIs brings harmony in UX

@StreamdataIO #JAXLondon

Page 35: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Uniformity = pattern beauty Uniformity brings fractal harmony: still there from a distance

@StreamdataIO #JAXLondon

Page 36: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

HAUSSMANN // FOWLER AS URBANISTS

Continuous Delivery & Microservices

#Tech2Day @StreamdataIO #JAXLondon

Page 37: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Continuous Delivery Resilient Water Induction, requiring aqueducts and reservoirs

@StreamdataIO #JAXLondon

Page 38: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Continuous Delivery Aqueduct, Arcueil Reservoir, Arcueil

@StreamdataIO #JAXLondon

Page 39: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Microservices Not too big

Autonomous components

Own API

Standard protocol Scalable

@StreamdataIO #JAXLondon

Page 40: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Zoning

Quartier Panthéon, a zone dedicated to “The Big Men”

Page 41: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Lead by example

Opera, an Hypermedia API > great UX >>> traction for API owners

Page 42: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Cut Corners

Haussmann corners: Most difficult piece & beautiful

Page 43: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Polyglot XVIII architecture encapsulated, if API

complies

@StreamdataIO #JAXLondon

Page 44: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

PARIS 160 YEARS LATER HTTP REST 16 YEARS LATER

Sustainable systems?

@StreamdataIO #JAXLondon

Page 45: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

UX performance

City of Lights: 20m unique visitors a year

Page 46: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Reproductible

Chicago after the Burnham Plan, designed in 1909

Page 47: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Durable

Courneuve, 1986, 20y lifespan Monolith

Page 48: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Evolvable

Tour Eiffel under construction, evolution built years after Haussmann had left office

Page 49: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

DAYTODAY LIFE IN A RESTFUL CITY

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

Page 50: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

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

Page 51: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

Error Handling in your code

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

Page 52: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

HTTP//PARIS DICTIONARY, MAPS & RESSOURCES

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

Page 53: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

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

Page 54: Fowler, Fielding, and Haussmann - network-based architectures - Eric Horesnyi

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