Modern .NET Software Architecture - Manuel Meyer€¦ · HAMBURG COPENHAGEN LAUSANNE MUNICH...

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

Transcript of Modern .NET Software Architecture - Manuel Meyer€¦ · HAMBURG COPENHAGEN LAUSANNE MUNICH...

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

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

TicTacTech

Modern .NET Software Architecture3 09.09.2016

GamePlayer Statistics

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 !?

Modern .NET Software Architecture5 09.09.2016

A Brief History of

Sofware Engineering

A Look Around Today

Modern .NET Software Architecture6 09.09.2016

Google Trend „Microservices“

A Look Around Today

Modern .NET Software Architecture7 09.09.2016

Google Trend „SOA“

A Look Around Today

Modern .NET Software Architecture8 09.09.2016

Google Trend „SOA“

A Look Around Today

Modern .NET Software Architecture9 09.09.2016

Google Trend „Microservices“ versus „Service Oriented Architecture“

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

The Unix Philosophy (1978) - DOTADIW

Modern .NET Software Architecture11 09.09.2016

Modern .NET Software Architecture12 09.09.2016

The Unix Philosophy (1978) - DOTADIW

Modern .NET Software Architecture13 09.09.2016

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.

The Reactive Manifesto

Modern .NET Software Architecture15 09.09.2016

https://www.reactivemanifesto.org/

REACTIVE

Elastic

Responsive Resilient

Message

Driven

Modern .NET Software Architecture16 09.09.2016

Microservice Characteristics

The Evolution of Software Architecture

Modern .NET Software Architecture17 09.09.2016

The Evolution of Software Architecture

Modern .NET Software Architecture18 09.09.2016

The Evolution of Software Architecture

Modern .NET Software Architecture19 09.09.2016

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/

N-Tier / X-Layer Microservice

Modern .NET Software Architecture21 09.09.2016

Modern .NET Software Architecture22 09.09.2016

Microservice Examples

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

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

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

Modern .NET Software Architecture26 09.09.2016

Inside TicTacTech

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

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

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

Actors: “Objects done right”

Modern .NET Software Architecture30 09.09.2016

Other Technologies to look at

Modern .NET Software Architecture31 09.09.2016

Actors

Messaging

– Server

– Server to UI

NServiceBus

Microservice Challenges

Modern .NET Software Architecture32 09.09.2016

UI Composition – How to separate UI parts?

Complexity

Logging / Monitoring

Integration testing

Deployment

Thank You!Manuel Meyer ([email protected])

Christoph Pletz ([email protected])

09.09.2016 Modern .NET Software Architecture33