DevOps-инженер
Форма обучения: очная с применением дистанционных технологий
Объем программы: 510 ак.ч.
Продолжительность обучения: 9 месяцев
Выдаваемый документ: Диплом о профессиональной переподготовке МФТИ
Старт обучения: май 2023
Стоимость обучения: 220 000 рублей

Краткое описание программы:
Чтобы получить Профессию DevOps-инженер, подтвержденную Дипломом о профессиональной переподготовке МФТИ установленного образца, необходимо пройти обучение на трех самостоятельных курсах и двух интенсивах.
В течение обучения вы выполните несколько проектов для решения задач бизнеса, которые лягут в основу вашего портфолио. Проекты выполняются самостоятельно под руководством экспертов и преподавателей, позволяют закрепить весь спектр знаний и навыков, полученных на программе, и применить их к реальным задачам.
Успешное окончание каждого курса подтверждается Удостоверением о повышении квалификации МФТИ.

Содержание программы:
1. Интенсив: «Linux / Git для начинающих»
2 недели
Базовый WSL и VirtualBox
  • Чем отличается Windows и Linux
  • Установка WSL. Запуск
  • VirtualBox установка и использование
Основы Linux
  • Введение. Какие задачи он решает. Дистрибутив Ubuntu
  • Консоль. Основа работы с Linux. tmux
  • Скрипты. Продвинутая работа с консолью
  • Файловая система
  • Работа с сетью
  • Серверное взаимодействие. SSH
WSL подробно
  • Краткий экскурс в историю появления. WSL1 и WSL 2
  • Основные команды работы с WSL
  • Файловая система
  • Сеть WSL
  • WSL USB
  • CUDA и Windows Докер
Git
  • Введение. Цели. Разновидности систем контроля версий
  • Базовые основы GIT. Популярные сценарии работы
  • Серверные репозитории Git. Ветки. Merge request
  • Сценарии отката изменений. Stash
2. Интенсив: «Docker + CI/CD для начинающих»
2 недели
Основы Docker
  • Виртуализация и контейнеризация. Docker engine
  • Docker image и Docker container
  • Файловые системы в Docker. UnionFS и OverlayFS
  • Работа с данными: добавление файлов, монтирование внешних директорий. Обмен данными с уже развернутым контейнером
  • Рекомендации по работе с Docker. Как писать DockerFile, .dockrtignore. Базовая безопасность в docker
  • Репозитории docker-контейнеров и работа с ними.
  • Docker compose
CI/CD
  • Обзор актуальных инструментов CI/CD (GitLab CI, Jenkins, TravisCI, GitHub Actions)
  • Настройка pipelines, jobs, stages. Написание конфигураций CI
  • Создания собственного runner'a. Executors: shell, docker
3. Курс: «Базы данных и SQL»
1,5 месяца
Реляционные базы данных. Основные SQL-запросы

  • Основные понятия и базовый синтаксис выборки
  • Создание таблицы и заполнение данными, ограничения на поля
  • Изменение и удаление данных
  • Join и подзапросы
  • Агрегация и группировка
  • Проектирование базы данных
Нереляционные базы данных. MongoDB
  • Знакомство с mongoDB
  • Изменение данных в mongoDB
  • Агрегация в mongoDB
  • Соединение коллекций в mongoDB
Работа с данными в DevOps
  • Бекап больших данных
  • Кэш-системы
  • Кластеризация, шардинг и отказоустойчивость
3. Курс: Continuous Integration, Continuous Delivery и Continuous Deployment
1 месяц
Понятие непрерывных практик разработки
  • CI/CD/CD: различия между практиками
  • Основные стадии непрерывной интеграции проектов
  • Автоматическое тестирование и сборка проектов
  • Понятие "агент" (runner) в непрерывных системах поставки
Инструменты Continuous Integration. Gitlab
  • Автоматическое тестирование
    Статический анализатор кода
Continuous Delivery и Continuous Deployment: основные отличия
  • Сборка проектов в закрытом контуре
  • Сборка установочных файлов для поставки на серверное окружение
  • Возможные артефакты сборки проекта
Cпособы создания артефактов
  • Тестовые сценарии
  • Покрытие кода тестами
  • Сборка пакетов (Package Registry)
  • Сборка контейнеров (Container Registry)
Continuous Deployment
  • Способы развертываний
  • Типы окружений для развертывания - отличия между окружениями
  • Настройка развертываний, приемочное тестирование
Создание окружений
  • Review/staging/production
  • Откатка релизов и перемещение релизов между окружениями
  • Проведение видов приемочного тестирования в автоматическом режиме (проверка процедур установки ПО)
GitOps
  • Способы выкатки приложений
  • Push CD / Pull CD
  • Способы версионирования приложений: Helm
Разбираем инструменты CD в стеке Kubernetes
  • ArgoCD/FluxCD
  • Настраиваем GitOps Pipeline
4. Курс: Инструменты DevOps
1 месяц

Infrastructure as Code и системы управления конфигурацией
  • Infrastructure as Code
  • Системы управления конфигурацией (Terraform, Ansible, Chef, Salt, Puppet)
Хранение данных
  • Инструменты хранения данных: S3, MinIO vs Ceph
  • Хранение и передача чувствительных данных: Vault
Микросервисы, балансировка и кэширование
  • балансировка и кэширование
  • микросервисы
  • стратегии поставки
5. Курс: Kubernetes
4 месяца
  • Почему Kubernetes, монолитная vs микросервисная архитектуры, виртуальная машина vs контейнер
  • Docker, Kernel modules for isolation, best vs bad practices Docker-compose, best vs bad practices Введение в Kubernetes
  • Kubernetes Control-Plane
  • Основные сущности Kubernetes
  • Хранение больших данных в Kubernetes
  • Kubernetes: сети и сервера
  • Продвинутые сущности Kubernetes
  • Шаблонизаторы Kubernetes: Helm
  • Kubernetes: мониторинг (Prometheus/VictoriaMetrics & Grafana)
  • Kubernetes: оповещения (mail/chats)
  • Kubernetes: логирование (EF/LK)
  • Kubernetes и GitLab CI/CD
  • Kubernetes и Harbor as Docker Registry

Целевая аудитория курса:
  • Те, кто начинает карьеру в ИТ
    Возможность изучить все необходимое для начинающего разработчика: алгоритмы, ООП, основы рабочего кода языка Python. Вы заложите крепкий фундамент для дальнейшего развития в сфере ИТ.
  • Начинающие ИТ-специалисты
    Если у вас уже есть базовые знания, наш курс поможет структурировать их и получить комплексный практический опыт на реальных примерах.
  • Практикующие ИТ-специалисты
    Тем, кто уже является действующим разработчиком, и хочет изучить новый язык программирования.
На программе вы:
  1. Освоите новую востребованную профессию
  2. Станете крепким junior-разработчиком со знанием языка программирования Python
На всех курсах вы получите:
  1. Постоянное живое общение с преподавателем МФТИ на вебинарах и в телеграмм-чате группы
  2. Ответы на все свои вопросы по ходу курса от преподавателя
  3. Обратную связь на интересные домашние задания