DevOps in the Real World is far from perfect, yet we all dream of that amazing auto-healing fully-automated CI/CD micro-service infrastructure that we'll have "someday." But until then, how can you really start using containers today, and what decisions do you need to make to get there?
This session is designed for practitioners who are looking for ways to get started now with Docker and Swarm in production. This is not a Docker 101, but rather it's to help you be successful on your way to Dockerizing your production systems. Attendees will get tactics, example configs, real working infrastructure designs, and see the (sometimes messy) internals of Docker in production today.
This is a technical discussion with takeaways on tools you could use, what you might expect for starting your infrastructure configurations, do's and don'ts, and lots on the layers that make up the typical production docker tech stack.
Watch the talk
Need to take your containers into production and operate Docker clusters like a pro? This workshop skips Docker basics and CI/CD topics. Rather, it focuses squarely on the tools and techniques of building and operating container clusters using Docker. Starting where previous Docker 101 workshops leave off, you'll dive into Swarm Mode clustering (Docker Services), rolling updates, monitoring, logging, troubleshooting, Swarm recovery, and Docker security features. This workshop covers the latest built-in Docker features and common third-party tools, and Bret will walk you through installing them on your own five-node cloud Swarm cluster in AWS.
What you'll learn
- Walk through building a multi-node, secure Docker Swarm cluster in AWS.
- Learn how to deploy and manage a multi-container, highly available microservice app inside that cluster.
- Gain hands-on experience with daily and intermediate-level tasks a container cluster operator deals with.
- Improve your security posture with optional Docker features.
- Learn how Docker compose files can be used in production clusters.
- Test rolling updates, failed update rollbacks, and implement healthchecks into your Dockerfiles.
- Deploy centralized logging, monitoring, and data management options for Docker Swarm.
- A working knowledge of Docker (You are familiar with Docker images and containers, have used Dockerfile and docker-compose.yml in some fashion and understand the basic commands and purpose behind them.)
- Shell and SSH basics for Linux. (We'll guide you through all commands.)
- General understanding of microservice and distributed computing concepts.
Materials needed in advance
- A laptop with an SSH program installed
- SSH into your five nodes and create a Swarm
- Spin up a sample multicontainer microservice app
- Use built-in commands to validate it’s working and logging; use troubleshooting techniques on the overlay networks and to jump into containers
- Deploy redundant containers and test high availability
- Use rolling updates to update apps without downtime, including rollback
- Add healthchecks to Dockerfiles and Swarm Services
- Deal with failed containers and failed cluster nodes
Common third-party tools for logging, monitoring, and troubleshooting
- Set up and test ELK (Elasticsearch, Logstash, and Kibana)
- Set up and test cAdvisor
- Set up and test Prometheus
Key features of production systems
- Docker security features - user namespace setup, storing secrets, network isolation
- Failed Raft consensus scenarios and options to recover
- Persistent data options for Docker clusters
Other things you’ll learn along the way
- Troubleshooting and sysadmin tools you may have forgotten
- New tools for the container admin
- Staying up to date on Docker tool releases
- Command aliases for quicker day-to-day container management
- Shell scripts for common processes