Тематический план
Введение
Идеология DevOps. Постановка задач непрерывной интеграции, непрерывного развертывания и непрерывной поставки.Тема 1. Организация автоматического тестирования ПО
Этапы и способы проверки исходного кода и ПО в целом. Статический анализ исходного кода. Юнит-тестирование. Проверки на этапе компиляции ПО. Интеграционное тестирование. Дополнительные проверки в процессе тестирования (время выполнения, косвенные метрики оценки работы ПО в тестах). Требования к организации отчетов о запуске автоматических тестов. Техническая реализация автоматизации тестирования (precommit hooks, периодическое тестирование и тестирование по мере поступления изменений).Тема 2. Инструменты автоматизации настройки среды
Задача автоматизации настройки среды. Технология Docker - контейнеры, образы, репозитории. Синтаксис Dockerfile. Флаги запуска контейнеров. Ограничение ресурсов контейнера. Отладка контейнеров и контроль работы. Механизм Healthcheck.Тема 3. Инструменты автоматизации развертывания и поставки ПО
Задача автоматизации развертывания и поставки ПО. Технология Docker Compose - конфигурации и сервисы. Синтаксис конфигурационных файлов. Адресация и взаимное обнаружение узлов. Передача внешних параметров в конфигурацию. Команды управления конфигурацией. Отладка работы конфигураций.Тема 4. Сервера непрерывной интеграции
Понятие и назначение сервера непрерывной интеграции. Последовательности шагов для автоматизации интеграции, развертывания и поставки ПО. Jenkins - основные сущности (job, build, view, user, repo, node). Основные элементы настройки Job: периодичность и параметры запуска, репозиторий и настройки клонирования, шаги сборки, послесборочные операции (рассылка писем, запуск других Job). Пример настройки Job. Анализ запусков Job (логи и их интерпретация, артефакты сборки). Особенности эксплуатации сервера непрерывной интеграции на примере Jenkins (хранение конфигураций, разделение доступа к серверу, объем почтовых уведомлений, требуемое дисковое пространство).