company_banner

Анонс интенсива «Docker: from zero to hero»


    Слёрм приглашает на онлайн-интенсив «Docker: from zero to hero» 27–28 февраля. Два дня интенсивного обучения для тех, кому важно уверенно работать с Docker. В первый день разберемся с базовым курсом, а во второй — перейдем к продвинутому уровню.


    Хотите узнать, насколько хороши в Docker? Пройдите короткий тест.


    Или сразу записывайтесь на интенсив.


    Спикеры


    • Виктор Попов, техлид DevOps команды дирекции больших данных в X5 Retail Group;
    • Марсель Ибраев, CTO Слёрм;
    • Александр Швалов, инженер Southbridge.

    Программа


    №1: Введение в Docker (первые 30 минут интенсива)

    Зачем: Чтобы разогреть умы.


    Теория: Что такое Docker, как возник, какие проблемы решает. Чем различаются виртуализация и контейнеризация, практика современного применения. Тонкости установки Docker на Centos, Debian, Mac и Windows (как настраивать daemon и какие есть ограничения).


    Практика: знакомство со стендом, устанавливаем Docker на сервер. 30 минут


    №2: Основные команды и абстракции Docker. CLI. Общая схема работы Docker

    Зачем: Без этой базы не получится приступить к дальнейшим темам. Если вы не знаете основные команды Docker — то эта тема для вас.


    Теория: Команды управления контейнерами, образами (run, rm, push и т.д.).
    Registry, Docker Daemon, Container, Image, Dockerfile и их взаимодействие.


    Практика: нет


    №3: Запуск собственного приложения в Docker

    Зачем: Docker нужен, чтобы запускать код в контейнерах. Именно эта тема научит упаковывать произвольный код в образы контейнеров и работать с образами.


    Теория: Написание Dockerfile, сборка Image, хранение в DockerHub, запуск приложения.


    Практика: Скачиваем готовый контейнер с DockerHub запускаем в нем сайт.


    №4: Работа со stateful-данными в Docker

    Зачем: Хранение данных в контейнеризованных приложениях имеет ряд подводных камней, а приложения без данных встречаются очень редко. Эта тема покажет, как делать так, чтобы не было мучительно больно.


    Теория: Docker Volumes, типы стораджей. Подводные камни и best practices при использовании stateful и Docker.


    Практика: Создаем контейнер с базой данных из DockerHub.


    №5: Docker-compose файл

    Зачем: Docker Compose — отличный инструмент для создания тестовых сред, состоящих из нескольких контейнеров на мощностях разработчика. Удобно для тестирования приложения, но также может использоваться и в промышленной эксплуатации.


    Теория: Что это, для чего используется, как настраивается. Разница между v2 и v3.


    Практика: Запускаем несколько контейнеров и налаживаем связи между ними. Берем репозиторий с готовыми контейнерами, собираем их в рабочую систему.


    №6: Docker и CI/CD

    Зачем: Деплоить код без CI/CD процессов в наше время считается дурным тоном. Посмотрим, как Docker помогает доставлять код на различные среды (prod, dev, test), как в целом работают CI/CD процессы с участием Docker и какие нюансы есть в этих процессах.


    Теория: Построение пайплайнов на примере Gitlab. Проблемы при использовании голого Docker и CI/CD. Возможности тестирования через Gitlab.


    Практика: Запускаем готовый пайплайн в Gitlab.


    №7: Особенности использования Docker с различными языками программирования, в том числе с компилируемыми языками

    Зачем: Докер нужен, чтобы запускать код в контейнерах, но разные языки имеют свою специфику сборки. Эта тема покажет особенности сборки контейнеров с разными ЯП.


    Теория: Multistage сборка, размер Image. ruby, php, python, go, java, c#, c++


    Практика: Собираем один контейнер с компилируемым кодом и один без.


    №8: Сеть в Docker

    Зачем: Приложения в контейнере редко нужны сами себе, обычно их нужно предоставить пользователям или получать доступ из контейнера к другому приложению, например, базе данных. В этой теме поймем, как это сделать, а также, как работает сеть в Docker и какие режимы работы сети бывают.


    Теория: Какие режимы работы сети бывают, где они настраиваются. DNS resolving внутренний. Режимы работы bridge с хостовой системой.


    Практика: Настраиваем сеть между контейнерами.


    №9: Docker под капотом

    Зачем: Научимся работать с контейнерами в Kubernetes — по следам хайпа про прекращение поддержки Docker в Kubernetes. В этой теме посмотрим, как именно работает Docker, а также узнаем, почему отказ Kubernetes от Docker — это не страшно. Понимание работы Docker позволит делать приложения безопаснее, обеспечивая необходимый уровень изоляции.


    Теория: Механизмы Linux, обеспечивающие изоляцию контейнера. Низкоуровневые инструменты контейнеризации.


    Практика: Покажем, как создавать «контейнер» без Docker (unshare, nsenter...).


    №10: Логирование и мониторинг Docker контейнеров

    Зачем: Научимся диагностировать проблемы приложений в контейнерах, а также предупреждать их.


    Теория: Особенности мониторинга микросервисной инфраструктуры. Инструменты и подходы. Мониторинг Docker. Про то, как работает логгинг в контейнере, почему не стоит складывать логи в файл. Enterprise решения. Как собирать метрики. Endpoint + health check.


    Практика: Настраиваем логи для своего приложения. Контейнер падает по непонятной причине, нужно это отследить и прекратить.


    №11: Продвинутая работа с образами. Настройка собственного Registry

    Зачем: Обход ограничений DockerHub. Да и вообще свой registry – это правильно. Контейнеры на Dockerhub доступны всем, но не весь код можно сделать публичным. Рассмотрим создание приватного registry, чтобы конкуренты не украли ваши контейнеры.


    Теория: Как прикрутить к репозиторию авторизацию. Gitlab Registry (Container Registry tag expiration policy), Harbor. Очистка ненужных образов.


    Практика: поднимаем свой репозиторий и пушим в него контейнер. Создаем токены Gitlab.


    №12: Безопасность в Docker контейнерах

    Зачем: DockerHub – это «чертова помойка», не надо пользоваться образами оттуда без необходимости. Поймем, какие угрозы есть при использовании Docker и как их избегать.


    Теория: Основные угрозы при запуске приложения в контейнере: запуск от рута, излишние привилегии, уязвимости в Docker, неполноценность изоляции контейнеров, инструменты анализа безопасности контейнеров.


    Практика: устраняем грубые уязвимости в контейнере с демонстрационным приложением ИЛИ используем уязвимость, чтобы сделать что-то, чего мы делать не должны.


    №13: Использование Docker в облаках

    Зачем: Работа на виртуалке с Docker. Есть ли эта услуга as a service? Есть ли какие-то особенности?


    №14: Оркестрация Docker. Kubernetes, Docker SWARM. Различия, фичи, для чего оно нужно

    Зачем: Это теоретический раздел о том, как работает Docker в сложных инфраструктурах.


    Теория: Рассказываем, что такое оркестрация и зачем она нужна на примере K8s и swarm. K8s as a service.


    Практика: Демонстрация того, как из локальных манифестов запустить приложение в миникубе.


    №15: Аналоги Docker

    Зачем: Docker — не единственный инструмент контейнеризации на рынке. Посмотрим на альтернативы, поймём, зачем они вообще нужны и какие проблемы решают.


    Теория: Наиболее популярные аналоги Docker, как они работают и зачем нужны. Примеры запуска приложений в этих аналогах.


    Практика: Вместе со спикером поднимаем приложение на Podman и Kata.


    Стоимость обучения — 10 000 рублей.


    Записаться на интенсив

    Southbridge
    Обеспечиваем стабильную работу highload-проектов

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое