Name Last commit Last update
files
.gitignore
README.md

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

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

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

Темы

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

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

Программа

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

Трансляции

Задания

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

  • Участники должны не бояться работать с командной строкой.
  • Знать основы 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