Основы 💎 DevOps, от культуры до инструментов

Посмотрите на перечисленные ниже истории, и если хотя бы одна из них окажется знакомой, этот тренинг точно для вас:

Ваши пользователи расстраиваются, что еще долго ждать релиза с нужной фичей

Команде надоело тратить вечер пятницы и все выходные на анализ и поиск проблем в приложении на боевой среде после очередной выкладки

Вместо рутинного ручного обслуживания процесса выпуска сборок, вам хочется сфокусироваться на создаваемом продукте

Чему вы научитесь:

Получите правильное погружение в DevOps

Узнаете о паттернах и практиках непрерывной поставки качественных релизов

Поймете, как в вашем проекте организовать непрерывное тестирование во всех деталях

Познакомитесь с основными инструментами мониторинга приложений и использованием их для проактивного выявления проблем

Узнаете как адаптировать свое приложение и процесс разработки для того, чтобы сделать выпуск сборок быстрым, непрерывным и стабильно качественным

Научитесь организовывать эффективный процесс работы инженерной команды

Технологическая карта DevOps насчитывает более 300 вендоров и продуктов, но мы покажем основные инструменты и научим с ними работать

Введение

Что такое DevOps, трактовки, почему появился

Актуальная статистика State of DevOps Report

ChatOps, NoOps

Что нужно, чтобы начать?

Что такое DevOps, трактовки, почему появился

Актуальная статистика State of DevOps Report

ChatOps, NoOps

Что нужно, чтобы начать?

Проблематика

Длинный цикл релиза

долгое ожидание качественной сборки, окна для выкладки, формальные процедуры, сложные/ручные манипуляции в процессе выкладки, тщательное документирование всех изменений (напр., зависимости).

Низкая скорость расследования инцидентов

подробные процедуры эскалации, 1я линия поддержки, процедуры воспроизведения дефектов для получения контекста

Ошибки на производственной среде

неучтенные зависимости, неконтролируемые изменения настроек/параметров, разработка в тепличных условиях (на ПК разработчиков), дефекты

Недоступность сервиса

выкатили кривую сборку, долго восстанавливаем прежнюю конфигурацию

Длинный цикл релиза

долгое ожидание качественной сборки, окна для выкладки, формальные процедуры, сложные/ручные манипуляции в процессе выкладки, тщательное документирование всех изменений (напр., зависимости).

Низкая скорость расследования инцидентов

подробные процедуры эскалации, 1я линия поддержки, процедуры воспроизведения дефектов для получения контекста

Ошибки на производственной среде

неучтенные зависимости, неконтролируемые изменения настроек/параметров, разработка в тепличных условиях (на ПК разработчиков), дефекты

Недоступность сервиса

выкатили кривую сборку, долго восстанавливаем прежнюю конфигурацию

Принципы и культура DevOps

CAMS

Culture, Automation, Measurement, Sharing

Доверие

Тесное взаимодействие

Непрерывное улучшение

Проактивность

Автоматизация

Высокое качество

Повторяемость

CAMS

Culture, Automation, Measurement, Sharing

Доверие

Тесное взаимодействие

Непрерывное улучшение

Проактивность

Автоматизация

Высокое качество

Повторяемость

Мифы и антипаттерны

DevOps — это процесс

DevOps = Agile

Переименование должности в DevOps-инженер

Новая выделенная команда DevOps

Враждебное поглощение

DevOps — очередная серебряная пуля

Разработчики управляют боевыми серверами

DevOps — это процесс

DevOps = Agile

Переименование должности в DevOps-инженер

Новая выделенная команда DevOps

Враждебное поглощение

DevOps — очередная серебряная пуля

Разработчики управляют боевыми серверами

Инфраструктура как код

Описание зависимостей в коде

Ревью изменений

Управление конфигурацией

Воспроизводимость окружения

Ansible vs Chef, Docker vs Vargant. Унификация окружений. Клонирование и вариативность. Версионирование и восстановление работавшей версии.

Описание зависимостей в коде

Ревью изменений

Управление конфигурацией

Воспроизводимость окружения

Ansible vs Chef, Docker vs Vargant. Унификация окружений. Клонирование и вариативность. Версионирование и восстановление работавшей версии.

Раннее и непрерывное тестирование

Ревью кода

Подходы и инструменты

Автоматизированное интеграционное тестирование

Автоматизированное функциональное тестирование

Моки, Прокси, Заглушки.

Нагрузочное тестирование

Тестирование безопасности

Статический анализ кода. Fuzzy-тестирование. Типовые атаки и тестирование на проникновение (nmap, openvas, metasploit).

​Тестирование в ветках

Базы данных, заглушки

Ревью кода

Подходы и инструменты

Автоматизированное интеграционное тестирование

Автоматизированное функциональное тестирование

Моки, Прокси, Заглушки.

Нагрузочное тестирование

Тестирование безопасности

Статический анализ кода. 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

Непрерывная поставка & Непрерывная интеграция

Сборка, статический анализ, 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).

Система контроля версий

Разработка в ветках. 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 и гибких организациях, присоединяйтесь!