Що нового?

Придбаний Docker для разработчиков [Слёрм] [Виктор Попов, Александр Швалов, Марсель Ибраев]

Інформація про покупку
Тип покупки: Складчина
Ціна: 6000 ГРН
Учасників: 0 з 90
Організатор: Відсутній
Статус: Набір учасників
Внесок: 69.3 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
Docker для разработчиков [Слёрм] [Slurm] - 2022



Освой инструмент, которым пользуются 77% разработчиков


Кому подойдёт курс
Junior-разработчики
Junior DevOps инженеры
Системные администраторы

Узнаете, что такое Docker, разберете особенности использования Docker с различными языками программирования, научитесь безопасно работать с Docker-контейнерами и расширите пул доступных вам инструментов

Руководители разработки
Сэкономите время и силы на обучение новичков. В рамках курса сделаем из Junior-разработчиков специалистов по Docker, которые смогут полноценно использовать инструмент в своей работе


Спикеры
Виктор Попов

DevOps в НЛМК IT
— Выстраивает DevOps процессы уже 6 лет. Начал еще когда не знал, что такое DevOps.
— Поддерживает и развивает k8s кластера as-a-service для 20+ продуктовых команд

Александр Швалов
Старший системный инженер, Wrike, ex-Слёрм, ex-Southbridge
— Инженер с 8-летним опытом, Certified Kubernetes Administrator. Автор и преподаватель курсов Слёрма

Марсель Ибраев
CTO Слёрм
— Инженер с 8-летним стажем
— Certified Kubernetes Administrator
— Внедрения Кубернетес для клиентов Southbridge
— Разработчик курсов и спикер Слёрм

Ты получишь максимум практических знаний о Docker — начнешь с основ, а через три недели сможешь запускать приложения в Docker и работать с образами
на продвинутом уровне.



№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, Registry и их взаимодействие.

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


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

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

Практика: Скачиваем готовый контейнер с DockerHub запускаем в нем сайт.
№4: Работа со stateful-данными в Docker


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

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

Практика: Создаем контейнер с базой данных из DockerHub.
№5: Docker-compose файл


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

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

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


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

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

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


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

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

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


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


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

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


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

Теория: Namespaces, Cgroups (как это все ограничивается), Capabilities, limits/requests и т.д.

Практика: Покажем, как запустить "контейнер" без Docker (runc). Спикер показывает на одном примере runc, а студенты делают на в containerd.
№10: Логирование и мониторинг Docker контейнеров


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

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

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


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

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

Теория: Как прикрутить к репозиторию авторизацию. Gitlab Registry (Container Registry tag expiration policy), Harbor. Очистка ненужных образов.
№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.
https://slurm.io/docker-intensive
 
Угорі