Page 1
Blithe Rocher OSCON
May 18, 2016
`
MICROSERVICES WAR STORIES
Page 7
WHY ARE MICROSERVICES
SO POPULAR?
Page 8
INDEPENDENT DEPLOYMENT & SCALABILITY
1REASON
Page 15
COMPARTMENTALIZE TEAMS & RESPONSIBILITIES
2REASON
Page 16
TECHNICAL DESIGN FREEDOM
3REASON
Page 17
FAULT TOLERANCE
4REASON
Page 19
MAKING MISTAKES & LEARNING FROM THEM
Experience
Page 21
SUPPORTING NEW CONTENT TYPE
1STORY
Story
Page 22
STORY: Supporting New Content Type
Page 23
STORY: Supporting New Content Type
Page 24
STORY: Supporting New Content Type
Page 25
CONTENT-TYPE: TEXT/HTML
☹
STORY: Supporting New Content Type
Page 26
STORY: Supporting New Content Type
Page 27
STORY: Supporting New Content Type
Page 28
STORY: Supporting New Content Type
PROBLEM?
Page 29
STORY: Supporting New Content Type
REMEDIES
Page 30
REMOVING A FEATURE FLAG
2STORY
Story
Page 31
UI Authorization Service
STORY: Removing Feature Flags
Page 32
DELETING CODEYay!
STORY: Removing Feature Flags
Page 33
PROBLEM?
STORY: Removing Feature Flags
Page 34
REMEDIES
STORY: Removing Feature Flags
Page 35
TIGHTLY COUPLED SERVICES
3STORY
Story
Page 36
STORY: Tightly Coupled Services
Microservice
A
Database
Microservice
B
Page 37
STORY: Tightly Coupled Services
ALL THE WAY DOWNHeadaches
Page 38
STORY: Tightly Coupled Services
PRODUCTION
Page 39
STORY: Tightly Coupled Services
Microservice
A
Database
Microservice
B
Page 40
STORY: Tightly Coupled Services
Microservice
A
Database
Microservice
B
Page 41
STORY: Tightly Coupled Services
Microservice
A
Database
Microservice
B
Page 42
STORY: Tightly Coupled Services
DEVELOPMENT
Page 43
STORY: Tightly Coupled Services
SERVICES NOT ISOLATED, ALL NEED TO BE RUNNING
Page 44
STORY: Tightly Coupled Services
Microservice
A
Database
Microservice
B
Page 45
STORY: Tightly Coupled Services
AUTOMATED TESTING
Page 46
STORY: Tightly Coupled Services
Microservice
A
Database
Microservice
B
Page 47
STORY: Tightly Coupled Services
VCR RECORDINGSolution?
Page 48
STORY: Tightly Coupled Services
API Responses - 1992
Page 49
STORY: Tightly Coupled Services
VCR GEM
STORY: Tightly Coupled Services
Page 50
STORY: Tightly Coupled Services
PROBLEM?
Page 51
STORY: Tightly Coupled Services
REMEDIES
Page 52
STORY: Tightly Coupled Services
Page 53
STORY: Tightly Coupled Services
Page 54
STORY: Tightly Coupled Services
BUNDLE EXEC RAKE TEST:REAL
Page 55
STORY: Tightly Coupled Services
BUNDLE EXEC RAKE TEST:MOCK
Page 56
STRING VS INTEGER
4STORY
Story
Page 57
STORY: String vs. Integer
Page 58
STORY: String vs. Integer
Page 59
STORY: String vs. Integer
Page 60
ONE ENDPOINT TO RULE THEM ALL
STORY: String vs. Integer
Page 61
STORY: String vs. Integer
Page 62
STORY: String vs. Integer
Page 63
STORY: String vs. Integer
Page 64
STORY: String vs. Integer
Page 65
STORY: String vs. Integer
Page 66
STORY: String vs. Integer
Page 67
STORY: String vs. Integer
Page 68
STORY: String vs. Integer
Page 69
PROBLEM?
STORY: String vs. Integer
Page 70
REMEDIES
STORY: String vs. Integer
Page 71
SUMMARY & TAKE AWAYS
Page 72
THANKS!Questions?
@Blithe