dockercon sf 2015: docker after launching 1 billion containers

27
Docker After Launching 1 Billion Containers Travis Reeder - @treeder

Upload: docker-inc

Post on 05-Aug-2015

242 views

Category:

Technology


0 download

TRANSCRIPT

Docker After Launching 1 Billion Containers Travis Reeder - @treeder

Docker After Launching 1 Billion Containers

Travis Reeder

What would you say you do here?

IronMQ is an easy-to-use, highly available, message queue as a service

Think SQS, but any cloud (and on-prem)(we copied them)

IronWorker is a massively parallel, multi-language, task processing platform

Think Lambda, but any cloud (and on-prem)(they copied us)

The deets on

1) Write code using ${FAVORITE_LANG} that performs a specific function == your worker

How to use IronWorker

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

2) Upload your code package to IronWorker

iron worker upload --name twilioworker iron/images:ruby-2.1 ruby twilio.rb

3) Queue a task. Or a million tasks.

POST /projects/{Project ID}/tasks?code_name=twilioworker

4) IronWorker executes tasks inside Docker containers across 1000’s of machines

A few million tasks per day==

A few million containers per day

Not so long ago, in this galaxy...

We were using LXC

Single one size fits all container

Components were getting oldRuby 1.9, Node 0.8, Mono 2, Java 1.6, etc..

Hard to upgraderisk breaking customer’s tasks

Hey, look what these whale activists are doing

Solved our main problemCan upgrade and add images easily while being backwards compatible

(hooray, tags)

We provide a bunch of different images to run your code in

You can even BYOI(bring your own image)

Test your code locally in the same Docker image it will run in remotely

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

Thank youTravis Reeder

[email protected] @treeder