Летняя школа DevOps/DevSecOps 2024
Инструкция по подготовке к школе. Что нужно установить до начала тренингов, что мы будем изучать
ВАЖНО: подписывайтесь на официальный канал в телеграмм, чтобы не пропустить важную информацию
Обновления
- добавлены ссылки на дни 1-3
- добавлены записи дни 4-5, материалы
- добавлены слайды день 5, день 6
Темы
В рамках обучения мы рассматриваем следующие темы:
Дата | Тема | Трансляция | Материалы | Задание | Преподаватель | Срок |
---|---|---|---|---|---|---|
19.08.2024 | Введение в контейнеры | vk, rutube | слайды | тест, задание по созданию простого образа | Шадрунов А. С. | 26.08.2024 |
20.08.2024 | Безопасность контейнеров | vk, rutube | слайды | тест, задание по сканеру образов | Шадрунов А. С. | 28.08.2024 |
21.08.2024 | Введение в DevOps | vk, rutube | слайды | Бакин А. М. | ||
22.08.2024 | Моделирование угроз | vk, rutube | слайды | по желанию | Бакин А. М. | 06.09.2024 |
23.08.2024 | Безопасная разработка ПО | vk, rutube | слайды, слайды 2 | Елаев С. Ю. | ||
26.08.2024 | Фреймворки зрелости SSDLC | vk, rutube | слайды | задание | Бакин А. М. | 06.09.2024 |
27.08.2024 | Kubernetes - Введение | vk, rutube | слайды | задание | Панасюк Е. В. | 06.09.2024 |
28.08.2024 | Kubernetes - API, основные обьекты, контроллеры | vk, rutube | слайды | Панасюк Е. В. | ||
29.08.2024 | Kubernetes - Сети | vk, rutube | слайды | задание | Панасюк Е. В. | 06.09.2024 |
Цель обучения
Освоить современные практики непрерывной интеграции и доставки нового кода (Continuous Integration / Continuous Delivery, CI/CD) на примере технологий GitLab/GitFlow и Docker.
Участники разберутся с принципами CI/CD, научатся создавать пайплайны на примере Gitlab CI, освоят методы и инструменты контейнеризации на примере Docker, научатся строить цепочку поставки, включающую все основные стадии - сборка, тестирование, упаковка, сканирование.
Слушатели получат понимание о современном жизненном цикле безопасной разработки приложений, приобретут навык работы с современными технологиями безопасного тестирования (SAST, DAST) тестирования, сканирования контейнеров и других механизмах безопасности, научатся строить цепочку поставки, включающую все основные стадии - сборка, тестирование, упаковка, сканирование, а также научатся встраивать инструменты тестирования в безопасную цепочку поставки.
Программа
Посмотреть программу школы можно здесь
В таблице ниже будут появляться ссылки на трансляции и дополнительные материалы
При выполнении заданий не забывайте пользоваться так же справочными материалами
Требования к участникам
Для прохождения летней школы не требуется сверх-навыков и подготовки, мы начинаем с достаточно базовых вещей.
Однако DevSecOps - это тема на стыке разработки, тестирования, администрирования и безопасности, поэтому некоторый бекграунд все же требуется.
Вы должны уметь работать с linux в командной строке и иметь базовые навыки администрирования. Вам придется устанавливать и настраивать необходимые инструмены для devops и работы с контейнерами.
Вы должны иметь базовые навыки разработки на каком то языке и точно должны уметь читать программный код.
Базовые навыки, такие как работа с системой контроля версий (git) и общее представление о gitflow, так же нужны.
Не стесняйтесь пользоваться справочными материалами, а так же загляните в раздел самоподготовка
Самоподготовка
Чтобы помочь вам освежить базовые навыки, мы подготовили несколько дополнительных материалов.
git
Инструменты совместной работы (git) является одной из тем, которые мы рассматриваем, но предполагается, что вы знаете основы работы с git.
Некоторые базовые вещи разбираются в этом видео
Пожалуйста, ознакомьтесь с ним заранее, если у вас нет большого опыта работы с git.
Если у вас нет опыта командной работы, вы не знаете про ветки и gitflow (и у вас много свободного времени), можно так же посмотреть долгий материал Основы Git. Основные операции. Мастер-класс «Ветвление в Git и управление ветками».
Вам так же надо будет установить клиент git на той платформе, где вы будете практиковаться. Как это сделать - см. раздел необходимое ПО
docker
Вы пока не знаете ничего про докер, но вам нужно его поставить заранее (в том числе, чтобы пройти стартовое тестирование) Если вы ранее не ставили себе docker, посмотрите небольшое начальное видео
Стартовое тестирование
Пожалуйста, попробуйте свои силы и пройдите стартовое тестирование
Не пугайтесь, если не знаете как ответить на вопрос. В части вопросов по докеру, пожалуйста, ознакомьтесь с начальным видео и установите себе на платформу докер
Необходимые действия
- Вам необходимо зарегистрироваться на платформе GitLab (DevSecOps platform)
- Все задания, требующие использования репозитория и запуска CI/CD пайплайнов, будет делать на этой платформе.
- Вам необходимо зарегистрироваться на Docker Hub
- Сюда мы будет загружать полученные образы контейнеров.
Необходимое ПО
Для выполнения практических заданий вам понадобится подготовить свой компьютер, установив на него необходимое программное обеспечение.
Мы рекомендуем использовать docker под ОС Linux (если у вас другая ОС, можно развернуть ее, например, в virtual box). Общая рекомендация - для выполнения заданий поднимите виртуальную машину linux (например ubuntu) и в ней уже установите docker.
- Клиент git. Интструкция по установке.
- Docker (или другое CRI-совместимое решение). Инструкция по установке
-
Рекомендуем Вам установить Python3 и среду разработки к нему для выполнения домашних заданий.
- Если Вы планируете использовать другой язык -- предустановите его
- gitlab-runner. Он вам понадобится ближе к третьему дню летней школы, но не забудьте его установить и настроить.
Учебные примеры
Учебные примеры с занятий доступны здесь
- Демо 1. Простой пример упаковки питон приложения в контейнер
- Демо 2. Два примера веб-приложения в контейнер
- Демо 3. Многоступенчатая сборка на примере простого go приложения
- Демо CI. Учебный пример настройки pipeline разобранный на лекции
Полезные ссылки и документация
Материалы по Git
-
Установка git client
Материалы по Gitlab
Материалы по Docker
- Основная документация Docker
- Установка Docker
- Docker getting started
- Справка по написанию Dockerfile
- Запуск команды в контейнере
- Docker desktop под windows
- Контейнеры в Windows
Установка gitlab-runner
Пожалуйста, ознакомьтесь с инструкцией по утановке gitlab runner
Мы настоятельно рекомендует устанавливать раннер в контейнере docker, с подключением docker volume. Так же пользуйтесь официальной документацией:
Авторы
В. Башун, Т.Курмашева
Контакты
- Официальный канал Telegram
- Основной адрес электронной почты vbashun@hse.ru
- Telegram: @vbashun
Contributing
Мы проводим летние/зимние школы, а так же учебные курсы по темам DevOps/DevSecOps.
Если у вас есть комментарии, замечания или предложения по доработке курсов, пожалуйста, свяжитесь с нами
Если вы готовы сотрудничать или поучаствовать в разработке учебных программ или материалов, будем рады обсудить.