Camunda Con Live 2020 Keynote - Microservice Orchestration and Integration

BerndRuecker 1,852 views 55 slides Apr 24, 2020
Slide 1
Slide 1 of 55
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55

About This Presentation

Slides from my talk at Camunda Con Live on 24th of April 2020 about orchestrating and integrating microservices and the connection of choreography, observability and workflow automation


Slide Content

1
Microservices Orchestration
and Integration
using Workflow Automation
Bernd Ruecker
Co-Founder and Chief Technologist

Service
A
Microservices
@berndruecker
Monolith
Service
B
Service
C
C
B
A
D

Change istheonlyconstant

Wedon‘tknowwhatwewill needtomorrow.
But wedo knowthatwewill needsomething.
Wehavetobeabletomovequickly!
CIO ofan insurancecompanyin 2019

Service
A
AutonomousMicroservices
@berndruecker
Service
B
Service
C

The eraofAPIs
API
API
API
API
API
API
API
API
@berndruecker

The eraofAPIs
API
API
API
API
API
API
API
External Services
Standard Software
API
Functions
@berndruecker

Connectingthedots…
API
API
API
API
API
API
API
Microservices
External Services
Standard Software
API
Functions
@berndruecker

Example
@berndruecker

Example
Payment
Seat
Reservation
Booking
Ticket
Generation

Example
@berndruecker
sync

Weaknesses
Payment
Seat
Reservation
Booking
Ticket
Generation
REST

Weaknesses: Latencycreep
Payment
Seat
Reservation
Booking
Ticket
Generation
REST
300 ms
1150 + x ms
600 ms
250 ms

Weaknesses: Availabiliyerosion
Payment
Seat
Reservation
Booking
Ticket
Generation
REST
99 % uptime
99 % uptime
99 % uptime
96 % uptime

Example
@berndruecker

And itisevenhardtoimplement
Payment
Seat
Reservation
Booking
Ticket
Generation
REST

And itisevenhardtoimplement
Payment
Seat
Reservation
Booking
Ticket
Generation
REST

Workflow automationcanhelp
Payment
Seat
Reservation
Booking
Ticket
Generation
REST
Workflow Automation:
Isstateful
Canwait
Canretry
Canescalate
Cancompensate

Typicalpattern
Payment
Seat
Reservation
Booking
Ticket
Generation
REST
Simulatesynchronictybywaiting
(callbackorpolling)

Can yourcompany
leverageyour
hipster architecture?
Shutterstock
Youneedto
change business
processesand
customer
experience!

@berndruecker
happy
case
failure
case
Redesignyourbusinessprocessaccordingly!
Orsomeinterface
topollfor status
Syncin happy case
Asyncresponse

@berndruecker
Redesignyourbusinessprocessaccordingly!

@berndruecker
https://www.reactivemanifesto.org/

Yeah!
Let‘sgoreactive.

Phil Calcadoat QConNYC 2019

API
API
API
API
API
API
API
Microservices
External Services
Standard Software
„Whatthehell just happened?“
@berndruecker

Example:
orderfulfillmentvia
dashbutton
Photo by0xF2, availableunderCreative Commons BY-ND 2.0
license. https://www.flickr.com/photos/0xf2/29873149904/
@berndruecker

Threesteps…
@berndruecker

(Micro-)services
Checkout
Payment
Inventory
Shipment
@berndruecker

Order
Placed
Payment
Received
Goods
Fetched
Notification
Checkout
Payment
Inventory
Shipment
Event-drivenarchitecture
@berndruecker

Peer-to-peereventchains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
@berndruecker

Peer-to-peereventchains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
@berndruecker

The danger is that it's very easy to
make nicely decoupled systems with
event notification, without realizing
that you're losing sight of that larger-
scale flow, and thus set yourself up for
trouble in future years.
https://martinfowler.com/articles/201701-event-driven.html
@berndruecker

The danger is that it's very easy to
make nicely decoupled systems with
event notification, without realizing
that you're losing sight of that larger-
scale flow, and thus set yourself up for
trouble in future years.
https://martinfowler.com/articles/201701-event-driven.html
@berndruecker

The danger is that it's very easy to
make nicely decoupled systems with
event notification, without realizing
that you're losing sight of that larger-
scale flow, and thus set yourself up for
trouble in future years.
https://martinfowler.com/articles/201701-event-driven.html
@berndruecker

ProcessEvents Monitoring
Camunda
Optimize
Order
placed
Payment
received
Goods
fetched
Goods
shipped
@berndruecker
Order
placed
Payment
received
Goods
fetched
Goods
shipped

Demo

Peer-to-peereventchains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
@berndruecker

Peer-to-peereventchains
Checkout
Payment
Inventory
Shipment
Order
placed
Payment
received
Goods
shipped
Goods
fetched
Fetchthegoods
beforethe
payment
@berndruecker

Peer-to-peereventchains
Checkout
Payment
Inventory
Shipment
Goods
fetched
Order
placed
Payment
received
Goods
shipped
@berndruecker

Whatwewanted
Photo by LijianZhang, availableunderCreative Commons SA 2.0 Licenseand P..19/ CC BY-SA 4.0
@berndruecker

Order
Extracttheend-to-end responsibility
Checkout
Payment
Inventory
ShipmentPayment
received
Order
placed
Retrieve
payment
@berndruecker

Order
Events & Commands
Checkout
Payment
Inventory
ShipmentPayment
received
Order
placed
Retrieve
payment
@berndruecker
Event
Command
Fact,
happened in the past,
immutable
Intend,
Want s.th. to happen

Order
Itisnot abouttheprotocol!
Checkout
Payment
Inventory
Shipment
Order
placed
Retrieve
payment
Itcanstill bemessaging!
@berndruecker

Order
Itisaboutwheretodecideaboutthecoupling!
Checkout
Payment
Inventory
Shipment
Order
placed
Retrieve
payment
Order decides
. tolisten totheevent
. toissuethecommand
@berndruecker

Order
Checkout
Payment
Inventory
Shipment

Demo

One of the largest online fashion retailers
in the world (> 14.000 employees) does
everyorder fulfillment worldwide
withCamunda & Kafka
@berndruecker

Workflows live insideserviceboundaries
@berndruecker

NoBPM(N) monoliths
https://blog.bernd-ruecker.com/avoiding-the-bpm-monolith-when-using-bounded-contexts-d86be6308d8
@berndruecker

YourIT architecture
Choreography
Orchestration
@berndruecker
Yourservices
orapplications

Monolith Chaos
Choreography
Orchestration
@berndruecker
ProcessMonitoring
Yourservices
orapplications

YourIT architecture
ProcessMonitoring
Monolith Chaos
Choreography
Orchestration
Yourservices
orapplications
Balance choreographyand orchestration
@berndruecker

Summary
•Business agilityisessential tosurvive, thisisthecase
for microservices
•Collaborationofservicesisthenewchallenge
•Balance orchestrationandchoreography
•Fromchoreographytoorchestrationcanbea journey
•Workflow automationisa essential buildingblock

Thankyou!
@berndruecker