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

DockerCon SF 2015: Docker After Launching 1 Billion Containers

Aug 05, 2015

Download

Technology

Docker, Inc.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: DockerCon SF 2015: Docker After Launching 1 Billion Containers

Docker After Launching 1 Billion Containers Travis Reeder - @treeder

Page 2: DockerCon SF 2015: Docker After Launching 1 Billion Containers

Docker After Launching 1 Billion Containers

Travis Reeder

Page 3: DockerCon SF 2015: Docker After Launching 1 Billion Containers

What would you say you do here?

Page 4: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

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

Page 6: DockerCon SF 2015: Docker After Launching 1 Billion Containers

The deets on

Page 7: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

How to use IronWorker

Page 8: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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: DockerCon SF 2015: Docker After Launching 1 Billion Containers

2) Upload your code package to IronWorker

Page 10: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

Page 11: DockerCon SF 2015: Docker After Launching 1 Billion Containers

3) Queue a task. Or a million tasks.

Page 12: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

Page 13: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

Page 14: DockerCon SF 2015: Docker After Launching 1 Billion Containers

A few million tasks per day==

A few million containers per day

Page 15: DockerCon SF 2015: Docker After Launching 1 Billion Containers

Not so long ago, in this galaxy...

Page 16: DockerCon SF 2015: Docker After Launching 1 Billion Containers

We were using LXC

Page 17: DockerCon SF 2015: Docker After Launching 1 Billion Containers

Single one size fits all container

Page 18: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

Page 19: DockerCon SF 2015: Docker After Launching 1 Billion Containers
Page 20: DockerCon SF 2015: Docker After Launching 1 Billion Containers

Hard to upgraderisk breaking customer’s tasks

Page 21: DockerCon SF 2015: Docker After Launching 1 Billion Containers

Hey, look what these whale activists are doing

Page 22: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

(hooray, tags)

Page 23: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

Page 24: DockerCon SF 2015: Docker After Launching 1 Billion Containers

You can even BYOI(bring your own image)

Page 25: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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

Page 26: DockerCon SF 2015: Docker After Launching 1 Billion Containers

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: DockerCon SF 2015: Docker After Launching 1 Billion Containers

Thank youTravis Reeder

[email protected] @treeder