Slide 1

Slide 1 text

BLA BLA MICROSERVICES BLA BLA DIRECTOR'S CUT JONAS BONÉR @JBONER CTO LIGHTBEND

Slide 2

Slide 2 text

KNOCK, KNOCK. WHO’S THERE? REALITY

Slide 3

Slide 3 text

Traditional application architectures and platforms are obsolete. — Gartner

Slide 4

Slide 4 text

MICROSERVICES. WHAT MAKES THEM SO POPULAR?

Slide 5

Slide 5 text

ONE DEFINITION SUPPORTS MULTIPLE AUTONOMOUS TEAMS ORGANIZED TO SCALE THE DEVELOPMENT WHERE THE TEAMS CAN DEVELOP, DEPLOY AND MANAGE THEIR SERVICES INDEPENDENTLY

Slide 6

Slide 6 text

THE ARCHITECTURAL CONTEXT OF MICROSERVICES: DISTRIBUTED SYSTEMS

Slide 7

Slide 7 text

ANOTHER DEFINITION A SYSTEM OF AUTONOMOUS COLLABORATIVE DISTRIBUTED SERVICES

Slide 8

Slide 8 text

AUTONOMY FROM GREEK AUTO-NOMOS: AUTO MEANING SELF NOMOS MEANING LAW

Slide 9

Slide 9 text

PROMISE THEORY LEADS THE WAY

Slide 10

Slide 10 text

THINK IN PROMISES NOT COMMANDS

Slide 11

Slide 11 text

Autonomy makes information local, leading to greater certainty and stability —IN SEARCH FOR CERTAINTY BY MARK BURGESS

Slide 12

Slide 12 text

> Commands diverge into unpredictable outcomes from definite beginnings ˰ decreased certainty > Promises converge towards a definite outcome from unpredictable beginnings ˰ improved certainty

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

AN AUTONOMOUS SERVICE CAN ONLY PROMISE ITS OWN BEHAVIOUR

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

IT WILL SLICE UP YOUR 1. ORGANIZATION 2. ARCHITECTURE

Slide 17

Slide 17 text

Organizations which design systems ...are constrained to produce designs which are copies of the communication structures of these organizations. — Melvin Conway

Slide 18

Slide 18 text

USE BULKHEADING

Slide 19

Slide 19 text

BUT WHAT ABOUT THE TITANIC?

Slide 20

Slide 20 text

RESILIENCE IS THE ABILITY TO SELF-HEAL, WHICH REQUIRES COMPARTMENTALIZATION OF FAILURE

Slide 21

Slide 21 text

GO ASYNCHRONOUS

Slide 22

Slide 22 text

ASYNC IO —IS ABOUT NOT BLOCKING THREADS ASYNC COMMUNICATION —IS ABOUT NOT BLOCKING REQUESTS

Slide 23

Slide 23 text

ASYNCHRONOUS IO

Slide 24

Slide 24 text

SYNCHRONOUS DISPATCH

Slide 25

Slide 25 text

ASYNCHRONOUS DISPATCH

Slide 26

Slide 26 text

ASYNCHRONOUS COMMUNICATION

Slide 27

Slide 27 text

ASYNC COMMUNICATION ALLOWS DECOUPLING IN SPACE AND TIME

Slide 28

Slide 28 text

ASYCHRONOUS MESSAGE-PASSING EMBRACES THE CONSTRAINTS OF DISTRIBUTED SYSTEMS

Slide 29

Slide 29 text

MESSAGE-PASSING ALLOWS FOR LOCATION TRANSPARENCY ONE COMMUNICATION ABSTRACTION ACROSS ALL DIMENSIONS OF SCALE CORE ˰ SOCKET ˰ CPU ˰ CONTAINER ˰ SERVER ˰ RACK ˰ DATA CENTER ˰ SYSTEM

Slide 30

Slide 30 text

MICROWHAT?

Slide 31

Slide 31 text

The Unix philosophy: Write programs that do one thing & do it well. Write programs to work together. — Doug McIlroy

Slide 32

Slide 32 text

DO ONE THING AND DO IT WELL

Slide 33

Slide 33 text

BUT WHAT ABOUT STATE?

Slide 34

Slide 34 text

OWN YOUR STATE, EXCLUSIVELY

Slide 35

Slide 35 text

THERE IS NO SUCH THING AS A "STATELESS" ARCHITECTURE IT'S JUST SOMEONE ELSE'S PROBLEM

Slide 36

Slide 36 text

THINK IN TERMS OF CONSISTENCY BOUNDARIES

Slide 37

Slide 37 text

BOUNDED CONTEXTS

Slide 38

Slide 38 text

POLYGLOT PERSISTENCE

Slide 39

Slide 39 text

The truth is the log. The database is a cache of a subset of the log. — Pat Helland

Slide 40

Slide 40 text

FAVOR EVENT LOGGING

Slide 41

Slide 41 text

THE LOG IS A DATABASE OF THE PAST NOT JUST A DATABASE OF THE PRESENT

Slide 42

Slide 42 text

EVENT SOURCING WITH CQRS

Slide 43

Slide 43 text

EVENT LOGGING AVOIDS THE INFAMOUS OBJECT-RELATIONAL IMPEDENCE MISMATCH

Slide 44

Slide 44 text

YOU NEED TO SEPARATE THE STATELESS PART — THE BEHAVIOR FROM THE STATEFUL PART — THE KNOWLEDGE

Slide 45

Slide 45 text

STAY MOBILE BUT ADDRESSABLE

Slide 46

Slide 46 text

But I'll take my time anywhere. I'm free to speak my mind anywhere. And I'll redefine anywhere. Anywhere I roam. Where I lay my head is home. — Wherever I May Roam by Lars Ulrich, James Hetfield (Metallica)

Slide 47

Slide 47 text

WHY WOULD I NEED VIRTUAL ADRESSING? 1. Load-balancing between stateless services 2. State replication of stateful services 3. Relocation of a stateful service

Slide 48

Slide 48 text

REFERENCES SHOULD ALWAYS WORK

Slide 49

Slide 49 text

...AND NOW WHAT?

Slide 50

Slide 50 text

One actor is no actor. Actors come in systems. — Carl Hewitt

Slide 51

Slide 51 text

MICROSERVICES COME IN SYSTEMS

Slide 52

Slide 52 text

SYSTEMS NEED TO EXPLOIT REALITY

Slide 53

Slide 53 text

INFORMATION HAS LATENCY

Slide 54

Slide 54 text

WE ARE ALWAYS LOOKING INTO THE PAST

Slide 55

Slide 55 text

THE COST OF MAINTAINING THE ILLUSION OF AN ABSOLUTE NOW

Slide 56

Slide 56 text

AS LATENCY GETS HIGHER, THE ILLUSION CRACKS EVEN MORE

Slide 57

Slide 57 text

In a distributed system, you can know where the work is done or you can know when the work is done but you can’t know both — Pat Helland

Slide 58

Slide 58 text

No content

Slide 59

Slide 59 text

No content

Slide 60

Slide 60 text

INSIDE DATA: OUR CURRENT PRESENT OUTSIDE DATA: BLAST FROM THE PAST BETWEEN SERVICES: HOPE FOR THE FUTURE — PAT HELLAND (DATA ON THE INSIDE VS DATA ON THE OUTSIDE)

Slide 61

Slide 61 text

STRIVE TO MINIMIZE COUPLING & COMMUNICATION

Slide 62

Slide 62 text

Words are very unecessary. They can only do harm. Enjoy the silence. — Enjoy the Silence by Martin Gore (Depeche Mode)

Slide 63

Slide 63 text

Silence is not only golden, it is seldom misquoted. — Bob Monkhouse

Slide 64

Slide 64 text

The contents of a message are always from the past! They are never “now.” — Pat Helland

Slide 65

Slide 65 text

WE HAVE TO RELY ON EVENTUAL CONSISTENCY BUT DON'T BE SURPRISED IT'S HOW THE WORLD WORKS

Slide 66

Slide 66 text

NO ONE WANTS EVENTUAL CONSISTENCY IT IS A NECESSARY EVIL

Slide 67

Slide 67 text

THINK IN FACTS

Slide 68

Slide 68 text

CAUSALITY IS A PATH TO KNOWLEDGE

Slide 69

Slide 69 text

To condense fact from the vapor of nuance — Neal Stephenson, Snow Crash

Slide 70

Slide 70 text

WE NEED TO CONTAIN MUTABLE STATE & PUBLISH FACTS

Slide 71

Slide 71 text

HOW CAN WE MANAGE PROTOCOL EVOLUTION?

Slide 72

Slide 72 text

Be conservative in what you do, be liberal in what you accept from others. — Jon Postel

Slide 73

Slide 73 text

CONSIDER USING AN ANTI-CORRUPTION LAYER (CLASSIC DDD PATTERN)

Slide 74

Slide 74 text

CONSIDER USING AN API GATEWAY TO SIMPLIFY CLIENT COMMUNICATION

Slide 75

Slide 75 text

HOW CAN WE MANAGE THE COMPLEXITY OF COMMUNICATION?

Slide 76

Slide 76 text

INTEGRATION WITH OTHER SYSTEMS IS A RISKY BUSINESS

Slide 77

Slide 77 text

SYNCHRONOUS COMMUNICATION PUTS YOU AT THE MERCY OF THE OTHER SYSTEM

Slide 78

Slide 78 text

USE CIRCUIT BREAKERS

Slide 79

Slide 79 text

ALWAYS APPLY BACK-PRESSURE OR SOMEONE WILL GET HURT

Slide 80

Slide 80 text

A FAST SYSTEM SHOULD NOT OVERLOAD A SLOW SYSTEM

Slide 81

Slide 81 text

BUT WHAT ABOUT TRANSACTIONS?

Slide 82

Slide 82 text

In general, application developers simply do not implement large scalable applications assuming distributed transactions. — Pat Helland

Slide 83

Slide 83 text

“Two-phase commit is the anti-availability protocol.” — Pat Helland

Slide 84

Slide 84 text

GUESS. APOLOGIZE. COMPENSATE.

Slide 85

Slide 85 text

IT'S HOW THE WORLD WORKS

Slide 86

Slide 86 text

BUT... I REALLY NEED TRANSACTIONS

Slide 87

Slide 87 text

SAGA PATTERN

Slide 88

Slide 88 text

IN SUMMARY EMBRACE REALITY AND ITS CONSTRAINTS SHALL SET YOU FREE (OR SOMETHING LIKE THAT)

Slide 89

Slide 89 text

LEARN MORE HTTP://BIT.LY/REACTIVE-MICROSERVICES-ARCHITECTURE

Slide 90

Slide 90 text

NEVER. STOP. READING. SOME BOOKS TO GET YOU STARTED

Slide 91

Slide 91 text

THANK YOU

Slide 92

Slide 92 text

No content