Upload
niklas-gustavsson
View
427
Download
1
Embed Size (px)
DESCRIPTION
Slide deck from my presentation at Leetspeak 2014 on how Spotify builds backend services.
Citation preview
Spo$fy'services
ngn@spo'fy.com-@protocol7
Microservices1*in*anger
1"h$p://mar+nfowler.com/ar+cles/microservices.html
Why?
Monoliths
Simplicity
Robustness
Scalability
UNIX%philosophy
"Rule&of&Modularity:&Developers&should&build&a&program&out&of&simple&parts&connected&by&well&defined&interfaces,&so&problems&are&local,&and&parts&of&the&program&can&be&replaced&in&future&versions&to&support&new&features.&This&rule&aims&to&save&@me&on&debugging&
complex&code&that&is&complex,&long,&and&unreadable"
—"Eric"S."Raymond,"The"Art"of"Unix"Programming
Embrace(Conway's(law2
2"h$ps://labs.spo.fy.com/2014/03/27/spo.fy8engineering8culture8part81/
What's'a'service?
Let's&walk&a&request
Perimeter'services
View%services
Service'discovery
$ dig _spotify-search._hm.lon3.spotify.net SRV +short5000 5000 8181 lon3-search-a1.lon3.spotify.net.5000 5000 8181 lon3-search-a2.lon3.spotify.net....
Data$services
Orchestra)on
Scaling(out
Geographical,distribu2on3
3"h$ps://www.youtube.com/watch?v=JEpsKnWZrJ8
Mul$site
Failure(modes
Failure(modesCascading)failures
Failure(modesBuild&for&failure
Failure(modesDrop%requests
Infrastructure+automa.on
Monitoring
Outro
Ques%onsngn@spo'fy.com-@protocol7