• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Docker at Spotify - Dockercon14
 

Docker at Spotify - Dockercon14

on

  • 16,442 views

Docker at Spotify by Rohan Singh at dockercon 14

Docker at Spotify by Rohan Singh at dockercon 14

Statistics

Views

Total Views
16,442
Views on SlideShare
743
Embed Views
15,699

Actions

Likes
9
Downloads
45
Comments
0

11 Embeds 15,699

http://blog.docker.com 15520
https://twitter.com 112
http://plus.url.google.com 39
https://blog.docker.com 15
http://translate.googleusercontent.com 4
http://www.google.co.jp 2
http://cafe.naver.com 2
http://www.google.com 2
http://webcache.googleusercontent.com 1
http://news.google.com 1
http://test.voxgov.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Docker at Spotify - Dockercon14 Docker at Spotify - Dockercon14 Presentation Transcript

    • Docker at Spotify ! Rohan Singh @rohansingh
    • Spotify “Music for every moment” ! 40+ million active users ! 20+ million songs available (we’re in 55+ countries, differs by market) ! Live in the US for 2 years 2
    • What are we working with? ! 100+ distinct backend services ! 5000+ production servers in 4 sites worldwide ! Almost 300 servers per ops engineer 3
    • Deployment at Spotify 4
    • Build Debian packages ! Requisition new hardware ! Use combination of Puppet and internal tooling (deployify) 5
    • old way: SSH to a bunch of machines, apt-get install || upgrade ! deployify: Uses fabric, which just SSH’s, runs apt-get install || upgrade 6
    • What’s wrong with that? 7
    • Requisitioning new hardware is slow ! Hardware utilization is low ! We’ve automated and improved, but still too slow 8
    • Deployments often fail… ! …though usually only partially 9
    • ! Machines get denormalized easily 10
    • Debian packaging is its own special hell So many damn files! ! debhelper ! Distro & version specific ! apt-get update 11
    • What do we want? 12
    • Deployments that are: ! Repeatable ! Straightforward ! Fault-tolerant 13
    • Why Docker? ! It gives us “repeatable”, right out of the box ! ! And it’s fairly straightforward, too! 14
    • Repeatability? ! ! The code you test isn’t necessarily the code that runs in prod 15
    • Repeatability — Docker ! Build an image ! Run tests against the image ! Run the tested image in prod 16
    • Straightforward ! Just one Dockerfile ! Pretty simple syntax ! Immutable images — easy to reason about 17
    • Fault-tolerance? Even if your code is perfect, deployments might fail ! Puppet or Debian repos are down ! Network issues ! The machine dies 18
    • Fault-tolerance — Docker Just one thing has to work — pulling & running an image ! If it fails, just try again ! No machines left in weird states* ! ! *(in theory) 19
    • What more do we need? 20
    • Deploying Docker containers across our entire fleet of servers ! Some way to deal with Docker or container failures ! That’s pretty much it 21
    • Looking around for a Docker platform Several really feature-full offerings ! Pretty opinionated and all-encompassing ! All we need is reliably deploying containers to a fleet of Docker hosts 22
    • Helios 23
    • Makes sure your containers are deployed & running exactly where you want them… ! …and that’s pretty much it ! ! github.com/spotify/helios 24
    • What’s in the box? Helios master frontend that you talk to ! Helios agent runs alongside each Docker instance ! Zookeeper ! Straightforward CLI 25
    • How does it work? Create a job — tell Helios which Docker image to deploy ! Deploy the job — tell Helios where to run the Docker containers 26
    • See it in action 27
    • What’s next? 28
    • Helios is just the beginning ! Brought up plenty of Helios+Docker agents in our private cloud for our devs ! Integrated Helios with JUnit — write JUnit tests run against Docker containers 29
    • Dockerized integration tests 30
    • This week — first Helios+Docker-based service in production ! ! In the future — Containerizing more of our infrastructure 31
    • Give it a go Open source: github.com/spotify/helios ! Try it out: git clone https://github.com/spotify/helios.git && cd helios && vagrant up ! ! ! Come play with us (spotify.com/jobs) 32