3. Microservices
Modern Backends& Co.
Damir Dobric
damir.dobric@daenet.com
b-dadobr@microsoft.com
Microsoft PTSP
(Partner Technical Solution Specialist)
Microsoft Most Valuable Professional
Blog Twitter
@ddobric
#azuremeetupfrankfurt
developers.de
5. What is a “Service”?
Service is a valuable action, deed, or effort
performed to satisfy a need or to fulfill a
demand.
Service
6. What is SOA?
“Service orientation is a means
for integrating across diverse systems”
System 1 System 2
System 3
7. 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.
8. Scale Cube
X = Loadbalancing scale
Y = Functional Scale
Z = Data Partitioning
9. 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.
11. 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
12. 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.
14. API Gateway These 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
15. 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”
. . .
16. Think “µ“ (mycro)
N-Tire is Ok, but
Monolith is NOT ok!
Organize Application in
Smaller independent
(micro) components
If µComponents have to
exchange information
define them as services.
17. 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
19. API Styles
Remote Procedure Call (RPC)
DoSomething()
Blocking (SYNC) Call
RST
Representation State Transfer
Spelled as “ReST”
PUT/GET/POST,..
Blocking (SYNC) Call
Messaging
Communication with help of broker.
20.
21. Technologies which helps “µ-design“
REST API Style
WebApi (Recommended)
WCF (Not recommended)
Message API Style
Azure Service Bus
Native Messaging
Durable Task Framework
Transparent Messaging
Coded Orchestrations
Azure App Service
Web-App, API-App, Logic-App
Service Fabric
Docker
29. Microservices
(Azure App Services & Co.)
DAMIR DOBRIC
damir.dobric@daenet.com
b-dadobr@microsoft.com
Microsoft PTSP
(Partner Technical Solution Specialist)
Microsoft Most Valuable Professional
Blog Twitter
CloudAppsCloud CloudConsultingCloudAppsMiddlewareCloudAppsMiddlewareSoftware
Q & A
Notas del editor
“Microservices ist ein (neuer) Architektur Style eine Anwendung als Gruppe von kleinen (micro), voneinander in Entwicklung und Deployment isolierten, Services zu entwickeln.“