Tech Talks @NSU: Pressing Play at Spotify

Preview:

Citation preview

PlayPressing

at Spotifyhttps://www.flickr.com/photos/aneil4lom/9484487433/

https://www.flickr.com/photos/aneil4lom/9484487433/

SpotifyTons of music 58 markets and counting

Tell something about Spotify backends architecture

“https://www.flickr.com/photos/dbraaten/323401934/

Put electricity, software and hardware here

https://www.flickr.com/photos/dbraaten/323401934/

Get music and everything

https://www.flickr.com/photos/dbraaten/323401934/

Sergey Vysotskiy

@goblingamehttps://www.flickr.com/photos/ingmar/5724262065/

vsp@spotify.com

https://www.flickr.com/photos/question_everything/3677506157/

GeoDNS

https://www.flickr.com/photos/question_everything/3677506157/

for clients

https://www.flickr.com/photos/question_everything/3677506157/

More DNS

distributionand more

AP

C

https://www.flickr.com/photos/question_everything/3677506157/

AP

C

Perimeter servicehttps://www.flickr.com/photos/archer10/2213475574/

Rate Limits

Accesspoint

RoutingLogging

Auth State

https://www.flickr.com/photos/archer10/2213475574/

AP

C C C C

https://www.flickr.com/photos/archer10/2213475574/

Microservices

https://www.flickr.com/photos/intherough/3573333256/

Monolithic

https://www.flickr.com/photos/intherough/3573333256/

MicroservicesMonolithic

https://www.flickr.com/photos/intherough/3573333256/

Make each program do one thing well. To do a new job, build afresh

rather than complicate old programs by adding new features.

“- Unix philosophy

https://www.flickr.com/photos/intherough/3573333256/

https://www.flickr.com/photos/intherough/3573333256/

Design for failure

AP

C

Let’s find a song!https://www.flickr.com/photos/nasamarshall/5511379566/

Service !

Discoveryhttps://www.flickr.com/photos/nasamarshall/5511379566/

_search._http.spotify.net 3600 SRV 10 50 8081 host.spotify.net

SRV to the rescue

https://www.flickr.com/photos/nasamarshall/5511379566/

_search._http.spotify.net 3600 SRV 10 50 8081 host.spotify.net

Service Name

https://www.flickr.com/photos/nasamarshall/5511379566/

_search._http.spotify.net 3600 SRV 10 50 8081 host.spotify.net

Protocol

https://www.flickr.com/photos/nasamarshall/5511379566/

_search._http.spotify.net 3600 SRV 10 50 8081 host.spotify.net

Time to live

https://www.flickr.com/photos/nasamarshall/5511379566/

_search._http.spotify.net 3600 SRV 10 50 8081 host.spotify.net

Priority

https://www.flickr.com/photos/nasamarshall/5511379566/

_search._http.spotify.net 3600 SRV 10 50 8081 host.spotify.net

Weight

https://www.flickr.com/photos/nasamarshall/5511379566/

_search._http.spotify.net 3600 SRV 10 50 8081 host.spotify.net

Port

https://www.flickr.com/photos/nasamarshall/5511379566/

_search._http.spotify.net 3600 SRV 10 50 8081 host.spotify.net

Host Name

https://www.flickr.com/photos/nasamarshall/5511379566/

DNS world !

as a bonushttps://www.flickr.com/photos/nasamarshall/5511379566/

AP

C

Let’s find a song!

Yeah, but…

https://www.flickr.com/photos/nasamarshall/5511379566/

Searchview

View Service

AP

C

https://www.flickr.com/photos/nasamarshall/5511379566/

Searchview

Search Metadata

AP

C

https://www.flickr.com/photos/nasamarshall/5511379566/

Data Service

Searchview

Search Metadata

Hadoop here

AP

C

https://www.flickr.com/photos/nasamarshall/5511379566/

Content ingestion

Hadoop here

AP

C

https://www.flickr.com/photos/nasamarshall/5511379566/

Where’s music?AP

https://www.flickr.com/photos/krienke/13812387795/

piece by piece from CDN

https://www.flickr.com/photos/krienke/13812387795/

Pick

aggressively everywhere

https://www.flickr.com/photos/krienke/13812387795/

CACHE

Prefetch next song

https://www.flickr.com/photos/krienke/13812387795/

The Endhttps://www.flickr.com/photos/skohlmann/10960938633/