Puppet at Spotify (stockholm)

1,241 views

Published on

Erik Dalén's talk "Puppet at Spotify" from Puppet Camp Stockholm 2013.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,241
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
12
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Puppet at Spotify (stockholm)

  1. 1. Puppet at SpotifyErik DalénFebruary 7, 2013
  2. 2. Spotify•  Over 20 million monthly active users•  Launched in 17 countries•  Over 20 million songs•  More than 1 billion playlistsGrowing quickly
  3. 3. Puppet Infrastructure•  Rougly 3500 nodes•  3 different Puppet installations, each with their own PuppetDB and CA•  One puppetmaster per data centre
  4. 4. Puppet InfrastructurePuppet users since 2.5 years•  More than 300 changes per month•  137 committers to our Puppet repository•  240 puppet modulesCode review by operations using Gerrit
  5. 5. Puppet Infrastructure Git branch == Puppet environment
  6. 6. Puppet InfrastructureBackend services built as debian packagesDeployed using Puppet
  7. 7. Node ClassificationAt the moment using different ENCs in different Puppet installationsWill be switching to using hiera to classify nodes
  8. 8. Node ClassificationHostname standard:sto1-puppet-a1<site>-<service>-<pool><poolid>Mainly service fact used to determine the classes a machine should have
  9. 9. Node classification•  fqdn/%{fqdn}•  service/%{service}/%{spenvironment}/%{service_pool}•  service/%{service}/%{service_pool}•  service/%{service}/%{spenvironment}•  service/%{service}•  lsbdistcodename/%{lsbdistcodename}•  domain/%{domain}•  site/%{site}•  spenvironment/%{spenvironment}•  common
  10. 10. Service discoveryUsing SRV records to discover servicesPuppet module dalen-dnsquery can be used to lookup them from inside Puppet manifests.
  11. 11. Service discoverywasd: github.com/spotify/wasdIngests Cassandra rings and DNS records across multiple sites at a regular interval, then exposes information about hosts and services.One can ask what a host does, optionally for which sites; which hosts in a site offer a service; which hosts offer a service for a site.Using a REST API.
  12. 12. Questions?

×