Top Banner
Blithe Rocher OSCON May 18, 2016 ` MICROSERVICES WAR STORIES
73

Microservices War Stories

Jan 08, 2017

Download

Software

Fastly
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Microservices War Stories

Blithe Rocher OSCON

May 18, 2016

`

MICROSERVICES WAR STORIES

Page 2: Microservices War Stories

@BLITHE

Page 3: Microservices War Stories
Page 4: Microservices War Stories

MICROSERVICESSo…

Page 5: Microservices War Stories

A MONOLITHvs.

Page 6: Microservices War Stories

MICROSERVICES

Page 7: Microservices War Stories

WHY ARE MICROSERVICES

SO POPULAR?

Page 8: Microservices War Stories

INDEPENDENT DEPLOYMENT & SCALABILITY

1REASON

Page 9: Microservices War Stories

1REASON

Page 10: Microservices War Stories

1REASON

Page 11: Microservices War Stories

1REASON

Page 12: Microservices War Stories

1REASON

Page 13: Microservices War Stories

1REASON

Page 14: Microservices War Stories

1REASON

Page 15: Microservices War Stories

COMPARTMENTALIZE TEAMS & RESPONSIBILITIES

2REASON

Page 16: Microservices War Stories

TECHNICAL DESIGN FREEDOM

3REASON

Page 17: Microservices War Stories

FAULT TOLERANCE

4REASON

Page 18: Microservices War Stories

WHY ME?

Page 19: Microservices War Stories

MAKING MISTAKES & LEARNING FROM THEM

Experience

Page 20: Microservices War Stories

STORY TIME

Page 21: Microservices War Stories

SUPPORTING NEW CONTENT TYPE

1STORY

Story

Page 22: Microservices War Stories

STORY: Supporting New Content Type

Page 23: Microservices War Stories

STORY: Supporting New Content Type

Page 24: Microservices War Stories

STORY: Supporting New Content Type

Page 25: Microservices War Stories

CONTENT-TYPE: TEXT/HTML

STORY: Supporting New Content Type

Page 26: Microservices War Stories

STORY: Supporting New Content Type

Page 27: Microservices War Stories

STORY: Supporting New Content Type

Page 28: Microservices War Stories

STORY: Supporting New Content Type

PROBLEM?

Page 29: Microservices War Stories

STORY: Supporting New Content Type

REMEDIES

Page 30: Microservices War Stories

REMOVING A FEATURE FLAG

2STORY

Story

Page 31: Microservices War Stories

UI Authorization Service

STORY: Removing Feature Flags

Page 32: Microservices War Stories

DELETING CODEYay!

STORY: Removing Feature Flags

Page 33: Microservices War Stories

PROBLEM?

STORY: Removing Feature Flags

Page 34: Microservices War Stories

REMEDIES

STORY: Removing Feature Flags

Page 35: Microservices War Stories

TIGHTLY COUPLED SERVICES

3STORY

Story

Page 36: Microservices War Stories

STORY: Tightly Coupled Services

Microservice

A

Database

Microservice

B

Page 37: Microservices War Stories

STORY: Tightly Coupled Services

ALL THE WAY DOWNHeadaches

Page 38: Microservices War Stories

STORY: Tightly Coupled Services

PRODUCTION

Page 39: Microservices War Stories

STORY: Tightly Coupled Services

Microservice

A

Database

Microservice

B

Page 40: Microservices War Stories

STORY: Tightly Coupled Services

Microservice

A

Database

Microservice

B

Page 41: Microservices War Stories

STORY: Tightly Coupled Services

Microservice

A

Database

Microservice

B

Page 42: Microservices War Stories

STORY: Tightly Coupled Services

DEVELOPMENT

Page 43: Microservices War Stories

STORY: Tightly Coupled Services

SERVICES NOT ISOLATED, ALL NEED TO BE RUNNING

Page 44: Microservices War Stories

STORY: Tightly Coupled Services

Microservice

A

Database

Microservice

B

Page 45: Microservices War Stories

STORY: Tightly Coupled Services

AUTOMATED TESTING

Page 46: Microservices War Stories

STORY: Tightly Coupled Services

Microservice

A

Database

Microservice

B

Page 47: Microservices War Stories

STORY: Tightly Coupled Services

VCR RECORDINGSolution?

Page 48: Microservices War Stories

STORY: Tightly Coupled Services

API Responses - 1992

Page 49: Microservices War Stories

STORY: Tightly Coupled Services

VCR GEM

STORY: Tightly Coupled Services

Page 50: Microservices War Stories

STORY: Tightly Coupled Services

PROBLEM?

Page 51: Microservices War Stories

STORY: Tightly Coupled Services

REMEDIES

Page 52: Microservices War Stories

STORY: Tightly Coupled Services

Page 53: Microservices War Stories

STORY: Tightly Coupled Services

Page 54: Microservices War Stories

STORY: Tightly Coupled Services

BUNDLE EXEC RAKE TEST:REAL

Page 55: Microservices War Stories

STORY: Tightly Coupled Services

BUNDLE EXEC RAKE TEST:MOCK

Page 56: Microservices War Stories

STRING VS INTEGER

4STORY

Story

Page 57: Microservices War Stories

STORY: String vs. Integer

Page 58: Microservices War Stories

STORY: String vs. Integer

Page 59: Microservices War Stories

STORY: String vs. Integer

Page 60: Microservices War Stories

ONE ENDPOINT TO RULE THEM ALL

STORY: String vs. Integer

Page 61: Microservices War Stories

STORY: String vs. Integer

Page 62: Microservices War Stories

STORY: String vs. Integer

Page 63: Microservices War Stories

STORY: String vs. Integer

Page 64: Microservices War Stories

STORY: String vs. Integer

Page 65: Microservices War Stories

STORY: String vs. Integer

Page 66: Microservices War Stories

STORY: String vs. Integer

Page 67: Microservices War Stories

STORY: String vs. Integer

Page 68: Microservices War Stories

STORY: String vs. Integer

Page 69: Microservices War Stories

PROBLEM?

STORY: String vs. Integer

Page 70: Microservices War Stories

REMEDIES

STORY: String vs. Integer

Page 71: Microservices War Stories

SUMMARY & TAKE AWAYS

Page 72: Microservices War Stories

THANKS!Questions?

@Blithe

Page 73: Microservices War Stories