microservices and modern backends - azure meetup frankfurt

29
Azure Frankfurt Damir Dobric Armin Kalajdzija Indraneel Pole #azuremeetupfrankfurt

Upload: damir-dobric

Post on 18-Feb-2017

84 views

Category:

Software


0 download

TRANSCRIPT

Azure Frankfurt

Damir Dobric

Armin Kalajdzija

Indraneel Pole #azuremeetupfrankfurt

Microservices Modern Backends& Co.

Damir Dobric

[email protected]@microsoft.com

Microsoft PTSP (Partner Technical Solution Specialist)Microsoft Most Valuable ProfessionalBlog Twitter

@ddobric#azuremeetupfrankfurtdevelopers.de

Microservices: What to expect?

“Amount of problems in universe is a constant number”

What is SOA?

“Service orientation is a means for integrating across diverse

systems”

System 1 System 2

System 3

Microservices Approach“Microservices is an (trendy) Architektur Style to design a single complex application as a group of small (micro) services, which are independend in

development and deployment“

Service 1 Service 3

Service 2

All services build ONE

system.

Scale Cube X = Loadbalancing scale Y = Functional Scale Z = Data Partitioning

X-Scale (Loadbalancing)

Node1 Node 2 Node N. . .

DB

Share traffic across multiple nodes is “easy”.

Relational DB scales vertically only. Horizontal scale is very difficult.

Z-Scale (Data Partitioning)Tire 1

DB2

Customers 0-10000

DB1

Customers 10001-…

Tire 1

DB2

Tenant 2

DB1

Tenant 1

Melvin Conway’s Low“Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations”

Wikipedia, James Lewis + Martin Fowler

Three+ Tire Architecture

Result of organization described by

Conway’s low

Don’t panic! Architecture is ok. But, Organization tends to produce monolithics

based on this architecture.

Microservice = Y-Scale

Purchasing

Order Tracking

. . .

DB

Microservice

Feature N

DB DB. . .

Microservice

API GatewayThese are Microservices. They are typically used

inside of enterprise boundary.

But, these is not a Microservice. It is publicly accessable service used for integration (SOA), which consumes and orchestrates Microservices

Issues with Monoliths?This is typically 1 Binary

i.e.: mdw.dll

(I)You cannot combine

technologies if you use binary dependency !

(II)Increasing number of features slows down

flexibility

(III)Growing application

increases complexity. Growing across multiple

features means exponential complexity.

(IV)Growing application

can slow down performance

(V)Growing application make maintenance

more complex

(VI)Cannot replace

application (or parts) prevents of using of

innovations.

(VII)Application

Replacement “impossible”

. . .

Think “µ“ (mycro)

N-Tire is Ok, butMonolith is NOT ok!

Organize Application in Smaller independent (micro) components

If µComponents have to exchange information

define them as services.

Issues with Microservices Developers must be more operation focused due increased complexity. More discipline required in development, documentation and deployment Increased Dependencies Multiple Versions of Services side by side (code immutability) More complex test requirements Every system is distributed system Communication between services is slower (network) Transaction compensation is more complex

Integration StylesFile TransferShared DatabaseRemote Procedure InvocationMessagingRelaying (messaging + rpc)

http://www.eaipatterns.com/toc.html

API StylesRemote Procedure Call (RPC)

DoSomething()Blocking (SYNC) Call

RSTRepresentation State TransferSpelled as “ReST”PUT/GET/POST,..Blocking (SYNC) Call

MessagingCommunication with help of broker.

Technologies which helps “µ-design“REST API Style

WebApi (Recommended)WCF (Not recommended)

Message API StyleAzure Service Bus

Native MessagingDurable Task Framework

Transparent MessagingCoded Orchestrations

Azure App ServiceWeb-App, API-App, Logic-App

Service FabricDocker

Azure App Services

DEMO – Service Bus

Demo - HoloTwin

DEMO – Hybrid Relay

DEMO – Durable Task Framework

What did we learn today?

We still have to hammer

Microservices(Azure App Services & Co.)

DAMIR DOBRIC

[email protected]@microsoft.com

Microsoft PTSP (Partner Technical Solution Specialist)Microsoft Most Valuable Professional

Blog Twitter

CloudAppsCloud CloudConsultingCloudAppsMiddlewareCloudAppsMiddlewareSoftware

Q & A