33
BASLE BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH Modern .NET Software Architecture Where are we today? Christoph Pletz, CL - SOL Manuel Meyer, ZH - AD

Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

BASLE BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA

HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH

Modern .NET Software ArchitectureWhere are we today?

Christoph Pletz, CL-SOLManuel Meyer, ZH-AD

Page 2: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Agenda

Modern .NET Software Architecture2 09.09.2016

1. TicTacTech

2. A Brief History of Software Engineering

3. Microservice Characteristics

4. Microservice Examples

5. Inside TicTacTech

6. Summary

Page 3: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

TicTacTech

Modern .NET Software Architecture3 09.09.2016

GamePlayer Statistics

Page 4: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

TicTacTech

Modern .NET Software Architecture4 09.09.2016

http://tictactech.azurewebsites.net/

On Android I had problems

with Chrome, but it works

great with Opera !?

Page 5: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Modern .NET Software Architecture5 09.09.2016

A Brief History of

Sofware Engineering

Page 6: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

A Look Around Today

Modern .NET Software Architecture6 09.09.2016

Google Trend „Microservices“

Page 7: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

A Look Around Today

Modern .NET Software Architecture7 09.09.2016

Google Trend „SOA“

Page 8: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

A Look Around Today

Modern .NET Software Architecture8 09.09.2016

Google Trend „SOA“

Page 9: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

A Look Around Today

Modern .NET Software Architecture9 09.09.2016

Google Trend „Microservices“ versus „Service Oriented Architecture“

Page 10: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

A Brief History of Software Engineering

Modern .NET Software Architecture10 09.09.2016

1940

09.09.2016Mark 1

1978

The UNIX

Philosophy

(DOTADIW)

1970

WWW

1989

1996

SOA

2001

Agile

Manifesto

RESTful

Services

2000

2003

DDD

2002

The Cloud

2007

DevOps

2005

‘’Micro-

Web-

Services‘’

2011

Microservices

2013

Reactive

Manifesto

Page 11: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

The Unix Philosophy (1978) - DOTADIW

Modern .NET Software Architecture11 09.09.2016

Page 12: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Modern .NET Software Architecture12 09.09.2016

Page 13: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

The Unix Philosophy (1978) - DOTADIW

Modern .NET Software Architecture13 09.09.2016

Page 14: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

The Unix Philosophy (1978) - DOTADIW

Modern .NET Software Architecture14 09.09.2016

„Do one thing and do it well“

Make each program do one thing well

Expect the output of every program to become the input to another

Design software and systems to be tried early, don‘t hesitate to throw away

Use and make tools.

Page 15: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

The Reactive Manifesto

Modern .NET Software Architecture15 09.09.2016

https://www.reactivemanifesto.org/

REACTIVE

Elastic

Responsive Resilient

Message

Driven

Page 16: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Modern .NET Software Architecture16 09.09.2016

Microservice Characteristics

Page 17: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

The Evolution of Software Architecture

Modern .NET Software Architecture17 09.09.2016

Page 18: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

The Evolution of Software Architecture

Modern .NET Software Architecture18 09.09.2016

Page 19: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

The Evolution of Software Architecture

Modern .NET Software Architecture19 09.09.2016

Page 20: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Microservice Characteristics

Modern .NET Software Architecture20 09.09.2016

Small and self contained, owns its datasource, owned by 1 team

Easy to replace, individually deployable and disposable

Organized around capabilities

Implemented with „what fits best“

„Smart endpoints and dumb pipes“

Designed for failure

http://martinfowler.com/articles/microservices.html/

Page 21: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

N-Tier / X-Layer Microservice

Modern .NET Software Architecture21 09.09.2016

Page 22: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Modern .NET Software Architecture22 09.09.2016

Microservice Examples

Page 23: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Microservice Example 1: Microsoft Azure

Modern .NET Software Architecture23 09.09.2016

Clemens Vasters: Utopia ESB

http://channel9.msdn.com/Blogs/Subscribe/Wheres-the-ESB

Page 24: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Microservice Example 2

Modern .NET Software Architecture24 09.09.2016

«MicroMonolith - Top anti-

patterns of distributed systems»

- Michal Franc

NDC Oslo 2016

https://vimeo.com/171704583

Page 25: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Microservice Example 3

Modern .NET Software Architecture25 09.09.2016

«A High-Performance Solution

to Microservices UI

Composition»

NDC Oslo 2016

https://vimeo.com/171927597

Page 26: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Modern .NET Software Architecture26 09.09.2016

Inside TicTacTech

Page 27: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

ServiceBus

Modern .NET Software Architecture27 09.09.2016

PlayerChanged

Logged-In

HTML - JS

Web API

Data Collector

Sig

nalR

“Branding Service”

Arch

itetu

reO

verv

iew

HTML - JS

Web API

Reliable Actors

Reliable Service

Service Bus Listener

Game Events

Sig

nalR

Web API

HTML - JS

Document DB

Page 28: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Microservice Example 4: TicTacTech

Modern .NET Software Architecture28 09.09.2016

PlayerService GameService StatisticsService User Interface

Azure ServiceBus

aurelia.io

Azure Web Job

Service Fabric

Reliable Actors

Sql Server

Page 29: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Azure Service Fabric

Modern .NET Software Architecture29 09.09.2016

Cluster Management

Stateful Middle Tier

Runs any EXE

Specific APIs

– Reliable Actors

– Reliable Services

Rolling Updates

Page 30: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Actors: “Objects done right”

Modern .NET Software Architecture30 09.09.2016

Page 31: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Other Technologies to look at

Modern .NET Software Architecture31 09.09.2016

Actors

Messaging

– Server

– Server to UI

NServiceBus

Page 32: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Microservice Challenges

Modern .NET Software Architecture32 09.09.2016

UI Composition – How to separate UI parts?

Complexity

Logging / Monitoring

Integration testing

Deployment

Page 33: Modern .NET Software Architecture · Google Trend „Microservices“ versus „Service Oriented Architecture“ ... 1978 The UNIX Philosophy (DOTADIW) 1970 WWW 1989 1996 SOA 2001

Thank You!Manuel Meyer ([email protected])

Christoph Pletz ([email protected])

09.09.2016 Modern .NET Software Architecture33