Тематический план

  • Введение

    Идеология DevOps. Постановка задач непрерывной интеграции, непрерывного развертывания и непрерывной поставки.
    • Тема 1. Организация автоматического тестирования ПО

      Этапы и способы проверки исходного кода и ПО в целом. Статический анализ исходного кода. Юнит-тестирование. Проверки на этапе компиляции ПО. Интеграционное тестирование. Дополнительные проверки в процессе тестирования (время выполнения, косвенные метрики оценки работы ПО в тестах). Требования к организации отчетов о запуске автоматических тестов. Техническая реализация автоматизации тестирования (precommit hooks, периодическое тестирование и тестирование по мере поступления изменений).
      • Тема 2. Инструменты автоматизации настройки среды

        Задача автоматизации настройки среды. Технология Docker - контейнеры, образы, репозитории. Синтаксис Dockerfile. Флаги запуска контейнеров. Ограничение ресурсов контейнера. Отладка контейнеров и контроль работы. Механизм Healthcheck.
        • Тема 3. Инструменты автоматизации развертывания и поставки ПО

          Задача автоматизации развертывания и поставки ПО. Технология Docker Compose - конфигурации и сервисы. Синтаксис конфигурационных файлов. Адресация и взаимное обнаружение узлов. Передача внешних параметров в конфигурацию. Команды управления конфигурацией. Отладка работы конфигураций.
          • Тема 4. Сервера непрерывной интеграции

            Понятие и назначение сервера непрерывной интеграции. Последовательности шагов для автоматизации интеграции, развертывания и поставки ПО. Jenkins - основные сущности (job, build, view, user, repo, node). Основные элементы настройки Job: периодичность и параметры запуска, репозиторий и настройки клонирования, шаги сборки, послесборочные операции (рассылка писем, запуск других Job). Пример настройки Job. Анализ запусков Job (логи и их интерпретация, артефакты сборки). Особенности эксплуатации сервера непрерывной интеграции на примере Jenkins (хранение конфигураций, разделение доступа к серверу, объем почтовых уведомлений, требуемое дисковое пространство).
            • Заключение

              Общие выводы по курсу. Рекомендации для подготовки к экзамену.