Что такое DevOps
- Типовые проблемы при разработке ПО
- Что такое DevOps
- Лучшие практики DevOps
- Инструменты DevOps
- Культура DevOps
- Трудности при DevOps
Автоматизация
- Автоматизация: цели, задачи
- Декларативный и императивный подходы
- Типовые задачи
- Описание популярных языков программирования в DevOps
Версионный контроль
- Отслеживание изменений
- Эволюция и знаковые систем контроля версий
- Обзор и введение Git
- Инспекция кода (code review)
- Рабочие процессы при версионировании (workflow)
Инфраструктура
- Инфраструктура как не-код
- Инфраструктура как код
- Популярные инструменты
- Декларативное и императивное описание
- IaaS, PaaS, SaaS
- Облака
- Введение в Terraform
Управление конфигурацией
- Определение, цели и задачи
- Модели управления
- Изменяемая (mutable) и неизменяемая (immutable) инфраструктура
- Подходы Frying и Baking
- Настройка Push и Pull
- Обзор популярных инструментов
- Введение в Ansible
Контейнеризация (теория – 1 ч., практика – 1 ч.)
- Определение, цели и задачи
- Сравнение контейнеризации и виртуализации
- Введение в Docker
- Запуск приложений в контейнерах
- Запуск служб в контейнерах
Построение образов
Оркестрация
- Трудности при работе с контейнерами
- Контейнерная оркестрация
- Введение в Kubernetes
- Запуск приложений в Kubernetes
- Сетевой доступ к приложениям в Kubernetes
Рассмотрение альтернатив Kubernetes
Непрерывная интеграция
- Типовые проблемы при совместной разработке
- Конвейер (pipeline) и основные этапы
- Лучшие практики
- Популярные инструменты
- Введение в Jenkins
Непрерывная поставка и развёртывание
- Определение, цели и задачи
- Конвейер поставки
- Основные трудности
- Требования к приложениям
- Форматы артефактов
- Версионирование артефактов
- Множество окружений
- Решение проблем с изменением окружений
- Обновление и откат приложений
- Развёртывание приложений в Kubernetes
Мониторинг и логирование
- Определение, цели и задачи
- Лучшие практики