Slide 1

Slide 1 text

Lucas Mendes | Product Architect | @devsdmf SCALE UP MODERN APPLICATION ARCHITECTURES

Slide 2

Slide 2 text

$ whoami

Slide 3

Slide 3 text

FIRST OF ALL…

Slide 4

Slide 4 text

AGENDA

Slide 5

Slide 5 text

SCALE UP - MODERN APPLICATION ARCHITECTURES AGENDA ▸ Software Architecture ▸ Architectural Patterns ▸ Microservices ▸ Decomposition ▸ Orchestration ▸ Helpful Tools

Slide 6

Slide 6 text

SOFTWARE ARCHITECTURE

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

"Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures.” - Wikipedia

Slide 9

Slide 9 text

ARCHITECTURAL PATTERNS

Slide 10

Slide 10 text

MONOLITHIC

Slide 11

Slide 11 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 12

Slide 12 text

MICROSERVICES

Slide 13

Slide 13 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 14

Slide 14 text

SEEMS COMPLEX?

Slide 15

Slide 15 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 16

Slide 16 text

[MICROSERVICES ARE] ONE FORM OF SOA, PERHAPS SERVICE ORIENTATION DONE RIGHT. Martin Fowler SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 17

Slide 17 text

WHICH IS THE BEST?

Slide 18

Slide 18 text

NONE OF THEM.

Slide 19

Slide 19 text

BUT…

Slide 20

Slide 20 text

INTERNET OF THINGS

Slide 21

Slide 21 text

MICROSERVICES TACKLING THE COMPLEXITY

Slide 22

Slide 22 text

CASES

Slide 23

Slide 23 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 24

Slide 24 text

BENEFITS

Slide 25

Slide 25 text

SCALE UP - MODERN APPLICATION ARCHITECTURES BENEFITS ▸ Small and domain focused ▸ Faster development ▸ Independent deployment ▸ Easier to scale ▸ Improved fault isolation ▸ Technology diversity

Slide 26

Slide 26 text

DRAWBACKS

Slide 27

Slide 27 text

SCALE UP - MODERN APPLICATION ARCHITECTURES DRAWBACKS ▸ Additional complexity ▸ Developer Tools / IDEs ▸ Testing is more difficult ▸ Data management is not easy ▸ Deployment complexity ▸ Increased resource consumption

Slide 28

Slide 28 text

DATA MANAGEMENT

Slide 29

Slide 29 text

DATABASE PER SERVICE VS SHARED DATABASE

Slide 30

Slide 30 text

WHAT ABOUT CONSISTENCY ?

Slide 31

Slide 31 text

EVENT-DRIVEN ARCHITECTURE

Slide 32

Slide 32 text

INTER-PROCESS COMMUNICATION

Slide 33

Slide 33 text

REMOTE PROCEDURE INVOCATION (RPI) VS MESSAGING

Slide 34

Slide 34 text

SECURITY

Slide 35

Slide 35 text

ALWAYS USES ACCESS TOKENS

Slide 36

Slide 36 text

SERVICE DISCOVERY

Slide 37

Slide 37 text

CLIENT-SIDE DISCOVERY

Slide 38

Slide 38 text

SERVER-SIDE DISCOVERY

Slide 39

Slide 39 text

DEPLOYMENT

Slide 40

Slide 40 text

MULTIPLE INSTANCES PER HOST

Slide 41

Slide 41 text

SERVICE INSTANCE PER HOST

Slide 42

Slide 42 text

SERVICE INSTANCE PER VM

Slide 43

Slide 43 text

SERVICE INSTANCE PER CONTAINER

Slide 44

Slide 44 text

RELIABILITY

Slide 45

Slide 45 text

FAULT ISOLATION

Slide 46

Slide 46 text

CIRCUIT BREAKER

Slide 47

Slide 47 text

LOGGING

Slide 48

Slide 48 text

EXTERNAL LOGGING

Slide 49

Slide 49 text

DECOMPOSITION BREAKING THE MONOLITH

Slide 50

Slide 50 text

STOP MAKING YOUR MONOLITHIC BIGGER!

Slide 51

Slide 51 text

SPLIT FRONT-END AND BACK-END

Slide 52

Slide 52 text

EXTRACTING SERVICES

Slide 53

Slide 53 text

DOMAIN DRIVEN DESIGN

Slide 54

Slide 54 text

GETTING STARTED CHOOSE THE RIGHT TOOL FOR THE JOB

Slide 55

Slide 55 text

PROGRAMMING LANGUAGE

Slide 56

Slide 56 text

PICK YOUR FAVORITE, OR THE BEST ONE.

Slide 57

Slide 57 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 58

Slide 58 text

DATA MANAGEMENT

Slide 59

Slide 59 text

RELATIONAL DATABASES

Slide 60

Slide 60 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 61

Slide 61 text

NOSQL DATABASES

Slide 62

Slide 62 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 63

Slide 63 text

MESSAGE QUEUES

Slide 64

Slide 64 text

SCALE UP - MODERN APPLICATION ARCHITECTURES Resque

Slide 65

Slide 65 text

AUTHENTICATION AND AUTHORIZATION

Slide 66

Slide 66 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 67

Slide 67 text

SERVICE DISCOVERY

Slide 68

Slide 68 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 69

Slide 69 text

API GATEWAY

Slide 70

Slide 70 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 71

Slide 71 text

FAULT TOLERANCE

Slide 72

Slide 72 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 73

Slide 73 text

SECRET MANAGEMENT

Slide 74

Slide 74 text

SCALE UP - MODERN APPLICATION ARCHITECTURES Keywhiz

Slide 75

Slide 75 text

LOGGING

Slide 76

Slide 76 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 77

Slide 77 text

ORCHESTRATION

Slide 78

Slide 78 text

SCALE UP - MODERN APPLICATION ARCHITECTURES

Slide 79

Slide 79 text

CONSIDERATIONS

Slide 80

Slide 80 text

THANK YOU! Lucas Mendes
 Software Architect at Tienda Nube
 about.me/devsdmf We're hiring, join the crew! 
 bit.ly/work-at-tiendanube