Workshop: Containers in production with Docker Swarm

Location:

Level: 
Advanced
9:00am - 4:00pm

Prerequisites

You should be familiar with Docker and basic Docker commands (docker run, docker ps, docker stop...) as well as the Dockerfile syntax (at least RUN, CMD, and EXPOSE commands). Ideally, you should have experimented with Compose. 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!

You won't need to pre-install Docker before the course: each student will be given credentials to connect to an individual cluster of virtual machines. So all you need is a computer with a SSH client!

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 you are using Compose to describe your application stack.

Your app is running beautifully on your local Docker Engine, but how do you take it to production? How do we go from single-node setup to scalable, highly-available deployments? How do we address production-related requirements like logging, backups, remote access, security upgrades?

In this workshop, we will show how to answer those questions using tools from the Docker ecosystem:

  • deploying and configuring clusters with the help of Docker Machine;
  • setting up multi-host networking between containers using Docker's overlay network driver;
  • demonstrating the use of storage plugins and logging drivers;
  • consolidating a cluster of nodes with Docker Swarm;
  • implementing load balancing and service discovery;
  • and much more!

The whole workshop will use "real-world" demo applications with web frontends, web services, background workers, and stateful data stores, in order to cover a wide spectrum of use cases.

Outline:

  • Pre-requirements
  • VM environment
  • Our sample application
  • Running services independently
  • Running the whole app on a single node
  • Identifying bottlenecks
  • Measuring latency under load
  • Scaling HTTP on a single node
  • Put a load balancer on it
  • Connecting to containers on other hosts
  • Abstracting remote services with ambassadors
  • Various considerations about ambassadors
  • Docker for ops
  • Backups
  • Logs
  • Security upgrades
  • Network traffic analysis
  • Dynamic orchestration
  • Hands-on Swarm
  • Deploying Swarm
  • Cluster discovery
  • Building our app on Swarm
  • Network plumbing on Swarm
  • Going further

Other Workshops:

Day: Thursday [Full Day]
Day: Thursday [Full Day]
Day: Friday [Full Day]
Day: Friday [Full Day]

Tracks

Covering innovative topics

Monday, 7 March

Tuesday, 8 March

Wednesday, 9 March