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

Docker on Docker

Jan 21, 2018

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: 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