Making Open Work
May 8–9, 2017: Training & Tutorials
May 10–11, 2017: Conference
Austin, TX

Deploying and scaling applications in containers with Docker

Jerome Petazzoni (Tiny Shell Script LLC), AJ Bowen (Dominant Paradigm Subversion, Inc)
9:00am12:30pm Monday, May 8, 2017
Location: Ballroom F
Level: Intermediate
Average rating: ****.
(4.48, 21 ratings)

Who is this presentation for?

  • Ops who like devs and devs who do ops

Prerequisite knowledge

  • Knowledge of Docker and basic Docker commands (docker run, docker ps, docker stop, etc.) and the Dockerfile syntax (at least RUN, CMD, and EXPOSE commands) (If you have limited Docker knowledge but consider yourself a quick learner, don't hesitate to attend: there will be numerous examples and demos, and you will be able to test them out on your own Docker cluster.)
  • Familiarity with Compose

Materials or downloads needed in advance

  • A laptop with a web browser and a SSH client installed (You won't need to pre-install Docker before the course: you'll be given credentials to connect to a cluster of five nodes for the duration of the workshop, where you will build, ship, and run the demo application.)

What you'll learn

  • Explore the Docker native orchestration abilities provided by SwarmKit, both in theory and in practice
  • Learn to deploy a demo app on your own Docker cluster, gaining firsthand experience in the process


You have installed Docker, you know how to run containers, you have written Dockerfiles to build container images for your applications (or parts of your applications), and perhaps you’re even using Compose to describe your application stack as an assemblage of multiple containers.

But how do you go to production? What modifications are necessary in your code to allow it to run on a cluster? (Spoiler alert: very few, if any.) How does one set up such a cluster anyway? And how do we use it to deploy and scale applications with high-availability requirements? What about logging, metrics, and other production-related requirements?

Jérôme Petazzoni and AJ Bowen answer those questions using tools from the Docker ecosystem, with a strong focus on the native orchestration capabilities available since Docker Engine 1.12, aka “Swarm Mode.”

Topics include:

  • Building and running microservices with Docker Compose
  • Identifying bottlenecks and scaling containers
  • Describing concepts and features of SwarmKit and Swarm Mode
  • Setting up and managing a cluster with Swarm Mode
  • Operating of a local container registry
  • Deploying your microservices app on Swarm
  • Configuring and troubleshooting overlay networks
  • Performing rolling updates
  • Collecting application logs (using ELK as an example)
  • Collecting node and container metrics (using Intel Snap and Prometheus as an example)
  • Managing stateful services with Docker volumes
  • Simplifying the application lifecycle using Compose features and distributed application bundles
  • Scripting the image lifecycle using advanced Compose features

A similar tutorial was presented at OSCON 2016. This tutorial is a vastly updated version taking into account the new, native orchestration features of Docker 1.12 (released shortly after OSCON 2016) and diving deeper into the operational aspects of Docker in production.

Photo of Jerome Petazzoni

Jerome Petazzoni

Tiny Shell Script LLC

Jérôme Petazzoni is a DevOps advocate and international speaker. He was born and raised in France, where he worked on geographic information systems, voice over IP, video streaming, and encoding and started a cloud hosting company back when EC2 wasn’t an Amazon product yet. In California he built and scaled the dotCloud PaaS, which eventually gave birth to Docker. While at Docker, he represented the company at hundreds of conferences and events and trained thousands of engineers to use Docker, Swarm, and Kubernetes. He’s fluent in many languages (mostly programming ones), owns a dozen musical instruments, and can play the theme of Zelda on most of them.

Photo of AJ Bowen

AJ Bowen

Dominant Paradigm Subversion, Inc

AJ Bowen is on a mission to containerize all the things and help others to do the same. In the past, AJ has done technical support, evangelism, and customer and developer advocacy at Gandi. Her other experience includes heavy involvement in the Occupy movement in Kansas City, where she discovered the delightful and complicated world of horizontal organization in groups of passionate people with wildly diverse political perspectives, and humanitarian work in Haiti. AJ doesn’t like being told what to do—or telling others what to do—and is on a constant mission to eliminate unnecessary hierarchy.

Comments on this page are now closed.


Picture of Audra Carter
05/09/2017 5:19pm CDT

Thank you for your feedback, Robert! Would you mind clicking on the yellow button at the top of this page and leaving your feedback there? Thanks so much!

05/09/2017 4:56pm CDT

Really enjoyed the presentation, almost too much information to handle in the given time. Would have been great as an all day session. Didnt have any time for breaks but was able to get through it.