@lukeb0nd
http://yld.io
ContainerCamp 2015
San Francisco
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
Problems in building a Docker PaaS
Deep dive into service discovery, using Paz as a reference point
Along the way discuss the Docker ecosystem, and Docker networking in particular
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
@lukeb0nd
luke@yld.io
Some problems that may need solving in a Docker PaaS:
Workflow
Scheduling
Service Discovery
Routing
DNS
Zero-downtime deployments
ContainerCamp San Francisco 2015
@lukeb0nd
luke@yld.io
Service A needs to speak to service B.
Best explained with an example...
ContainerCamp San Francisco 2015
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
Requirements:
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
Sounds like a job for DNS, right?
Traditional* DNS has a few limitations:
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
IMHO two options:
The latter is what Paz does, but I'll talk about both.
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
Logical View
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
@lukeb0nd
http://yld.io
ContainerCamp San Francisco 2015
frontend http-in
bind *:80
acl subdom_myservice hdr(host) -i myservice.paz hdr(host) -i myservice.mydomain.com
use_backend backend-myservice if subdom_myservice
acl subdom_paz-web hdr(host) -i paz-web.paz hdr(host) -i paz-web.mydomain.com
use_backend backend-paz-web if subdom_paz-web
backend backend-myservice
balance roundrobin
server myservice-v1-1 10.131.238.241:49177
server myservice-v1-2 10.131.238.242:49165
backend backend-paz-web
server paz-web 10.131.238.233:49164
HAProxy config example excerpt:
This gets written by Confd.
Confd watches Etcd directories and renders values against a template into the HAProxy config file.
@lukeb0nd
luke@yld.io
ContainerCamp San Francisco 2015
@lukeb0nd
luke@yld.io
ContainerCamp San Francisco 2015
@lukeb0nd
luke@yld.io
ContainerCamp San Francisco 2015
@lukeb0nd
luke@yld.io
ContainerCamp San Francisco 2015