+ All Categories
Home > Software > Microservices Standardization - Susan Fowler, Stripe

Microservices Standardization - Susan Fowler, Stripe

Date post: 22-Jan-2018
Category:
Upload: datawire
View: 2,556 times
Download: 0 times
Share this document with a friend
21
a talk Microservice Standardization Susan Fowler
Transcript
Page 1: Microservices Standardization - Susan Fowler, Stripe

a talk

Microservice Standardization

Susan Fowler

Page 2: Microservices Standardization - Susan Fowler, Stripe

A Little Bit About Myself…

EngineeratStripeAuthorofProduction-ReadyMicroservices

Page 3: Microservices Standardization - Susan Fowler, Stripe

Microservice Challenges at Scale

Challenge#1:OrganizationalSiloingandSprawl

• InverseConway’sLawformicroservices:theorgstructureofacompanyusingmicroserviceswillmirroritsarchitecture

• Microservicedevelopersbecomelikemicroservices(reallygoodatdoingonething)

• Communicationproblems• Operationaltasksmustbeshoulderedbydevelopmentteams

Page 4: Microservices Standardization - Susan Fowler, Stripe

Microservice Challenges at Scale

Challenge#2:MoreWaystoFail

• Microservicesarepartsoflargeandcomplexdistributedsystems• Themoredistributedthesystem,themorewaysitcan(andwill)fail• Eachmicroservicebecomesapointoffailure

Page 5: Microservices Standardization - Susan Fowler, Stripe

Microservice Challenges at Scale

Challenge#3:CompetitionforResources

• Amicroserviceecosystemisjustlikeanyotherecosystem• Hardwareresourcesarescarce• Engineeringresourcesarescarce• Difficulttoprioritize• Difficulttoscale

Page 6: Microservices Standardization - Susan Fowler, Stripe

Microservice Challenges at Scale

Challenge#4:MisconceptionsaboutMicroservices

• Myth:MicroservicesaretheWildWest• Myth:Freereignoverarchitecturedecisions• Myth:Freedomtochooseanyprogramminglanguage• Myth:Freedomtochooseanydatabase• Myth:Microservicesareasilverbullet• Myth:Adoptingmicroservicesmeansanydeveloperscanbuildaservicethatdoesone

thingextraordinarilywell,theycandowhatevertheyneedorwanttodotobuildit,aslongasitgetsthejobdone

Page 7: Microservices Standardization - Susan Fowler, Stripe

Microservice Challenges at Scale

Challenge#5:TechnicalSprawlandTechnicalDebt

• Everyoneusestheirfavoritetools• Everyonedeployswithcustomscripts• Everyonebuildscustominfrastructure• Athousandwaystodoeachthing

Page 8: Microservices Standardization - Susan Fowler, Stripe

Microservice Challenges at Scale

Challenge#6:InherentLackofTrust

• Microservicesliveincomplexdependencychains,completelyreliantoneachother• Nowaytoknowforsurethatdependenciesarereliable• Nowaytoknowthatclientswon’tcompromisetheirmicroservice• Notrustattheorganizational,cross-team,orteamlevels• Nowayofknowingthatmicroservicescanbetrustedwithproductiontraffic:noway

ofknowingifmicroservicesareproduction-ready

Page 9: Microservices Standardization - Susan Fowler, Stripe

The Need for Standardization at Scale

Reality:Microservicesarenotisolatedsystems

• Microservicesarepartofthemicroserviceecosystem,andbelongincomplexdependencychains

• Nomicroserviceorsetofmicroservicesshouldcompromisetheintegrityoftheoverallproductorsystem

Page 10: Microservices Standardization - Susan Fowler, Stripe

The Need for Standardization at Scale

Page 11: Microservices Standardization - Susan Fowler, Stripe

The Need for Standardization at Scale

Page 12: Microservices Standardization - Susan Fowler, Stripe

The Need for Standardization at Scale

Solution:

• Holdallmicroservicestohigharchitectural,operational,andorganizationalstandards

• Amicroservicethatmeetsthesestandardsisdeemed“production-ready”,meaningthatitcanbetrustedwithproductiontraffic

Page 13: Microservices Standardization - Susan Fowler, Stripe

The Need for Standardization at Scale

Approach:LocalStandardization

• Determinestandardsonamicroservice-by-microservicebasis• Figureoutwhatrequirementsareappropriateforeachindividualservice,gofromthere

Problems:

• Doesn’testablishorg,cross-team,teamtrust• Addstotechnicalsprawlandtechnicaldebt• Notscalable• Don’tknowifservicesareproduction-ready

Page 14: Microservices Standardization - Susan Fowler, Stripe

The Need for Standardization at Scale

Approach:GlobalStandardization

• Determinestandardsthatapplytoallmicroserviceswithintheecosystem• Makethemgeneralenoughtoapplytoeverymicroservice• Makethemspecificenoughtobequantifiableandproducemeasurableresults

Problems:• Hardtodeterminefromscratchwhatappropriatestandardsare• Hardtofigureoutstandardsthatapplytoallmicroservicesandactuallymake

adifference

Page 15: Microservices Standardization - Susan Fowler, Stripe

Production-Readiness Standards

Howdowegetavailability?

• Stability• Reliability• Scalability• Performance• Fault-Tolerance• Catastrophe-Preparedness• Monitoring• Documentation

Page 16: Microservices Standardization - Susan Fowler, Stripe

Production-Readiness Standards

StabilityandReliability

• Wegetincreaseddevelopervelocitywithmicroservices,sotherearemorechanges,moredeployments,moreinstability

• Stabilityallowsustoreachavailabilitybygivinguswaystoresponsiblyhandlechangestomicroservices

• Areliablemicroserviceisonethatcanbetrustedbyitsclients,dependencies,andtheecosystemasawhole

• Stabilityandreliabilityarelinked:moststabilityrequirementshaveaccompanyingreliabilityrequirements(example:deploymentpipelines)

Page 17: Microservices Standardization - Susan Fowler, Stripe

Production-Readiness Standards

ScalabilityandPerformance

• Microservicesneedtoscaleappropriatelywithincreasesintraffic• Scalabilityisessentialforavailability– amicroservicethatcan’tscalewith

expectedgrowthhasincreasedlatency,pooravailability,and(inmostcases)adrasticincreasein#ofincidentsandoutages

• Scalabilityandperformancearelinked:scalability=howmanyrequestsamicroservicecanhandle,performance=howwelltheservicecanprocessthosetasks

• Aperformantmicroservicehandlesrequestsquickly,processestasksefficiently,andproperlyutilizesresources

Page 18: Microservices Standardization - Susan Fowler, Stripe

Production-Readiness Standards

Fault-ToleranceandCatastrophe-Preparedness

• Microservicesliveincomplicated,messyecosystemsincomplexdependencychains,andcan(anddo)failallofthetimeandineverywayimaginable

• Toensureavailability,microservicesneedtobeabletowithstandinternalandexternalfailures

• Example:resiliencytesting(codetesting,loadtesting,chaostesting)

Page 19: Microservices Standardization - Susan Fowler, Stripe

Production-Readiness Standards

MonitoringandDocumentation

• Goodmonitoringallowsustoknowthestateofthesystematalltimes• Secondmostcommoncauseofoutagesislackofgoodmonitoring:ifyou’re

notawareofthestateofthesystem,youwon’tknowwhenthesystemfails• Documentationremovestechnicaldebt,asdoesunderstandingtheservices

attheorg,team,anddevlevels

Page 20: Microservices Standardization - Susan Fowler, Stripe

Implementing Standardization

NowWhat?

• StepOne:Getbuyinfromalllevelsoftheorganization• Standardizationneedstobeadoptedanddrivenatalllevels

• Determineyourorganization’sproduction-readinessrequirements• Production-readinessrequirementsneedorganizationalcontext

inordertobeeffective• Makeproduction-readinesspartoftheengineeringculture

• Standardizationisnotahindranceorgate,it’saguide

Page 21: Microservices Standardization - Susan Fowler, Stripe

Want to Learn More?

Twitter:@susanthesquark

Books:Production-ReadyMicroservicesandMicroservicesinProduction

BlogPosts:www.susanjfowler.com


Recommended