Page 1
Docker After Launching 1 Billion Containers Travis Reeder - @treeder
Page 2
Docker After Launching 1 Billion Containers
Travis Reeder
Page 3
What would you say you do here?
Page 4
IronMQ is an easy-to-use, highly available, message queue as a service
Think SQS, but any cloud (and on-prem)(we copied them)
Page 5
IronWorker is a massively parallel, multi-language, task processing platform
Think Lambda, but any cloud (and on-prem)(they copied us)
Page 7
1) Write code using ${FAVORITE_LANG} that performs a specific function == your worker
How to use IronWorker
Page 8
require ‘twilio-ruby’@client = Twilio::REST::Client.new(IronWorker.payload[‘sid’], IronWorker.payload[‘token’])
# send SMS to a bunch of peopleIronWorker.payload[‘numbers’].each do |num| @client.messages.create(from: '+14159341234', to: num, body: 'Hey there!')end
Twilio Batch SMS Example
Page 9
2) Upload your code package to IronWorker
Page 10
iron worker upload --name twilioworker iron/images:ruby-2.1 ruby twilio.rb
Page 11
3) Queue a task. Or a million tasks.
Page 12
POST /projects/{Project ID}/tasks?code_name=twilioworker
Page 13
4) IronWorker executes tasks inside Docker containers across 1000’s of machines
Page 14
A few million tasks per day==
A few million containers per day
Page 15
Not so long ago, in this galaxy...
Page 16
We were using LXC
Page 17
Single one size fits all container
Page 18
Components were getting oldRuby 1.9, Node 0.8, Mono 2, Java 1.6, etc..
Page 20
Hard to upgraderisk breaking customer’s tasks
Page 21
Hey, look what these whale activists are doing
Page 22
Solved our main problemCan upgrade and add images easily while being backwards compatible
(hooray, tags)
Page 23
We provide a bunch of different images to run your code in
Page 24
You can even BYOI(bring your own image)
Page 25
Test your code locally in the same Docker image it will run in remotely
Page 26
Other Things We Use Docker For
● Developmento Same environment for dev, CI and production
● Deployment (CoreOS)o Everything uses Docker now including our API’s, our UI, etc.
● On-premise packaging / deployment
Page 27
Thank youTravis Reeder
[email protected] @treeder