Docker on Docker

43
Docker on Docker Add picture here Brett Inman Infrastructure Engineer Marcus Martins Senior Manager - Orchestration Docker Inc Docker Inc

Transcript of Docker on Docker

Page 1: Docker on Docker

Docker on Docker

Add picture here

Brett InmanInfrastructure Engineer

Marcus MartinsSenior Manager - Orchestration

Docker Inc Docker Inc

Page 2: Docker on Docker

Docker on Docker● Where we were

● How we moved to Docker EE

● What we learned

● How we’re making Docker EE better

Page 3: Docker on Docker

SaaS at Docker● Docker Hub● Docker Store● Docker Cloud

> 1B pulls a month

> 500K builds a month

> 5000 requests / sec

Page 4: Docker on Docker

Philosophy● High Availability

● Self-healing

● Self-service

● Build it - own it

Page 5: Docker on Docker

Where we were

Page 6: Docker on Docker

Previous InfrastructureInfra provides:

● Group of Docker Hosts per team● Docker TLS Certs● Centralized logging● Centralized metrics● Service discovery / routing

Page 7: Docker on Docker

How dev used the old setup

Dogfooding Docker since 2013

Page 8: Docker on Docker

How dev used the old setupThe good parts:

● Fully containerized● Docker as the only interface● No SSH access

Page 9: Docker on Docker

How dev used the old setupThe bad parts:

● Multiple deployments tools● Imperative deployments

Page 10: Docker on Docker

How dev used the old setupThe bad parts:

● Hosts as pets● Manual resource management

Page 11: Docker on Docker

What was missing

Page 12: Docker on Docker

Docker EEAdd picture here

● Docker Swarm● User

Management● Resource

Access Control

Page 13: Docker on Docker

How we did it

Page 14: Docker on Docker

Didn’t Change Anything*

Page 15: Docker on Docker

FocusChanged:

● Orchestration

Did not change:

● Code● Containers● Logs● Metrics● Service Discovery● Routing

Page 16: Docker on Docker

Enabling the transition

Page 17: Docker on Docker

Self-service transition● Goal: give service teams control● Use both deployments at will● Swarmkit mesh networking - magic, but:

○ Hard cutover transition for us○ Can’t pull metrics from individual containers

Page 18: Docker on Docker

Our Routing● Registrator● Consul● Consul-template● Haproxy

Page 19: Docker on Docker

Host Port Publishing

--publish mode=host

Enables classic engine behavior of exposing container port on host for Swarm services

Page 20: Docker on Docker

Automation

● Bootstrap lock

● Discovery - Load balancer or tags

Page 21: Docker on Docker

Quorum failure without intervention

Page 22: Docker on Docker

Resources Constraints

Human is no longer the scheduler

Page 23: Docker on Docker
Page 24: Docker on Docker

Reservation=

Limit

docker service create

--reserve-memory 640m --limit-memory 640m

Page 25: Docker on Docker

SystemReservation

docker service create \--name system-reservation \ --reserve-memory 1G \ --limit-memory 1G \--mode global \--init \ubuntu sleep infinity

Page 26: Docker on Docker

Cloud Permissions● IAM is at host level - not container● Each team gets an autoscaling group● Leverage UCP Collections

Page 27: Docker on Docker

New deployment model

Page 28: Docker on Docker

Declarative version: '3.3'services: api: image: example/api:2.1.2 ports: - mode: host protocol: tcp target: 80 environment: DEBUG: False ENVIRONMENT: product ...

● Compose file● Deploy with `docker

stack deploy`● All stacks defined in

source control

Page 29: Docker on Docker

Updates version: '3.2'services: api: image: example/api:2.1.2 deploy: replicas: 20 … update_config: delay: 10s parallelism: 2 order: stop-first max_failure_ratio: 0 failure_action: rollback

● Rolling updates

● Automated rollback

Page 30: Docker on Docker

Access Control version: '3.2'services: api: image: example/api:2.1.2 deploy: replicas: 2 … labels: com.docker.ucp.access.label:/Api …

● Using Docker EE

Collections

Page 31: Docker on Docker

What’s better?Decouple host from application

● Host replacement● Host failures● Build it own it - developers don’t own hosts

Page 32: Docker on Docker

Host Replacement

Three touches:

● Ops● Dev● Ops

Page 33: Docker on Docker

Host Replacement

One touch:

● Ops

Page 34: Docker on Docker

What else?● Easy to scale application

● Standardization

● Docker-native

Page 35: Docker on Docker

Where we are now

Page 36: Docker on Docker

Now● All of Docker SaaS is running on

Docker EE● 80 worker nodes● 60 swarm services● 1000 tasks● Multiple deployments a day

Page 37: Docker on Docker

Improving Docker EE

Page 38: Docker on Docker

Best PracticesTopics including:

● Managing Resources● Provisioning and Automation● Logging and Monitoring

Coming soon to success.docker.com

Page 39: Docker on Docker

Product guidance● In-house customer at scale in production● Architecture● 35+ feature requests ● Host port publishing● More soon!

Page 40: Docker on Docker

Canary● Running every Docker EE Release Candidate

● 50+ bugs filed

● Customer Zero

Page 41: Docker on Docker

Docker EE

with Kubernetes

in production

Page 42: Docker on Docker

Thank you

● Questions?

Page 43: Docker on Docker

Docker EE Hosted Demo

Add picture here

docker.com/trial

● Free 4 Hour Demo● No Servers Required● Full Docker EE

Cluster Access