2-day on-prem or online training


Docker has taken our industry by storm. Hardly anyone can ignore the usefulness of containerized applications. Containers allow encapsulating part of your system configuration making it easier to distribute and manage applications at scale.

This is a 2-day practical workshop that covers Docker functionality, use cases and deployment scenarios. It is targeted at software developers and system administrators willing to integrate containers into software delivery and maintenance processes.


Developers, software architects, technical project managers, system administrators.


You earn eXtreme Automation certificate by attending the course.

View example certificate


The course is taught in English.

Detailed outline

🌞 Day 1

  • 📚 Part 1:

    Introduction into DevOps, Continuous Delivery, Infrastructure-as-Code, GitOps

  • ❓ Quiz 1: principles

  • 📚 Part 2:

    Why containers? Universal distribution mechanism.

    Anatomy of a container: processes, network, file system, permissions, health checks

    Windows containers vs Linux containers

  • 🛠 Exercise 1: building container image and running containers

    We take an existing .NET and/or Java web application, package it as a container image and run container locally.

    Students will also try/get hints on how to debug the application running inside a container, start more that one instance of applications, share files between the host and container.

    For those who are less experienced, we only discuss the very basics. For more experienced folks, trainer will add extra tasks for them to play with.

  • ❓ Quiz 2: containers

  • 📚 Part 3:

    Container meshes. Overview of Docker Compose.

  • 🛠 Exercise 2: container meshes

    Create a container mesh with an application built in previous exercise + HA database server, caching layer server and a software load balancer.

    Students will learn how to set up container network, manage container volumes, configure port openings, setup health checks.

    Overall, the goal is to show how to replicate complex deployment setup with Docker and Docker Compose.

  • ❓ Quiz 3: container meshes

  • 📚 Part 4:

    Introduction to modern delivery pipelines. Containers everywhere!

  • 🛠 Exercise 3: container delivery

    Create a continuous delivery pipeline in GitLab CI and/or Azure DevOps Pipelines that will: build a Docker image, run unit tests, run integration tests, publish image into Docker registry.

    Code for unit and integration tests will be provided. The goal is to focus on implementing the pipeline logic and to show that pipeline stages are, in fact, also running as Docker containers.

    More experienced people will have a chance to implement extra steps in the pipeline like static code analysis and performance tests.

  • ❓ Quiz 4: pipelines

🌞 Day 2

  • 📚 Part 5:

    Cloud as a platform. Introduction to the basics of Azure/AWS cloud resources.

    Compute models. 5 ways to deploy containers into the cloud.

  • 🛠 Exercise 4: deploy to a container service

    Extend delivery pipeline to deploy to AWS ECS and/or Azure Container Service and verify deployment.

    Students will receive pipeline skeleton. Trainer will also give a quick introduction to AWS CLI/Azure CLI as well as provide cheat sheets to help with the exercise.

    Experienced folks will try to codify cloud resource management (policies, buckets, databases, load balancers) with the help of Azure Stack/AWS Cloudformation using my templates.

  • ❓ Quiz 5: cloud

  • 📚 Part 6:

    Managing complex deployments. Introduction to Kubernetes. Kubernetes primitives: node, pod, service, persistent volume.

  • 🛠 Exercise 5: deploy to an orchestrator

    Change delivery pipeline to deploy to AWS EKS and/or Azure Kubernetes Service and verify deployment.

    Students will receive a template and a cheat sheet to convert their deployment scripts from existing code into Kubernetes YAML descriptor.

    We will discuss when plain cloud resources are better than Kubernetes deployment as well as when Kubernetes could be a good idea.

  • ❓ Quiz 6: Kubernetes

  • 📚 Part 7:

    Simplifying the stack. Introduction to Serverless. Function-as-a-Service.

  • 🛠 Exercise 6: deploy as a function

    Package part of the application as a separate container. Change the pipeline to deploy it to AWS Lambda and/or Azure Functions.

    We will discuss the benefits and billing model behind this approach. Experienced folks may experiment with converting more application parts into the serverless model.

  • ❓ Quiz 7: serverless

  • Q/A + conclusion


Andrey Adamovich is a software craftsman with many years of experience in different life cycle phases of software creation. He is passionate about defining good development practices, documenting and presenting architecture, reuse of code and design patterns, profiling and analysis of application performance as well as extreme automation of development and operations activities.

At the moment, Andrey works as a free-lance DevOps consultant offering his expertise in implementing DevOps initiatives, selecting automation tooling, switching to infrastructure-as-code and immutable infrastructure and constructing software delivery pipelines.

Andrey is a frequent speaker at international conferences and local communities. He presented at more than 60 events in 19 countries. He is one of the leaders of LatCraft - Latvian Software Craftsmanship Community as well as co-founder and organizer of DevTernity  conference.

Limited offer. Grab your ticket today.



Exclusively for your company

6000 5200€