SlideShare a Scribd company logo
1 of 37
Download to read offline
Automating Docker
Enterprise:
Hands-off Install
and Upgrade
Sr. Systems Specialist
Alm. Brand
Loke N. Johannessen
Docker Captain, Software Architect
Alm. Brand
Sune Keller
Manager, Infrastructure
Docker
Brett Inman
Why?
Scale Efficiency Infra-as-code Reproducibility
Reliability SleepCertainty
Areas of Automation
Provisioning
Infrastructure
Docker
Engine
Universal
Control Plane
Docker
Trusted Registry
Installation
and Upgrade
Installation, Upgrade,
and Node
Replacement
Installation, Upgrade,
and Node
Replacement
Not the only ways!
Two Ways
Where We Started
WE STARTED SETTING UP
A DOCKER CLUSTER
• Handcrafted VM’s with no visibility wrt. versions
• Dependency on specific colleagues
• Rudimentary automation with Puppet
• More handicraft to avoid automation tools and
scripts from e.g. upgrading all nodes at once
Alm. Brand
It all started
back in 1792, …
and then, in 2015:
Docker
2016
Hub Built
Moved
to AWS
• Individual engines in ASG’s
• Deployed Engine using Ansible
• Developers deployed code
using Docker Engine TLS
certificate + their own tools
• No automatic replacement –
HA only
2015
2014
Provisioning
Infrastructure
Alm. Brand
VMDK
Template
(Packer)
Terraform
vSphere
Spread out over
multiple data
centers
vCenter protects
snowflakes:
managers & DTR
...
vCenter
UCP
Managers
DTR
Workers
Non-prod
Workers
Prod
Workers
No
Autoscaling,
but GitLab CI
VMware handled
storage
IP’s
pre-allocated for
LB
...
Ansible
Docker
AMI
(Packer)
Cloudformation
EC2
RDS SQS ...
IAM
UCP
Managers
DTR
Workers
Hub
Workers
Hub K8s
Workers
Autoscaling
Groups
S3 ELB
...
Saltstack
Store
Workers
...
Comparison - Ansible vs Salt
Ansible Salt
• Agentless
• Suitable as pipeline
component
• Gentle learning
curve
• Drift correction
requires re-run
• Master/Minion
• Nodes configured
asynchronously
• Constant drift
correction
• Master HA necessary
• Conflict management
Install and upgrade
Docker Engine
Install base stack of
Swarm services
*Only if Engine or
other OS packages
changed
Alm. Brand
Change Engine/UCP/
DTR version in GitLab
1 2 3 4 5 6
Wait for new VM
template built
with Packer*
Switch VM template
for one node at a time
Run Terraform
to destroy/
create node
Run Ansible playbooks
for each node
1) Wait for business
workloads to leave
node
2) Engine version
determined by
VM template
3) Install or join UCP and
DTR as needed
4) Configure LDAP,
teams, grants,
collections
5) Wait for UCP
to reconcile
Docker
Each AutoScaling Group
Change Engine
version in Salt
1 2 3
Salt cron on
node – 5 min
If correct Engine
version not installed…
Release lock
4 5 6
Get a lock in
Consul for that
ASG
Run engine install script
1) Install Docker Engine
2) Start Docker
3) Wait for Engine and
UCP to respond
4) Sleep 30 – reduce task
churn
Get
Lock
Install
Script
Release Lock
Lock Wait
Comparison - Engine Upgrade
Replacement In-place
• Container like
(cruft is removed
when replaced)
• Atomic
• Migration of
running services
• “Slow”
• Fast
• One operator
step
• Timing complexity
• Risk
Install, upgrade, and
node replacement
Universal
Control Plane
UCP Install / Replace
Node(s)
Launch
Swarm Init UCP Install Confirm &
Configure
UCP Upgrade
Change
Version
Get Images UCP
Upgrade
Confirm
Comparison - Automation
Centralized
/
Triggered
Decentralized
/
Continuous
• Full overview of cluster
• Failures stops the
pipeline
• Ability to re-run failed
tasks
• Single pipeline approach
• Started by a
human/schedule
• Non-reactive (but
can be)
• Automatic
replacement
• Drift correction
• Complexity of order
Init
• Engineer starts pipeline in
GitLab
• Terraform creates VMs
• Ansible inventory generated by
TF
• TF launches Ansible playbooks,
waits for completion
Create Swarm
• Check nodes from inventory for
existing Swarm managers
• If none found, docker swarm init
• If no UCP containers (first node):
docker run docker/ucp
install
• Wait for ucp-reconcile container to
complete
• For other UCP manager nodes, run
docker swarm join
• Again, wait for ucp-reconcile
container to complete (on each
manager)
• Configure LDAP
Install UCP
Alm. Brand - UCP Install/Replace
Alm. Brand - UCP Workers
Organize LabelJoin
• Run docker swarm join
• Wait for ucp-reconcile container
to complete
In Ansible, based on inventory metadata,
call UCP API to:
• Create Collections
• Create Teams
• Create Grants
• Adds Swarm node labels, including
assigning to a Collection, which
usually corresponds to a deployment
stage
Alm. Brand - UCP Upgrade
Plan RunPrep
• Change UCP version in GitLab
• If upgrading Docker Engine,
change its version too
Produces new VM template
Pre-pulls UCP/DTR images
• Engineer starts pipeline and inspects
TF plan
• If no unexpected actions in plan,
engineer continues pipeline to run
upgrade from Ansible
docker run docker/ucp upgrade
Docker - UCP Install/Replace
Managers Launch Create Swarm Install UCP
• Autoscaling group launches
new or replacement Manager
node
• Salt configures Engine
• Consul lock infra/swarm/manager
• If no response from manager ELB:
docker swarm init
encrypt swarm tokens
put tokens in Consul k/v store
• Otherwise:
get manager token and decrypt
docker swarm join
• Wait for swarm status “Active”
• Consul lock infra/swarm/ucp
• If no UCP containers (first node):
Wait for X swarm managers
docker run docker/ucp install
• UCP scheduled on every node by
Swarm
UCP Upgrade
Prep Pull Run
• Change UCP version in Salt • Salt pulls UCP images
Necessary because we run private
pre-release images
Not necessary for customers
• Wait until every node has all UCP
images
• Engineer runs “docker run
docker/ucp:$version upgrade”
• Monitor status - “docker service
inspect ucp-agent”
Install, upgrade, and
node replacement
Docker Trusted
Registry
DTR Install / Replace
Prep Install/Join Configure Confirm
DTR Upgrade
Change
Version
Get Images DTR
Upgrade
Confirm
Alm. Brand - DTR install
Configure PopulateInstall
• If no DTR containers found (first
time):
Run docker/dtr install
• Otherwise:
Run docker/dtr join
• Install CVE file and enable security
scanning (this is also done nightly)
• Load and push platform‐enabling
images
GitLab Runner
Registrator
Consul Agent
...
Alm. Brand - DTR Upgrade/Replace
Plan RunPrep
• Change DTR version in GitLab
• If upgrading Docker Engine,
change its version too
Produces new VM template
Pre-pulls UCP/DTR images
• Engineer starts pipeline and inspects
TF plan
• If no unexpected actions in plan,
engineer continues pipeline to run
upgrade from Ansible
docker run docker/dtr upgrade
Docker - DTR Install
Wait
Sleep until UCP
containers
present on node
Lock
• Get consul lock
• Confirm no other
DTR replicas
Install
docker run
docker/dtr install
…
Configure
• Set S3 storage
• Install web
certificates
• Add replica id
and IP in
Consul
DTR Join/Replace
Check
Replicas
• Get k/v list
from Consul
• Check /health
endpoint
Remove Dead
Replicas
Join
docker run
docker/dtr join
…
Track
Add replica id
and IP in Consul
docker node rm
docker run
docker/dtr remove
More ideas for
automating Docker EE
Moving Forward
Service Deployment Automation
“Source of truth” for Swarm and Kube services
Push or pull?
Git repo Webhook Deploy
Git repo Kube Cronjob Deploy
Client
bundle?
Application
secrets?
Reverse Uptime
Ensures a limited
amount of cruft left by
long-running
processes
Ensures packages
are at most one or
two weeks out of
date
Run upgrades
unattended on a
weekly or bi-weekly
schedule
Thank you! HALLWAY TRACK
Wednesday December 5th
at 13:00
hallwaytrack.dockercon.com
/topics/30485/
Take A Breakout Survey
Access your session and/or workshop surveys for the conference at any time by tapping the Sessions
link on the navigation menu or block on the home screen.
Find the session/workshop you attended and tap on it to view the session details. On this page, you will
find a link to the survey.

More Related Content

What's hot

Continuous Integration with Docker on AWS
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWSAndrew Heifetz
 
Docker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker, Inc.
 
Docker Container As A Service - March 2016
Docker Container As A Service - March 2016Docker Container As A Service - March 2016
Docker Container As A Service - March 2016Patrick Chanezon
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For DevelopmentLaura Frank Tacho
 
Docker storage designing a platform for persistent data
Docker storage designing a platform for persistent dataDocker storage designing a platform for persistent data
Docker storage designing a platform for persistent dataDocker, Inc.
 
Docker for developers
Docker for developersDocker for developers
Docker for developersandrzejsydor
 
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...Docker, Inc.
 
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16 What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16 Docker, Inc.
 
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCarlos Sanchez
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!Docker, Inc.
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAditya Konarde
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresDocker, Inc.
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker, Inc.
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discoveryDocker, Inc.
 
DCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDocker, Inc.
 

What's hot (20)

Continuous Integration with Docker on AWS
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWS
 
Docker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT Infrastructure
 
Docker Container As A Service - March 2016
Docker Container As A Service - March 2016Docker Container As A Service - March 2016
Docker Container As A Service - March 2016
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For Development
 
Docker Swarm scheduling in 1.12
Docker Swarm scheduling in 1.12Docker Swarm scheduling in 1.12
Docker Swarm scheduling in 1.12
 
Docker storage designing a platform for persistent data
Docker storage designing a platform for persistent dataDocker storage designing a platform for persistent data
Docker storage designing a platform for persistent data
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
 
7+1 myths of the new os
7+1 myths of the new os7+1 myths of the new os
7+1 myths of the new os
 
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16 What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
 
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup Slides
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discovery
 
DCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDCSF19 Containers for Beginners
DCSF19 Containers for Beginners
 

Similar to Automating Docker Enterprise installation and upgrades

Clocker: Managing Container Networking and Placement
Clocker: Managing Container Networking and PlacementClocker: Managing Container Networking and Placement
Clocker: Managing Container Networking and PlacementDocker, Inc.
 
Clocker - The Docker Cloud Maker
Clocker - The Docker Cloud MakerClocker - The Docker Cloud Maker
Clocker - The Docker Cloud MakerAndrew Kennedy
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and dockerShapeBlue
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introductionw_akram
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container SecuritySuraj Khetani
 
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Arthur Berezin
 
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...Docker, Inc.
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Dockernklmish
 
Использование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийИспользование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийVitebsk Miniq
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerLaura Frank Tacho
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Simon Storm
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...Puppet
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)Amazon Web Services
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
Dockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDaniel Krook
 
Dockerin10mins
Dockerin10minsDockerin10mins
Dockerin10minsDawood M.S
 

Similar to Automating Docker Enterprise installation and upgrades (20)

Clocker: Managing Container Networking and Placement
Clocker: Managing Container Networking and PlacementClocker: Managing Container Networking and Placement
Clocker: Managing Container Networking and Placement
 
Clocker - The Docker Cloud Maker
Clocker - The Docker Cloud MakerClocker - The Docker Cloud Maker
Clocker - The Docker Cloud Maker
 
Docker
DockerDocker
Docker
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker and CloudStack
Docker and CloudStackDocker and CloudStack
Docker and CloudStack
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container Security
 
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
 
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
141204 upload
141204 upload141204 upload
141204 upload
 
Использование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийИспользование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложений
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
Dockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDockerizing OpenStack for High Availability
Dockerizing OpenStack for High Availability
 
Dockerin10mins
Dockerin10minsDockerin10mins
Dockerin10mins
 

More from Docker, Inc.

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSDocker, Inc.
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXDocker, Inc.
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeDocker, Inc.
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDocker, Inc.
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubDocker, Inc.
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices WorldDocker, Inc.
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...Docker, Inc.
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with DockerDocker, Inc.
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeDocker, Inc.
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryDocker, Inc.
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Docker, Inc.
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog ScaleDocker, Inc.
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels Docker, Inc.
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelDocker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSDocker, Inc.
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...Docker, Inc.
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDocker, Inc.
 
Sharing is Caring: How to Begin Speaking at Conferences
Sharing is Caring: How to Begin Speaking at ConferencesSharing is Caring: How to Begin Speaking at Conferences
Sharing is Caring: How to Begin Speaking at ConferencesDocker, Inc.
 

More from Docker, Inc. (20)

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINX
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and Compose
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker Hub
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm Architecture
 
Sharing is Caring: How to Begin Speaking at Conferences
Sharing is Caring: How to Begin Speaking at ConferencesSharing is Caring: How to Begin Speaking at Conferences
Sharing is Caring: How to Begin Speaking at Conferences
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Automating Docker Enterprise installation and upgrades

  • 2. Sr. Systems Specialist Alm. Brand Loke N. Johannessen Docker Captain, Software Architect Alm. Brand Sune Keller Manager, Infrastructure Docker Brett Inman
  • 3. Why? Scale Efficiency Infra-as-code Reproducibility Reliability SleepCertainty
  • 4. Areas of Automation Provisioning Infrastructure Docker Engine Universal Control Plane Docker Trusted Registry Installation and Upgrade Installation, Upgrade, and Node Replacement Installation, Upgrade, and Node Replacement
  • 5. Not the only ways! Two Ways
  • 7. WE STARTED SETTING UP A DOCKER CLUSTER • Handcrafted VM’s with no visibility wrt. versions • Dependency on specific colleagues • Rudimentary automation with Puppet • More handicraft to avoid automation tools and scripts from e.g. upgrading all nodes at once Alm. Brand It all started back in 1792, … and then, in 2015:
  • 8. Docker 2016 Hub Built Moved to AWS • Individual engines in ASG’s • Deployed Engine using Ansible • Developers deployed code using Docker Engine TLS certificate + their own tools • No automatic replacement – HA only 2015 2014
  • 10. Alm. Brand VMDK Template (Packer) Terraform vSphere Spread out over multiple data centers vCenter protects snowflakes: managers & DTR ... vCenter UCP Managers DTR Workers Non-prod Workers Prod Workers No Autoscaling, but GitLab CI VMware handled storage IP’s pre-allocated for LB ... Ansible
  • 11. Docker AMI (Packer) Cloudformation EC2 RDS SQS ... IAM UCP Managers DTR Workers Hub Workers Hub K8s Workers Autoscaling Groups S3 ELB ... Saltstack Store Workers ...
  • 12. Comparison - Ansible vs Salt Ansible Salt • Agentless • Suitable as pipeline component • Gentle learning curve • Drift correction requires re-run • Master/Minion • Nodes configured asynchronously • Constant drift correction • Master HA necessary • Conflict management
  • 14. Install base stack of Swarm services *Only if Engine or other OS packages changed Alm. Brand Change Engine/UCP/ DTR version in GitLab 1 2 3 4 5 6 Wait for new VM template built with Packer* Switch VM template for one node at a time Run Terraform to destroy/ create node Run Ansible playbooks for each node 1) Wait for business workloads to leave node 2) Engine version determined by VM template 3) Install or join UCP and DTR as needed 4) Configure LDAP, teams, grants, collections 5) Wait for UCP to reconcile
  • 15. Docker Each AutoScaling Group Change Engine version in Salt 1 2 3 Salt cron on node – 5 min If correct Engine version not installed… Release lock 4 5 6 Get a lock in Consul for that ASG Run engine install script 1) Install Docker Engine 2) Start Docker 3) Wait for Engine and UCP to respond 4) Sleep 30 – reduce task churn Get Lock Install Script Release Lock Lock Wait
  • 16. Comparison - Engine Upgrade Replacement In-place • Container like (cruft is removed when replaced) • Atomic • Migration of running services • “Slow” • Fast • One operator step • Timing complexity • Risk
  • 17. Install, upgrade, and node replacement Universal Control Plane
  • 18. UCP Install / Replace Node(s) Launch Swarm Init UCP Install Confirm & Configure
  • 20. Comparison - Automation Centralized / Triggered Decentralized / Continuous • Full overview of cluster • Failures stops the pipeline • Ability to re-run failed tasks • Single pipeline approach • Started by a human/schedule • Non-reactive (but can be) • Automatic replacement • Drift correction • Complexity of order
  • 21. Init • Engineer starts pipeline in GitLab • Terraform creates VMs • Ansible inventory generated by TF • TF launches Ansible playbooks, waits for completion Create Swarm • Check nodes from inventory for existing Swarm managers • If none found, docker swarm init • If no UCP containers (first node): docker run docker/ucp install • Wait for ucp-reconcile container to complete • For other UCP manager nodes, run docker swarm join • Again, wait for ucp-reconcile container to complete (on each manager) • Configure LDAP Install UCP Alm. Brand - UCP Install/Replace
  • 22. Alm. Brand - UCP Workers Organize LabelJoin • Run docker swarm join • Wait for ucp-reconcile container to complete In Ansible, based on inventory metadata, call UCP API to: • Create Collections • Create Teams • Create Grants • Adds Swarm node labels, including assigning to a Collection, which usually corresponds to a deployment stage
  • 23. Alm. Brand - UCP Upgrade Plan RunPrep • Change UCP version in GitLab • If upgrading Docker Engine, change its version too Produces new VM template Pre-pulls UCP/DTR images • Engineer starts pipeline and inspects TF plan • If no unexpected actions in plan, engineer continues pipeline to run upgrade from Ansible docker run docker/ucp upgrade
  • 24. Docker - UCP Install/Replace Managers Launch Create Swarm Install UCP • Autoscaling group launches new or replacement Manager node • Salt configures Engine • Consul lock infra/swarm/manager • If no response from manager ELB: docker swarm init encrypt swarm tokens put tokens in Consul k/v store • Otherwise: get manager token and decrypt docker swarm join • Wait for swarm status “Active” • Consul lock infra/swarm/ucp • If no UCP containers (first node): Wait for X swarm managers docker run docker/ucp install • UCP scheduled on every node by Swarm
  • 25. UCP Upgrade Prep Pull Run • Change UCP version in Salt • Salt pulls UCP images Necessary because we run private pre-release images Not necessary for customers • Wait until every node has all UCP images • Engineer runs “docker run docker/ucp:$version upgrade” • Monitor status - “docker service inspect ucp-agent”
  • 26. Install, upgrade, and node replacement Docker Trusted Registry
  • 27. DTR Install / Replace Prep Install/Join Configure Confirm
  • 29. Alm. Brand - DTR install Configure PopulateInstall • If no DTR containers found (first time): Run docker/dtr install • Otherwise: Run docker/dtr join • Install CVE file and enable security scanning (this is also done nightly) • Load and push platform‐enabling images GitLab Runner Registrator Consul Agent ...
  • 30. Alm. Brand - DTR Upgrade/Replace Plan RunPrep • Change DTR version in GitLab • If upgrading Docker Engine, change its version too Produces new VM template Pre-pulls UCP/DTR images • Engineer starts pipeline and inspects TF plan • If no unexpected actions in plan, engineer continues pipeline to run upgrade from Ansible docker run docker/dtr upgrade
  • 31. Docker - DTR Install Wait Sleep until UCP containers present on node Lock • Get consul lock • Confirm no other DTR replicas Install docker run docker/dtr install … Configure • Set S3 storage • Install web certificates • Add replica id and IP in Consul
  • 32. DTR Join/Replace Check Replicas • Get k/v list from Consul • Check /health endpoint Remove Dead Replicas Join docker run docker/dtr join … Track Add replica id and IP in Consul docker node rm docker run docker/dtr remove
  • 33. More ideas for automating Docker EE Moving Forward
  • 34. Service Deployment Automation “Source of truth” for Swarm and Kube services Push or pull? Git repo Webhook Deploy Git repo Kube Cronjob Deploy Client bundle? Application secrets?
  • 35. Reverse Uptime Ensures a limited amount of cruft left by long-running processes Ensures packages are at most one or two weeks out of date Run upgrades unattended on a weekly or bi-weekly schedule
  • 36. Thank you! HALLWAY TRACK Wednesday December 5th at 13:00 hallwaytrack.dockercon.com /topics/30485/
  • 37. Take A Breakout Survey Access your session and/or workshop surveys for the conference at any time by tapping the Sessions link on the navigation menu or block on the home screen. Find the session/workshop you attended and tap on it to view the session details. On this page, you will find a link to the survey.