Docker makes it incredibly easy to run software. A single call to
docker run can startup just about anything. In seconds you go from not even having the software installed, to up and running. Combine this with
docker-compose and you can easily launch complex infrastructure and applications at the push of a button. For example, I can launch things like an ELK stack, a LAMP stack, or a TeamCity cluster in seconds.
Docker revolutionized launching software on a single machine. But, what happens when we move beyond the resources available on a single machine? Do we lose the benefits when we move to deploying software across a cluster of machines?
Thanks to Docker's new integrated Swarm Mode, launching software across a cluster of machines is just as easy as a single machine. In this workshop you'll learn how to setup a swarm and how easy it is to run and manage software across a cluster of machines. We'll cover these topics and more:
- Creating a swarm
- Launching software on the cluster with declarative service definitions that lead to tasks that lead to running apps in containers
- Updating software using rolling updates
- How to visually monitor the state of the cluster
- Adding nodes (including how to spin up VMs on your local machine if you bring a laptop to follow along)
- Self healing services - We'll simulate failures (of nodes and containers) and see how desired state reconciliation kicks in to maintain a desired state
- How to give users access to an application deployed on the swarm with published ports and the swarm mode routing mesh
- How to network together internal dependencies (container to container traffic) - for example if your app (in a container) needs to talk to a databse (in another container) or needs to talk to another internal api (in another container)
- DNS based Service Discovery
- How to scale everything with a single command and how integrated load balancing routes traffic across new instances
- How to use integrated health checking to avoid sending traffic to unhealthy applications
- How to protect sensitive information like database passwords
I'll have a variety of hands on examples for you to work through.
In advanced please: * Install Docker 17.04+ (Docker for Windows, Docker for Mac, or Docker on Linux)