Top Banner
#WISSENTEILEN „Lightweight“-Architectures Lars Röwekamp | CIO New Technologies | @mobileLarson open knowledge | #WISSENTEILEN
82

Herausforderung „Multi-Channel Architecture”

Feb 15, 2017

Download

Software

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: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

„Lightweight“-ArchitecturesLars Röwekamp | CIO New Technologies | @mobileLarson

open knowledge | #WISSENTEILEN

Page 2: Herausforderung „Multi-Channel Architecture”

ÜBER OPEN KNOWLEDGEBranchenneutrale Softwareentwicklung und IT-Beratung

#WISSENTEILEN

Page 3: Herausforderung „Multi-Channel Architecture”

ÜBER MICH

Wer bin ich - und wen ja, wie viele?

• CIO New Technologies • Enterprise & Mobile • Autor, Speaker, Coach & Mentor

• Snowboard & MTB Enthusiast• Mehrfacher Vater, einfacher Ehemann

Lars Röwekamp (a.k.a. @mobileLarson)

#WISSENTEILEN

LR

Page 4: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

„Multi-Channel! Warum?“

Motivation

Page 5: Herausforderung „Multi-Channel Architecture”

An Era of „Mindshift“

Page 6: Herausforderung „Multi-Channel Architecture”

„The expectation that I can get what i want in my immediate context and moments of need!“

Page 7: Herausforderung „Multi-Channel Architecture”

„Mindshift“ in ... Verhalten, Erwartungen, Kontrolle

Page 8: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

„Where do you use the

followingdevices in a

typical week?“

Motivation

(Quelle: Mobile Mindshift Online Survey USA)

Page 9: Herausforderung „Multi-Channel Architecture”

„We DO new Things!“

Page 10: Herausforderung „Multi-Channel Architecture”

„We DO new Things!““We EXPEXT new Things!“

Page 11: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Motivation

Page 12: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Motivation

Die Multi-Channel Challenge

Page 13: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

„Multi-Channel, na klar! Wo liegt das Problem?“

Motivation

Page 14: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

Responsive Design

Page 15: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

„Geht das mit unseremklassischen Backend?“

Page 16: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

„Geht das mit unseremklassischen Backend?“

„Ja klar geht das, aber ...“

Page 17: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

Old Channel

Page 18: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

Old Channel New Channel

Page 19: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

Old Channel New Channel

Page 20: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

Cross-Channel Omni-Channel

vs.

Page 21: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

Hmmm, kind of Fail?

Omni___

Page 22: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Multi-Channel

„Bros, not Twins!“

Omni___

Page 23: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

„One single

MONOLITHto rule them all!“

vs.

„Time to Market“

Multi-ChannelOmni___

Page 24: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

A responsive Monolithis still a Monolith!

Page 25: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

Architektur

Page 26: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturProblemfeld: • Views

Lösung:• ?

Page 27: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturProblemfeld: • Views

Lösung:• Resources

Page 28: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturProblemfeld: • „Repetitive Now“

Lösung:• ?

Page 29: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturProblemfeld: • „Repetitive Now“

Lösung:• Push statt Pull

Page 30: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturProblemfeld: • Skalierung

Lösung:• ?

Page 31: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturProblemfeld: • Skalierung

Lösung:• ?

You want to be here!

Page 32: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturProblemfeld: • Skalierung

Lösung:• Domain Services

Page 33: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturProblemfeld: • Monolithic Release

Lösung:• ?

Page 34: Herausforderung „Multi-Channel Architecture”

Architektur

#WISSENTEILEN

Problemfeld: • Monolithic Release

Lösung:• Modularization

Page 35: Herausforderung „Multi-Channel Architecture”

Architektur

#WISSENTEILEN

Problemfeld: • Provisionierung

Lösung:• ?

Page 36: Herausforderung „Multi-Channel Architecture”

ArchitekturProblemfeld: • Provisionierung

Lösung:• PaaS (via Cloud)

Page 37: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturOh, my god!

Page 38: Herausforderung „Multi-Channel Architecture”

Microservices! PaaS!

Page 39: Herausforderung „Multi-Channel Architecture”

Yeah, all Work done!

Page 40: Herausforderung „Multi-Channel Architecture”

Really? All Work done!

Page 41: Herausforderung „Multi-Channel Architecture”

ArchitekturLightweight Architecture:

• Resources statt Views• Push statt Pull• Domain Services• Modularization• PaaS

Page 42: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

ArchitekturHighlyDistributed System

Page 43: Herausforderung „Multi-Channel Architecture”

Challenges

Versionierung

Error Handling

Caching & Sync

Analytics

Security

?!

Page 44: Herausforderung „Multi-Channel Architecture”

Versionierung

Error Handling

Analytics

(Web) Security

Caching & Sync

Page 45: Herausforderung „Multi-Channel Architecture”

Versionierung

• Client/Server entwickeln sich unterschiedlich• Request /Response passen nicht zueinander

• Fehlende/unbekannte Request Attribute• Fehlende/unbekannte Response Attribute

• Geänderte Semantik von Attributen • Geänderte Semantik von Defaults

Omni-Channel Architecture

#WISSENTEILEN

Page 46: Herausforderung „Multi-Channel Architecture”

Versionierung

Best Practices strategisch

• so lang wie möglich verhindern• enge Koppelung vermeiden• Consumer-Driven Contracts

• Semantic Versioning (Major.Minor.Patch)• Koexistenz verschiedener Endpoints• konkurrierende Service Versionen

Omni-Channel Architecture

#WISSENTEILEN

Page 47: Herausforderung „Multi-Channel Architecture”

Versionierung

Koexistenz von Endpoints

Page 48: Herausforderung „Multi-Channel Architecture”

Versionierung

Koexistenz von Endpoints

Page 49: Herausforderung „Multi-Channel Architecture”

Versionierung

Koexistenz von Endpoints

Page 50: Herausforderung „Multi-Channel Architecture”

Versionierung

Konkurrierende Service Versionen

Page 51: Herausforderung „Multi-Channel Architecture”

Versionierung

Konkurrierende Service Versionen

Page 52: Herausforderung „Multi-Channel Architecture”

Versionierung

Konkurrierende Service Versionen

Page 53: Herausforderung „Multi-Channel Architecture”

Versionierung

Best Practices technisch

• gar nicht• gar nicht (via neue Ressourcen) • gar nicht (via erweiterbarer Datenformate)• Versionsnummer in der URL• Version Request Header• Content Negotiation

Omni-Channel Architecture

#WISSENTEILEN

Page 54: Herausforderung „Multi-Channel Architecture”

VersionierungOmni-Channel Architecture

#WISSENTEILEN

// Versioning via adaptable data format

{ "items" : [ {"name" : "coffee","quantity" : 1,"milk" : "semi","size" : "large",

} ],"location" : ”take-away"

}

Page 55: Herausforderung „Multi-Channel Architecture”

VersionierungOmni-Channel Architecture

#WISSENTEILEN

// Versioning via adaptable data format

{ ”items" : [ {"name" : "coffee","quantity" : 1,"milk" : "semi","size" : "large","price" : "4.00 USD"} ],"location" : "take-away"

}

Page 56: Herausforderung „Multi-Channel Architecture”

VersionierungOmni-Channel Architecture

#WISSENTEILEN

// Versioning via adaptable data format

{ ”items" : [ {"name" : "coffee","quantity" : 1,"milk" : "semi","size" : "large","price" : "4.00 USD"} ],“total-price" : "4.00 USD""location" : "take-away"

}

Page 57: Herausforderung „Multi-Channel Architecture”

VersionierungOmni-Channel Architecture

#WISSENTEILEN

// Versioning via adaptable data format

{ ”items" : [ {"name" : "coffee","quantity" : 1,"milk" : "semi","size" : "large","price" : "4.00 USD"} ],“price" : "4.00 USD""location" : "take-away"

}

„Are you a tolerant reader?“

Page 58: Herausforderung „Multi-Channel Architecture”

VersionierungOmni-Channel Architecture

#WISSENTEILEN

„Be conservative in what youdo, be liberal in what youaccept from others.“

John Postel

Page 59: Herausforderung „Multi-Channel Architecture”

Versionierung

Error Handling

Analytics

(Web) Security

Caching & Sync

Page 60: Herausforderung „Multi-Channel Architecture”

Error Handling

„Is it a bug or a feature?“

• Error Handling • Compensation Algorithmn

Omni-Channel Architecture

#WISSENTEILEN

Page 61: Herausforderung „Multi-Channel Architecture”

Error Handling

Status Codes - Pro Tipp: Use them!

• 1xx: Hold on ...• 2xx: Here you go!• 3xx: Go away!• 4xx: You f#!?ed up!• 5xx: I f#!?ed up!

Omni-Channel Architecture

#WISSENTEILEN

Page 62: Herausforderung „Multi-Channel Architecture”

Error Handling

Status Codes - Pro Tipp: Use them!

• 1xx: Hold on ...• 2xx: Here you go!• 3xx: Go away!• 4xx: You f#!?ed up!• 5xx: I f#!?ed up!

Omni-Channel Architecture

#WISSENTEILEN

Page 63: Herausforderung „Multi-Channel Architecture”

Omni-Channel Architecture

#WISSENTEILEN

// GET order with more than 5 itemsGET /orders?itemcount>=5 HTTP/1.1[various other headers]

// No order found for this query. // Response has no content (by purpose)HTTP/1.1. 204 No content

Error Handling

StatusCodes

Page 64: Herausforderung „Multi-Channel Architecture”

Error Handling

Manchmal kommt es anders als man denkt!

• „Code for Code“: Status Code & Appliction Level Code• „Message for People“: Für Logs, Ausgaben, ...• „Payload and Format“: genormte Error-Payload Format

• Kein Stacktrace• Exception Mapper als Provider auf äußerster Ebene

Omni-Channel Architecture

#WISSENTEILEN

Page 65: Herausforderung „Multi-Channel Architecture”

Error Handling

Compensation Algorithm

• Service not available• Eventual Consistency

Wichtig: Fachlicher „Plan B“

Omni-Channel Architecture

#WISSENTEILEN

Page 66: Herausforderung „Multi-Channel Architecture”

Error Handling

Compensation Algorithm

• Transactions • Eventual Consistency• Service not available

Multi-Channel Architecture

#WISSENTEILEN

„Starbucks does not useTwo-Phase Commit“

http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html

Page 67: Herausforderung „Multi-Channel Architecture”

Versionierung

Error Handling

Analytics

(Web) Security

Caching & Sync

Page 68: Herausforderung „Multi-Channel Architecture”

Chaching & Sync

Always remember: „The Web is your Friend“

• das Web bietet tolle Möglichkeiten • RESTful Service nutzen das Web bzw. HTTP

Omni-Channel Architecture

#WISSENTEILEN

Page 69: Herausforderung „Multi-Channel Architecture”

Chaching & Sync

Aber wer cached eigentlich was?

• Client (Web Browser, REST Client, ...) • Proxy Caches („man in the middle cache“)• Content Delivery Networks (CDNs)

Omni-Channel Architecture

#WISSENTEILEN

Page 70: Herausforderung „Multi-Channel Architecture”

Chaching & Sync

Wie funktioniert HTTP Caching?

• Expires Header (HTTP 1.0)• Cache-Control (HTTP 1.1)

• Revalidation & Conditional GETs

Omni-Channel Architecture

#WISSENTEILEN

Page 71: Herausforderung „Multi-Channel Architecture”

Versionierung

Error Handling

Analytics

(Web) Security

Caching & Sync

Page 72: Herausforderung „Multi-Channel Architecture”

Security

OWASP Top 10 (Open Web Application Security Project)

1. Injection2. Broken Authentication & Session Management3. Cross-Site Scripting (XSS)4. Insecure Direct Object References5. Security Misconfiguration

... 5 more to come ...

Omni-Channel Architecture

#WISSENTEILEN

Page 73: Herausforderung „Multi-Channel Architecture”

Versionierung

Error Handling

Analytics

(Web) Security

Caching & Sync

Page 74: Herausforderung „Multi-Channel Architecture”

Analytics

Wider dem Kontrollverlust: Analytics als Grundlage für strategische Entscheidungen

• Was macht der User eigentlich?• Und in welchem Kontext?

• Werden meine Konzepte und Daten genutzt?• Wenn ja, wie? Wenn nein, warum nicht?

Omni-Channel Architecture

#WISSENTEILEN

Page 75: Herausforderung „Multi-Channel Architecture”

Analytics

Monitore

• deine Ratings• deinen Traffic• deine UX

BTW: App ist nicht Web! Einmal deinstalliert ist immer deinstalliert.

Omni-Channel Architecture

#WISSENTEILEN

Page 76: Herausforderung „Multi-Channel Architecture”

#WISSENTEILEN

FAZIT

Page 77: Herausforderung „Multi-Channel Architecture”

FazitLightweight Omni-Channel Architecture

#WISSENTEILEN

„Mit Multi-Channel verlagere ich bestehendes Business.

Mit Omni-Channel generiere ich neues Business!“

Page 78: Herausforderung „Multi-Channel Architecture”

Fazit

„Time-to-Market“ via

• Resources statt Views• Events statt Request/Response• Domain Services statt Application• Modularization statt Monolith

Lightweight Omni-Channel Architecture

#WISSENTEILEN

Page 79: Herausforderung „Multi-Channel Architecture”

Fazit

„Time-to-Market“ via

• Resources statt Views• Events statt Request/Response• Domain Services statt Application• Modularization statt Monolith

Nebenwirkungen nicht ausgeschlossen!

Lightweight Omni-Channel Architecture

#WISSENTEILEN

Page 80: Herausforderung „Multi-Channel Architecture”

? ? ?FRAGEN

#WISSENTEILEN

Page 81: Herausforderung „Multi-Channel Architecture”

Kontakt

LARS RÖWEKAMPCIO NEW TECHNOLOGIES

[email protected]+49 (0)441 4082 – 101

@mobileLarson@_openknowledge

OFFENKUNDIGGUT

#WISSENTEILEN

Page 82: Herausforderung „Multi-Channel Architecture”

Bildnachweise

#1: © Rawpixel.com - shutterstock.com#5: © OneinchPunch - fotolia.com

All other pictures inside this presentation orginate frompixabay.com.

#WISSENTEILEN