Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No More Servers

Slide 6

Slide 6 text

Big Computer

Slide 7

Slide 7 text

Containers

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Cloud Computing

Slide 10

Slide 10 text

Containers + Cloud Computing

Slide 11

Slide 11 text

= Internet Sized Computer

Slide 12

Slide 12 text

How to use an Internet Sized Computer

Slide 13

Slide 13 text

Internet Sized Computers Suck

Slide 14

Slide 14 text

• Big chunks of your computer might disappear for no reason • Your data might disappear • Your processes sometimes might not be able to communicate with each other

Slide 15

Slide 15 text

• Some bits of your computer might be on the other side of the world • Some people might be man-in-the-middling bits of your computer

Slide 16

Slide 16 text

How to run a process

Slide 17

Slide 17 text

$ echo hello world

Slide 18

Slide 18 text

fork-exec

Slide 19

Slide 19 text

$ docker run ubuntu echo hello world

Slide 20

Slide 20 text

POST /containers/create HTTP/1.1 { "Image": “ubuntu", "Cmd": ["echo", "hello", “world"] }

Slide 21

Slide 21 text

$ docker -H anotherhost.oscorp.com \ run ubuntu echo hello world

Slide 22

Slide 22 text

docker client | swarm / \ node1 node2 | | docker engine docker engine

Slide 23

Slide 23 text

$ docker -H myswarm.oscorp.com \ run ubuntu echo hello world

Slide 24

Slide 24 text

Docker in the Cloud • IBM Bluemix Containers • Joyent SmartDataCenter

Slide 25

Slide 25 text

What can you do with it?

Slide 26

Slide 26 text

Find things that assume computers are slow to start and can’t be thrown away

Slide 27

Slide 27 text

$ docker run myapp ./test.sh

Slide 28

Slide 28 text

$ ls tests/**/*_test.py | \ parallel docker run myapp ./test.sh

Slide 29

Slide 29 text

$ ls *.mp4 | parallel “cat {} | docker run jrottenberg/ffmpeg ... > out/{}”

Slide 30

Slide 30 text

>>> import dockerrun >>> client = dockerrun.from_env() >>> client.run("ubuntu", "echo hello world") 'hello world\n'

Slide 31

Slide 31 text

>>> client.run(“myapp", "tasks/reticulate-splines", wait=False) Infinite task queues

Slide 32

Slide 32 text

How to run an application • Tooling is still in its infancy • Look into Compose, Kubernetes, Mesos

Slide 33

Slide 33 text

The future • Networking and storage • Scaling down

Slide 34

Slide 34 text

What if it’s only a second to spin a machine up or down? We can start to have machine per web request, or machine per social interaction (IM, tweet or hug). – Timothy Fitz, 2009 http://timothyfitz.com/2009/02/14/cloud-elasticity/

Slide 35

Slide 35 text

Credits: https://www.flickr.com/photos/taylar/4616771574/ Thanks! @bfirsh [email protected]