Wrapping up the series on Docker with some jumping off points. You can watch the webinar here: https://cloudacademy.com/webinars/docker-webinar-series-production-beyond-34/
Docker: Production &
First, A Poll
Which best describes you?
Cover recurring questions from past sessions
Remaining time for all your questions
Hi! I’m Adam Hawkins
• Site Reliability Engineering Team Lead at Saltside
• Manages ~350 containers in production
• 2+ years of Docker experience
• “Introduction to Docker” course lecturer
What is Docker?
• Application agnostic container runtime
• Runs an isolated process in a container on a single kernel
• Different than virtualization
What can I do with Docker?
• Creating portable development environment
• Standardizing infrastructure in polygot teams
• Containerize your build system
• Deliver CLI software
• Build large scale distributed systems
How do I use Docker in development?
• Use docker-compose to model your application
• Use docker-machine to play around with docker infrastructure
• Use docker to test different databases say (mongo:2.8 vs
How do I use Docker in production?
• Choose your deployment target (a hosted service such as
Hyper.sh, roll our own, or some orchestration tool)
• Configure health checks (either in the Dockerfile or via your
• Integrate your target with your metric collection tools (Most tools
have integrations with the docker daemon or orchestration tool)
• Connect your CI system to trigger deployments
What are the pros/cons?
• [pro] offers flexibility to application developers
• [pro] increase development/production parity
• [pro] gives a platform to standardize infrastructure
• [con] changing rapidly; Docker Inc. making big changes
• [con] increases complexity
• [pro] prepares organizations for a containerized future
What do you recommend?
• Start with a PoC in a development environment
• Use docker-compose as much as possible
• Use Google Container Engine (Hosted Kubernetes) for your production environment
• Use the official images as much as possible; avoid creating your own custom base
• Prefer one Dockerfile per project
• Ruthless stick to 12 Factor app principles
• Bake containers into your process at all stages for the biggest benefit
tl;dr: it’s all about orchestration
Into the Future
• Docker Datacenter 2.0
• Log drivers
• Alternate container runtimes (rkt or runC)