Что такое DevOps
DevOps (от английских слов development и operations) — набор практик, нацеленных на активное взаимодействие специалистов по разработке со специалистами по технической поддержке и взаимную интеграцию их рабочих процессов друг в друга. Базируется на идее о тесной взаимозависимости разработки и эксплуатации программного обеспечения и нацелен на то, чтобы помогать организациям быстрее создавать и обновлять программные продукты и услуги.
Методология фокусируется на стандартизации окружений разработки с целью способствования быстрому выпуску релизов. В идеале, системы автоматизации сборки и выпуска должны быть доступны всем разработчикам в любом окружении, у разработчиков должен быть контроль над окружением, а информационно-технологическая инфраструктура должна становиться более сфокусированной на приложении.
Задача DevOps — сделать процесс разработки и поставки программного обеспечения согласованным с эксплуатацией, часто эти задачи решаются при поддержке автоматических средств.
DevOps, согласно модели DevOps Gartner, это:
- Культура взаимодействия
- Люди
- Инструменты
- Процессы (инженерные и процессные практики)
Начинать изменения необходимо не с внедрения инструментов, а с развития соответствующей культуры.
Типы корпоративной культуры
Патологические | Бюрократические | Производительные | |
Методы управления | Регламентирующие | Регламентирующие | Целеполагающие |
Уровень сотрудничества | Низкий уровень | Средний уровень | Высокий уровень |
Ответственность | Уклонение | Узкая область | Широкая область |
Горизонтальные связи | Порицаются | Допускаются | Поощряются |
Реакция на сбои | Новые козлы отпущения | Новые правила | Новые исследования |
Отношение к инновациям | Подавляются | Приводят к проблемам | Внедряются |
Как передается информация | Кому выгодно? | Кому предписано? | Для кого важно? |
К чему приводят сбои | Поиск виновных | Новые инструкции | Исследование проблемы |
Культура DevOps это:
- Культура доверия
- Культура сотрудничества
- Общая ответственность
- Постоянное совершенствование
- Инженерная культура
- Культура обучения
Люди
- Кросс-функциональные команды (Full-Stack Teams)
- Постоянная ротация (Job rotation)
- Фича-команды (Feature Teams)
- Автономные команды (Autonomous Teams)
- Совместные встречи (Joint meetings)
- Специалисты поддержки (Site Reliability Engineers)
- Разработчики платформы (Platform Engineers)
Технологии
- Инфраструктура как код (Infrastructure as Code)
- Сервисы самообслуживания для разработчика (Developer Self-service)
- Разработка, тестирование и развертывание за один шаг (One-Step Build, Test, Deploy)
- Сквозной мониторинг (Monitor Everything)
- Встроенные инструменты компиляции (Integrated Tool Chains)
- Чаты для работы с инфраструктурой (ChatOps)
- Непрерывный мониторинг (Continuous Monitoring)
Процессы (инженерные и процессные практики)
- Непрерывная интеграция (Continuous Integration)
- Непрерывное тестирование (Continuous Testing)
- Непрерывные поставки (Continuous Delivery)
- Создание продукта минимальной ценности (MVP)
- Разработка небольшими кусками (Small Batches)
- Автосборка (Automated Builds)
- Автотестирование (Automated Testing)
- Автоматизация релизов (Release Automation)
- Выкатка функционала на часть пользователей (Canary Rollouts)
- Возможность быстро откатки изменений (Fail Forward)
- Полная автоматизация (Instrument everything)
- Версионирование (Version Everything)
- Разработка через тесты (TDD)
- Исправление технического долга (Technical Debt)
- Максимальное покрытие тестами (Test Everything)
- Инструменты имитации сбоев (Chaos Monkey, Дикая обезьяна)
- Общие метрики (Common Metrics)
- Оптимизация рабочего процесса (Optimize Flow)
- Выявление потоков ценности (Value Streams)
Цели DevOps
Конкретные цели DevOps охватывают весь процесс поставки программного обеспечения. Они включают:
- Сокращение времени для выхода на рынок;
- Снижение частоты отказов новых релизов;
- Сокращение времени выполнения исправлений;
- Уменьшение количества времени на восстановления (в случае сбоя новой версии или иного отключения текущей системы).
Источники: в подготовке статьи использованы материалы с сайта https://www.gitbook.com/book/powertsai/devops-/details
Рекомендуем посмотреть:
Какая коммуникация наиболее эффективна
23.06.2018