Top Banner
Azure Frankfurt Damir Dobric Armin Kalajdzija Indraneel Pole #azuremeetupfrankfurt
29

Microservices and modern backends - Azure Meetup Frankfurt

Feb 18, 2017

Download

Software

Damir Dobric
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: Microservices and modern backends  - Azure Meetup Frankfurt

Azure Frankfurt

Damir Dobric

Armin Kalajdzija

Indraneel Pole #azuremeetupfrankfurt

Page 2: Microservices and modern backends  - Azure Meetup Frankfurt
Page 3: Microservices and modern backends  - Azure Meetup Frankfurt

Microservices Modern Backends& Co.

Damir Dobric

[email protected]@microsoft.com

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

@ddobric#azuremeetupfrankfurtdevelopers.de

Page 4: Microservices and modern backends  - Azure Meetup Frankfurt

Microservices: What to expect?

“Amount of problems in universe is a constant number”

Page 6: Microservices and modern backends  - Azure Meetup Frankfurt

What is SOA?

“Service orientation is a means for integrating across diverse

systems”

System 1 System 2

System 3

Page 7: Microservices and modern backends  - Azure Meetup Frankfurt

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.

Page 8: Microservices and modern backends  - Azure Meetup Frankfurt

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

Page 9: Microservices and modern backends  - Azure Meetup Frankfurt

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.

Page 10: Microservices and modern backends  - Azure Meetup Frankfurt

Z-Scale (Data Partitioning)Tire 1

DB2

Customers 0-10000

DB1

Customers 10001-…

Tire 1

DB2

Tenant 2

DB1

Tenant 1

Page 11: Microservices and modern backends  - Azure Meetup Frankfurt

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

Page 12: Microservices and modern backends  - Azure Meetup Frankfurt

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.

Page 13: Microservices and modern backends  - Azure Meetup Frankfurt

Microservice = Y-Scale

Purchasing

Order Tracking

. . .

DB

Microservice

Feature N

DB DB. . .

Microservice

Page 14: Microservices and modern backends  - Azure Meetup Frankfurt

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

Page 15: Microservices and modern backends  - Azure Meetup Frankfurt

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”

. . .

Page 16: Microservices and modern backends  - Azure Meetup Frankfurt

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.

Page 17: Microservices and modern backends  - Azure Meetup Frankfurt

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

Page 18: Microservices and modern backends  - Azure Meetup Frankfurt

Integration StylesFile TransferShared DatabaseRemote Procedure InvocationMessagingRelaying (messaging + rpc)

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

Page 19: Microservices and modern backends  - Azure Meetup Frankfurt

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.

Page 20: Microservices and modern backends  - Azure Meetup Frankfurt
Page 21: Microservices and modern backends  - Azure Meetup Frankfurt

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

Page 22: Microservices and modern backends  - Azure Meetup Frankfurt

Azure App Services

Page 23: Microservices and modern backends  - Azure Meetup Frankfurt

DEMO – Service Bus

Page 24: Microservices and modern backends  - Azure Meetup Frankfurt

Demo - HoloTwin

Page 25: Microservices and modern backends  - Azure Meetup Frankfurt

DEMO – Hybrid Relay

Page 26: Microservices and modern backends  - Azure Meetup Frankfurt

DEMO – Durable Task Framework

Page 27: Microservices and modern backends  - Azure Meetup Frankfurt

What did we learn today?

Page 28: Microservices and modern backends  - Azure Meetup Frankfurt

We still have to hammer

Page 29: Microservices and modern backends  - Azure Meetup Frankfurt

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