DevOps (от англ. development и operations) — практика непрерывного создания и поддержки программного обеспечения. Методология DevOps призвана устранить разрыв между интересами команд разработки, тестирования и эксплуатации продукта, повысить эффективность производства ПО и ускорить выпуск новых версий. Для этого в рамках DevOps процессы разработки, тестирования и эксплуатации интегрируются друг с другом. Концептуально DevOps похожа на Agile, но больше фокусируется на изменениях в организации.
Инструменты DevOps
Методология DevOps подразумевает стандартизацию окружений разработки и автоматизацию рутинных процессов на разных этапах производственного цикла. Для этого применяют набор инструментов, в который обычно входят:
- Средства совместной работы и планирования, такие как мессенджеры и системы отслеживания задач.
- Системы контроля версий для регулярного выпуска обновлений.
- Инструменты конфигурации, позволяющие использовать один и тот же шаблон на разных устройствах.
- Системы непрерывной интеграции, упрощающие работу с версиями.
- Системы контейнеризации, автоматизирующие развертывание приложения и управление им.
- Автотесты и системы отслеживания багов.
Жизненный цикл продукта с точки зрения DevOps
Цикл продукта в DevOps может незначительно варьироваться от продукта к продукту. Однако в общем виде схема работы команды DevOps выглядит так:
- Планирование
- Написание кода
- Сборка
- Тестирование
- Выпуск
- Развертывание
- Эксплуатация
- Контроль
Несовершенства, выявленные на этапе контроля, ложатся в основу дальнейшего планирования исправлений и разработки следующей версии.
DevOps и безопасность
При применении методологии DevOps проверки безопасности часто откладывают на последний момент или вообще пропускают. Команды разработки и эксплуатации опасаются, что тщательное тестирование на предмет безопасности существенно замедлит процесс и даст фору конкурентам. Для интеграции безопасности в производственный цикл DevOps без существенного замедления процессов создана методология DevSecOps.