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

Цель обучения

Освоить современные практики непрерывной интеграции и доставки нового кода (Continuous Integration / Continuous Delivery, CI/CD) на примере технологий GitLab/GitFlow и Docker. Участники разберутся с принципами CI/CD, научатся создавать пайплайны на примере Gitlab CI, освоят методы и инструменты контейнеризации на примере Docker, научатся строить цепочку поставки, включающую все основные стадии - сборка, тестирование, упаковка, сканирование.

Темы

В рамках обучения мы рассматриваем следующие темы:

  • Введение в DevOps/DevSecOps
  • Инструменты совместной работы
  • Технологии контейнеризации
  • Обеспечение безопасности контейнеров
  • Автоматизация цепочки поставки
  • Безопасность рабочей нагрузки
  • Технологии оркестрации (самостоятельная работа)

Программа

Посмотреть расписание можно здесь

Дата Время Трансляция Материалы Задание Тренер Баллы Блокирующий
28.11.2022 18.00 – 20.00 Введение в DevOps/DevSecOps Презентация
см. так же раздел Настройка docker runner
ответ на задание загружаем в форму
Задание 1
30 ноября (23:59 МСК)
Башун В.В. 4 да
29.11.2022 18.00 – 20.00 Технологии контейнеризации Презентация Задание 2
1 декабря (23:59 МСК)
Курмашева Т.А. 4 да
30.11.2022 16.00 – 18.00 Обеспечение безопасности контейнеров Презентация Задание 3
2 декабря (23:59 МСК)
Курмашева Т.А. 4 нет
30.11.2022 18.30 – 20.00 Автоматизация цепочки поставки. Gitlab CI Презентация
Конспект
Доп. материал
Задание 4
2 декабря (23:59 МСК)
Завьялова А.Д. 4 да
01.12.2022 18.30 – 20.30 Безопасность рабочей нагрузки Презентация - Курмашева Т.А. - -
02.12.2022 18.00 – 20.00 Автоматизация цепочки поставки. Ansible Презентация
Конспект
Задание 5* Завьялова А.Д. (4) нет
03.12.2022 12.00 – 18.00 Тест 4 да

При выполнении заданий не забывайте пользоваться так же справочными материалами

  • задание 5 является дополнительным (бонусным)

Требования к участникам

  • Участники должны не бояться работать с командной строкой.
  • Знать основы Linux (базовое администрирование).
  • Базовые навыки программирования.
  • Базовые знания компьютерных сетей.
  • Базовые навыки работы с git.

Инструменты совместной работы (git) является одной из тем, которые мы рассматриваем, но предполагается, что вы знаете основы работы с git. Некоторые базовые вещи разбираются в этом видео Пожалуйста, ознакомьтесь с ним заранее, если у вас нет опыта работы с git.

(ВАЖНО) Необходимые действия до начала обучения

  1. Вам необходимо зарегистрироваться на платформе GitLab (DevSecOps platform)

    • Все задания, требующие использования репозитория и запуска CI/CD пайплайнов, будет делать на этой платформе.
  2. Вам необходимо зарегистрироваться на Docker Hub

    • Сюда мы будет загружать полученные образы контейнеров.
  3. Вам необходимо подготовить компьютер, установив на него необходимое ПО

    • Без его установки, вы не сможете выполнять задания.

Необходимое ПО

Для выполнения практических заданий вам понадобится:

Мы рекомендуем использовать docker под ОС Linux (если у вас другая ОС, можно развернуть ее, например, в virtual box).

- Документация по установке docker:
    - https://docs.docker.com/engine/install/

- Если вы будете работать с docker под Windows
    - https://docs.docker.com/desktop/install/windows-install/ 
    - https://learn.microsoft.com/ru-ru/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server
  • Рекомендуем Вам установить Python3 и среду разработки к нему для выполнения домашних заданий.
    • Если Вы планируете использовать другой язык -- предустановите его

Настройка docker runner

  • Порядок действий

    • Создаем новую группу в гитлабе
    • Переходим в CI/CD настройки группы
    • По инструкции устанавливаем ранер на свой компьютер
    • Регистрируем свой раннер для группы (скрин)
    • В настройках ранера CI/CD => Runners => Редактировать поставьте галочку «Run unstaged jobs»
    • В настройках Settings => CI/CD => Runners необходимо выключить "Enable shared runners for this group"
  • Ссылки на документацию

  • Настройка раннера

Подробнее в официальной документации

- docker volume create gitlab-runner-config

- docker run -d --name gitlab-runner --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v gitlab-runner-config:/etc/gitlab-runner \
    gitlab/gitlab-runner:latest

- docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner  gitlab/gitlab-runner:latest register

под Windows если вы пользуетесь git bash консолью, указывайте корректно пути для mount (см. пример)

- winpty docker run --rm -it -v //d/projects/runner2/gitlab-runner/config:/etc/gitlab-runner  \
    -v //d/projects/runner2/var/run/docker.sock:/var/run/docker.sock   gitlab/gitlab-runner:latest status

- winpty docker run --rm -it -v //d/projects/runner2/gitlab-runner/config:/etc/gitlab-runner  \
    -v //d/projects/runner2/var/run/docker.sock:/var/run/docker.sock   gitlab/gitlab-runner:latest register

Для самостоятельного изучения темы оркестраторы

Так же для выполнения самостоятельной работы по оркестраторам вам понадобится (*вы можете сделать это позднее, материалы для самостоятельного изучения будут доступны и после завершения обучения)

  • Minikube и одним из драйверов на выбор (Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation). Рекомендуется VirtualBox или VMware

Полезные ссылки и документация