"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