Workshop: Containers in production with Docker Swarm
Location:
- Albert, 2nd flr.
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
Similar Talks
Other Workshops:
Tracks
Covering innovative topics
Monday, 7 March
-
Back to Java
What to expect in Java 9 and Spring 5
-
Stream Processing @ Scale
Big data, fast-moving data. Practical implementation lessons on Real-time Data
-
DevOps & CI/CD
Lessons/stories on optimizing the deployment pipeline
-
Head-to-Tail Functional Languages
Free-range Monads, Tackling immutability, tales from production, and more...
-
Architecting for Failure
Your system will fail. Take control before it takes you with it
-
21st Century Culture from Geeks on the Ground
New ways to organise technology companies and workplace culture
Tuesday, 8 March
-
Architectures You've Always Wondered about
In-depth technical case studies from giants like: Microsoft, Netflix, Google, Twitter, and more...
-
Close to the Metal
Get efficiency back into your code, concepts like: cache efficient algorithm and lock free data structures
-
Containers (in production)
Real-world lessons on scalability and reliability in production container deployments
-
Modern CS in the real world
Real-world Industry adoption of modern CS ideas
-
Security, Incident Response & Fraud Detection
Master-level classes on building security into your system and responding to incidents when things go wrong.
-
Optimizing You
Keeping life in balance is always a challenge. Learning lifehacks
Wednesday, 9 March
-
Disrupting Finance
Technology advances in finance (blockchain, P2P, Machine Learning, API's)
-
Modern Native Languages
Modern native languages: Safe efficiency with Go, Rust, Swift
-
Full Stack Javascript
Level up Javascript with topics like Angular, React/ReactNative, Node, Mongo/Couch/Other, Falcor, GraphQL, etc
-
Data Science & Machine Learning Methods
A developer's data science and machine learning toolkit
-
Microservices for Mega-Architectures
Practical lessons on Microservices success.
-
Modern Agile Development
Revisiting Agile today and tackling challenges we are seeing in the wild