22

Docker at OpenDNS

  • Upload
    opendns

  • View
    7.131

  • Download
    0

Embed Size (px)

DESCRIPTION

Jessica Gadling is a Software Engineer at OpenDNS. She gave a talk and demo at OpenLate (http://www.meetup.com/OpenLate/) on October 21st, 2014 on why Docker was chosen as a central component in OpenDNS's internal PaaS Quadra.

Citation preview

Page 1: Docker at OpenDNS
Page 2: Docker at OpenDNS

OpenDNS

Page 3: Docker at OpenDNS
Page 4: Docker at OpenDNS
Page 5: Docker at OpenDNS

great idea, let’s get it in prod asap!

Page 6: Docker at OpenDNS

Orrrr… skip the hardware?

Page 7: Docker at OpenDNS

A simple little app?

Dogfood?

Dev Stage

Build?

Prod

Page 8: Docker at OpenDNS

Sharing Servers FTW!

Page 9: Docker at OpenDNS

even great ideas change

Page 10: Docker at OpenDNS

Docker

●●●●●

Page 11: Docker at OpenDNS

Fewer surprises in Prod

●●●

Page 12: Docker at OpenDNS

But can it scale?

$ ssh host1

host1$ docker run -dP myapp

host1$ exit

$ ssh host2

host2$ docker run -dP myapp

host2$ exit

Page 13: Docker at OpenDNS
Page 14: Docker at OpenDNS

Quadra Service Architecture

Page 15: Docker at OpenDNS

Quadra Network Architecture

Page 16: Docker at OpenDNS

Deploying an app in Quadra

$ qq image push myproject/myapp --tags latest

$ docker build -t myproject/myapp

Page 17: Docker at OpenDNS

Running your app

$ qq pool create mypool.myproject \ --instances 4 \ --image myproject/myapp

Page 18: Docker at OpenDNS

Pools, Deployments, LB’s oh my

image: myapp/myproject:latestenv: FOO=bar

instance1 instance2 instance3 instance4

image: myapp/myproject:newbuildenv: FOO=baz

instance5 instance6 instance7 instance8

IP Address: 10.11.12.13

image: quara/http-lb:latestenv: BACKEND_POOL=myapp.myproject

instance1 instance2

Page 19: Docker at OpenDNS

Getting traffic to your app

$ qq deploy create mylb.myproject \ --instances 2 --image quadra/http-lb --env ‘{“BACKEND_POOL”:”myapp.myproject”}’ \ --iptype private

Page 20: Docker at OpenDNS

Upgrade your pool

$ qq deploy create mypool.myproject:deploy2 \ --instances 4 --image myproject/myapp --tag newest_build

Page 21: Docker at OpenDNS

Oh, crap.

$ qq deploy update mypool.myapp:deploy2 \ --instances 0

Page 22: Docker at OpenDNS

DEMO