Посмотрите на перечисленные ниже истории, и если хотя бы одна из них окажется знакомой, этот тренинг точно для вас:
Чему вы научитесь:
Получите правильное погружение в DevOps
Узнаете о паттернах и практиках непрерывной поставки качественных релизов
Поймете, как в вашем проекте организовать непрерывное тестирование во всех деталях
Познакомитесь с основными инструментами мониторинга приложений и использованием их для проактивного выявления проблем
Узнаете как адаптировать свое приложение и процесс разработки для того, чтобы сделать выпуск сборок быстрым, непрерывным и стабильно качественным
Научитесь организовывать эффективный процесс работы инженерной команды
Технологическая карта DevOps насчитывает более 300 вендоров и продуктов, но мы покажем основные инструменты и научим с ними работать
Введение
Что такое DevOps, трактовки, почему появился
Актуальная статистика State of DevOps Report
ChatOps, NoOps
Что нужно, чтобы начать?
Проблематика
Длинный цикл релиза
долгое ожидание качественной сборки, окна для выкладки, формальные процедуры, сложные/ручные манипуляции в процессе выкладки, тщательное документирование всех изменений (напр., зависимости).
Низкая скорость расследования инцидентов
подробные процедуры эскалации, 1я линия поддержки, процедуры воспроизведения дефектов для получения контекста
Ошибки на производственной среде
неучтенные зависимости, неконтролируемые изменения настроек/параметров, разработка в тепличных условиях (на ПК разработчиков), дефекты
Недоступность сервиса
выкатили кривую сборку, долго восстанавливаем прежнюю конфигурацию
Принципы и культура DevOps
CAMS
Culture, Automation, Measurement, Sharing
Доверие
Тесное взаимодействие
Непрерывное улучшение
Проактивность
Автоматизация
Высокое качество
Повторяемость
Мифы и антипаттерны
DevOps — это процесс
DevOps = Agile
Переименование должности в DevOps-инженер
Новая выделенная команда DevOps
Враждебное поглощение
DevOps — очередная серебряная пуля
Разработчики управляют боевыми серверами
Инфраструктура как код
Описание зависимостей в коде
Ревью изменений
Управление конфигурацией
Воспроизводимость окружения
Ansible vs Chef, Docker vs Vargant. Унификация окружений. Клонирование и вариативность. Версионирование и восстановление работавшей версии.
Раннее и непрерывное тестирование
Ревью кода
Подходы и инструменты
Автоматизированное интеграционное тестирование
Автоматизированное функциональное тестирование
Моки, Прокси, Заглушки.
Нагрузочное тестирование
Тестирование безопасности
Статический анализ кода. Fuzzy-тестирование. Типовые атаки и тестирование на проникновение (nmap, openvas, metasploit).
Тестирование в ветках
Базы данных, заглушки
Основные практики DevOps
Непрерывная поставка & Непрерывная интеграция
Сборка, статический анализ, unit-тесты, авто-тесты
Непрерывное развертывание
Хранилища артефактов (artifactory). Инструменты деплоя.
Проактивное обнаружение дефектов
Агрегаторы логов. Анализаторы логов, визуализация нештатных ситуаций, поиск аномалий в работе продукта. Сбор контекста исключений и системных ошибок.
Мониторинг производительности и поведения приложения
Метрики приложения. Характеристики приложения, которые нужно мониторить. Эскалация инцидентов: Информирование команды, Контекст, Комплексная эскалация.
Высокая доступность приложения
Feature flags. Дублирование. Технологии отката: Конфигурации и приложения, Базы данных.
Общая Kanban доска задач команды
Задачи поддержки. Задачи разработки. Инциденты.
Знакомство с основными инструментами
Jenkins, BDD, Selenium, JMeter, Radamsa, Docker, Chef, Ansible, Kubernetes NewRelic, Zabbix, Logstash, ELK+R, OpenShift, OpenStack, Vagrant
Типовая схема DevOps
Система контроля версий
Разработка в ветках. Git-flow, Github-flow, Gitlab-flow.
Непрерывная интеграция и развертывание
Модульные тесты. Статические анализаторы. Интеграционное и функциональное тестирование. Развертывание на UAT.
Приемочное тестирование
Развертывание на боевой среде
Настройка анализатора и визуализация поведения приложения
Метрики процесса
Infrastructure resiliency, MTTR (mean time to recovery), Deployment success rate. Lead time (для заявок поддержки). Количество сорванных сроков поставки. Частота выпуска. Длительность отсутствия качественной сборки. Число инцидентов технического характера (App error rates).
С 2004 года мы помогаем адаптировать к изменениям культуру и процессы компании
Связаться с нами
Дмитрий Лобасев
Managing Partner
+7 495 221 87 39
dmitry@onagile.ru
Наш Telegram канал об Agile и гибких организациях, присоединяйтесь!