OSCON 2016
Blithe RocherOSCONMay 18, 2016`MICROSERVICESWAR STORIES
View Slide
@BLITHE
MICROSERVICESSo…
A MONOLITHvs.
MICROSERVICES
WHY AREMICROSERVICESSO POPULAR?
INDEPENDENTDEPLOYMENT & SCALABILITY1REASON
1REASON
COMPARTMENTALIZETEAMS & RESPONSIBILITIES2REASON
TECHNICALDESIGN FREEDOM3REASON
FAULT TOLERANCE4REASON
WHY ME?
MAKING MISTAKES& LEARNING FROM THEMExperience
STORY TIME
SUPPORTING NEW CONTENT TYPE1STORYStory
STORY: Supporting New Content Type
CONTENT-TYPE: TEXT/HTML☹STORY: Supporting New Content Type
STORY: Supporting New Content TypePROBLEM?
STORY: Supporting New Content TypeREMEDIES
REMOVING A FEATURE FLAG2STORYStory
UI Authorization ServiceSTORY: Removing Feature Flags
DELETING CODEYay!STORY: Removing Feature Flags
PROBLEM?STORY: Removing Feature Flags
REMEDIESSTORY: Removing Feature Flags
TIGHTLY COUPLED SERVICES3STORYStory
STORY: Tightly Coupled ServicesMicroserviceADatabaseMicroserviceB
STORY: Tightly Coupled ServicesALL THE WAY DOWNHeadaches
STORY: Tightly Coupled ServicesPRODUCTION
STORY: Tightly Coupled ServicesDEVELOPMENT
STORY: Tightly Coupled ServicesSERVICES NOT ISOLATED,ALL NEED TO BE RUNNING
STORY: Tightly Coupled ServicesAUTOMATED TESTING
STORY: Tightly Coupled ServicesVCR RECORDINGSolution?
STORY: Tightly Coupled ServicesAPI Responses - 1992
STORY: Tightly Coupled ServicesVCR GEMSTORY: Tightly Coupled Services
STORY: Tightly Coupled ServicesPROBLEM?
STORY: Tightly Coupled ServicesREMEDIES
STORY: Tightly Coupled Services
STORY: Tightly Coupled ServicesBUNDLE EXEC RAKE TEST:REAL
STORY: Tightly Coupled ServicesBUNDLE EXEC RAKE TEST:MOCK
STRING VS INTEGER4STORYStory
STORY: String vs. Integer
ONE ENDPOINTTO RULE THEM ALLSTORY: String vs. Integer
PROBLEM?STORY: String vs. Integer
REMEDIESSTORY: String vs. Integer
SUMMARY & TAKE AWAYS
THANKS!Questions?@Blithe