Microservices @ Spotify Kevin Goldsmith VP Engineering - - PowerPoint PPT Presentation

microservices spotify
SMART_READER_LITE
LIVE PREVIEW

Microservices @ Spotify Kevin Goldsmith VP Engineering - - PowerPoint PPT Presentation

Microservices @ Spotify Kevin Goldsmith VP Engineering @kevingoldsmith Lets say I wanted to build a large application Some requirements Some requirements Mustscaletomillionsofusers Some requirements Mustscaletomillionsofusers


slide-1
SLIDE 1
slide-2
SLIDE 2

Microservices @ Spotify

Kevin Goldsmith VP Engineering @kevingoldsmith

slide-3
SLIDE 3

Let’s say I wanted to build a large application

slide-4
SLIDE 4

Some requirements

slide-5
SLIDE 5

Some requirements

  • Mustscaletomillionsofusers
slide-6
SLIDE 6

Some requirements

  • Mustscaletomillionsofusers
  • Supportmultipleplatforms
slide-7
SLIDE 7

Some requirements

  • Mustscaletomillionsofusers
  • Supportmultipleplatforms
  • Handlecomplexbusinessrules
slide-8
SLIDE 8

Some requirements

  • Mustscaletomillionsofusers
  • Supportmultipleplatforms
  • Handlecomplexbusinessrules
  • Competitiveinafastmovingmarket
slide-9
SLIDE 9

Some requirements

  • Mustscaletomillionsofusers
  • Supportmultipleplatforms
  • Handlecomplexbusinessrules
  • Competitiveinafastmovingmarket
  • ReactQuickly
slide-10
SLIDE 10

Some requirements

  • Mustscaletomillionsofusers
  • Supportmultipleplatforms
  • Handlecomplexbusinessrules
  • Competitiveinafastmovingmarket
  • ReactQuickly
  • Out-innovate
slide-11
SLIDE 11

A product like this

slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14

A product like this

slide-15
SLIDE 15

A product like this

  • 75+ Million Monthly Active Users
slide-16
SLIDE 16

A product like this

  • 75+ Million Monthly Active Users
  • 58 Countries
slide-17
SLIDE 17

A product like this

  • 75+ Million Monthly Active Users
  • 58 Countries
  • > 20,000 songs added per day
slide-18
SLIDE 18

A product like this

  • 75+ Million Monthly Active Users
  • 58 Countries
  • > 20,000 songs added per day
  • > 2B playlists
slide-19
SLIDE 19

A product like this

  • 75+ Million Monthly Active Users
  • 58 Countries
  • > 20,000 songs added per day
  • > 2B playlists
  • Incredibly complex business rules
slide-20
SLIDE 20

A product like this

  • 75+ Million Monthly Active Users
  • 58 Countries
  • > 20,000 songs added per day
  • > 2B playlists
  • Incredibly complex business rules
  • Lots of competition
slide-21
SLIDE 21

A product like this

  • 75+ Million Monthly Active Users
  • 58 Countries
  • > 20,000 songs added per day
  • > 2B playlists
  • Incredibly complex business rules
  • Lots of competition
slide-22
SLIDE 22

A product like this

  • 75+ Million Monthly Active Users
  • 58 Countries
  • > 20,000 songs added per day
  • > 2B playlists
  • Incredibly complex business rules
  • Lots of competition
slide-23
SLIDE 23

How do you support these requirements while moving fast and innovating?

slide-24
SLIDE 24

Solution

Autonomous full-stack teams

slide-25
SLIDE 25

Autonomous

adjective au·ton·o·mous - \ȯ-ˈtä-nə-məs\ (of a country or region) having the freedom to govern itself or control its own affairs.

"the federation included sixteen autonomous republics"

having the freedom to act independently.

"school governors are legally autonomous"

synonyms: self-governing, independent, sovereign, free, self-ruling, self- determining, autarchic; self-sufficient

"an autonomous republic"

slide-26
SLIDE 26

Autonomous

adjective au·ton·o·mous - \ȯ-ˈtä-nə-məs\ (of a country or region) having the freedom to govern itself or control its own affairs.

"the federation included sixteen autonomous republics"

having the freedom to act independently.

"school governors are legally autonomous"

synonyms: self-governing, independent, sovereign, free, self-ruling, self-determining, autarchic; self-sufficient

"an autonomous republic"

slide-27
SLIDE 27

Server Core Library Platform Platform Platform Platform Infrastructure

slide-28
SLIDE 28

Server Core Library Platform Platform Platform Platform Infrastructure

slide-29
SLIDE 29

Server Core Library Platform Platform Platform Platform Infrastructure

slide-30
SLIDE 30

Server Core Library Platform Platform Platform Platform Infrastructure

slide-31
SLIDE 31

Server Core Library Platform Platform Platform Platform Infrastructure

slide-32
SLIDE 32

Server Core Library Platform Platform Platform Platform Infrastructure

slide-33
SLIDE 33

Challenges

slide-34
SLIDE 34

Challenges

Synchronization

slide-35
SLIDE 35

Challenges

Synchronization

Client UX implementation

slide-36
SLIDE 36

Challenges

Synchronization

Client UX implementation depends on

slide-37
SLIDE 37

Challenges

Synchronization

Client UX implementation Core Library Implementation depends on

slide-38
SLIDE 38

Challenges

Synchronization

Client UX implementation Core Library Implementation depends on depends on

slide-39
SLIDE 39

Challenges

Synchronization

Client UX implementation Core Library Implementation depends on depends on Server Implementation

slide-40
SLIDE 40

Challenges

Synchronization

Client UX implementation Core Library Implementation depends on depends on depends on Server Implementation

slide-41
SLIDE 41

Challenges

Synchronization

Client UX implementation Core Library Implementation depends on depends on depends on Server Implementation Infrastructure Implementation

slide-42
SLIDE 42

Server Core Library Platform Platform Platform Platform Infrastructure

slide-43
SLIDE 43

platforms Server Core Library Platform Platform Platform Platform Infrastructure

slide-44
SLIDE 44

platforms Server Core Library Platform Platform Platform Platform Infrastructure Feature Team Feature Team Feature Team Feature Team Feature Team Feature Team

slide-45
SLIDE 45

platforms Server Core Library Platform Platform Platform Platform Infrastructure Feature Team Feature Team Feature Team Feature Team Feature Team Feature Team

slide-46
SLIDE 46

platforms Server Core Library Platform Platform Platform Platform Infrastructure Feature Team Feature Team Feature Team Feature Team Feature Team Feature Team

slide-47
SLIDE 47
slide-48
SLIDE 48

What this looks like at Spotify

slide-49
SLIDE 49

What this looks like at Spotify

  • 90+ teams
slide-50
SLIDE 50

What this looks like at Spotify

  • 90+ teams
  • 600+ Developers
slide-51
SLIDE 51

What this looks like at Spotify

  • 90+ teams
  • 600+ Developers
  • 5 Development offices
slide-52
SLIDE 52

What this looks like at Spotify

  • 90+ teams
  • 600+ Developers
  • 5 Development offices
  • 1 Product
slide-53
SLIDE 53

Full-stack autonomous teams

Requires you to structure your application in loosely coupled parts

slide-54
SLIDE 54

Services

slide-55
SLIDE 55
slide-56
SLIDE 56
slide-57
SLIDE 57
slide-58
SLIDE 58
slide-59
SLIDE 59

Load Ballancer

slide-60
SLIDE 60
slide-61
SLIDE 61
slide-62
SLIDE 62
slide-63
SLIDE 63

Microservices yay!

Easier to scale based on real-world bottlenecks

slide-64
SLIDE 64

Microservices yay!

Easier to test

slide-65
SLIDE 65

Microservices yay!

Easier to deploy

slide-66
SLIDE 66

Microservices yay!

Easier to monitor

slide-67
SLIDE 67

Microservices yay!

Can be versioned independently

slide-68
SLIDE 68
slide-69
SLIDE 69

Microservices yay!

Are less susceptible to large failures

slide-70
SLIDE 70
slide-71
SLIDE 71

Microservices boo!

are harder to monitor

slide-72
SLIDE 72

Microservices boo!

need good documentation / discovery tools

slide-73
SLIDE 73
slide-74
SLIDE 74

Microservices boo!

create increased latency

slide-75
SLIDE 75
slide-76
SLIDE 76
slide-77
SLIDE 77

What does this look like at Spotify?

slide-78
SLIDE 78

What does this look like at Spotify?

  • 810 active services
slide-79
SLIDE 79

What does this look like at Spotify?

  • 810 active services
  • ~10 Systems per squad
slide-80
SLIDE 80

What does this look like at Spotify?

  • 810 active services
  • ~10 Systems per squad
  • ~1.7 Systems per person with access to

production servers

slide-81
SLIDE 81

What does this look like at Spotify?

  • 810 active services
  • ~10 Systems per squad
  • ~1.7 Systems per person with access to

production servers

  • ~1.15 Systems per member of

T echnology

slide-82
SLIDE 82
slide-83
SLIDE 83

http:/ /spotify.github.io/apollo/

slide-84
SLIDE 84
slide-85
SLIDE 85

Questions

twitter: @kevingoldsmith

(yes, we’re hiring)

slide-86
SLIDE 86