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

Preview:

Citation preview

Eric Horesnyi | streamdata.io

Network-based Architectures Fowler, Fielding, and Haussmann

The « Digital » gap

@StreamdataIO #JAXLondon

Haussmann & Fielding 1853, Paris 2000, Irvine

@StreamdataIO #JAXLondon

CHALLENGES IN PARIS,1853

Haussmann Fielding and Fowler

@StreamdataIO #JAXLondon

High Dropout Cholera, 1832 – 19,000 dropout

@StreamdataIO #JAXLondon

Congestion 1hab/sq mt density

@StreamdataIO #JAXLondon

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

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

INHERITED FEATURES HTTP//PARIS 1789-1853

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

Inherited Properties

@StreamdataIO #JAXLondon

DNS .gov, .com and .fr

follow same scheme

Seine is .root Streets start there

Right/even

Left/Uneven

Paris street numbering, 1805

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.

Separation of concerns Client Server

@StreamdataIO #JAXLondon

Stateless

All clients are treated equal, no special

treatment, no

segregation

Palais de Justice, Ile de la Cité

Stateless

Client access server via a network call

SELECTION OF PROPERTIES FIELDING // HAUSSMANN REST // PARIS

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

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

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

P1: Low-Entry Barrier A popular neighborhood in Paris

@StreamdataIO #JAXLondon

P2: Extensibility Streaming = Paris Metro/Subway, 1900

@StreamdataIO #JAXLondon

P3: Distributed Hypermedia

@StreamdataIO #JAXLondon

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

@StreamdataIO #JAXLondon

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

@StreamdataIO #JAXLondon

WHY HAUSSMANN DECIDED TO MAKE PARIS RESTFUL

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

REST=LCODC$SS&UI

CSS=Client-Server-Stateless

@StreamdataIO #JAXLondon

Layer 1: sewage & gas

@StreamdataIO #JAXLondon

Layer 2: street & boulevards

@StreamdataIO #JAXLondon

Layer 3: roofs

@StreamdataIO #JAXLondon

Layered Networks Within a layer, a

component connects to its neighboor

Between two layers, gateways allow for

interaction

Each layer is autonomous

@StreamdataIO #JAXLondon

Cache 700 concurrent clients

80,000 in cache 2m records

@StreamdataIO St Geneviève Library, 1850

Cache Opera, a server with cache

#Tech2Day

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

@StreamdataIO #JAXLondon

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

@StreamdataIO #JAXLondon

Uniformity = beauty inside Uniformity in APIs brings harmony in UX

@StreamdataIO #JAXLondon

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

@StreamdataIO #JAXLondon

HAUSSMANN // FOWLER AS URBANISTS

Continuous Delivery & Microservices

#Tech2Day @StreamdataIO #JAXLondon

Continuous Delivery Resilient Water Induction, requiring aqueducts and reservoirs

@StreamdataIO #JAXLondon

Continuous Delivery Aqueduct, Arcueil Reservoir, Arcueil

@StreamdataIO #JAXLondon

Microservices Not too big

Autonomous components

Own API

Standard protocol Scalable

@StreamdataIO #JAXLondon

Zoning

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

Lead by example

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

Cut Corners

Haussmann corners: Most difficult piece & beautiful

Polyglot XVIII architecture encapsulated, if API

complies

@StreamdataIO #JAXLondon

PARIS 160 YEARS LATER HTTP REST 16 YEARS LATER

Sustainable systems?

@StreamdataIO #JAXLondon

UX performance

City of Lights: 20m unique visitors a year

Reproductible

Chicago after the Burnham Plan, designed in 1909

Durable

Courneuve, 1986, 20y lifespan Monolith

Evolvable

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

DAYTODAY LIFE IN A RESTFUL CITY

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

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

Error Handling in your code

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

HTTP//PARIS DICTIONARY, MAPS & RESSOURCES

Haussmann Fielding Fowler

@StreamdataIO #JAXLondon

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

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

Recommended