автоматизация-бизнеса

Определение DevOps и немного истории

DevOps – эффективная методологическая система, объединяющая воедино автоматизированную сборку, настройку и тестирование программных продуктов. Разработчики ПО тесно взаимодействуют с IT-специалистами по эксплуатации, и взаимная интеграция процессов обеспечивает высокое качество программной продукции. Название DevOps произошло от двух терминов: development & operations (англ.).

История DevOps неофициально начинается с 1990-х годов (с мира Agile). Фактическое признание методология получила в 2001 году, когда команды разработчиков начали практиковать приемы экстремального программирования для удовлетворения потребностей заказчиков. Приложения разрабатывались в режиме максимальной автоматизации, обязанности разработчиков расширились и включили в себя настройку операций и поддержание инфраструктуры.

Растущая популярность Agile способствовала увеличению количества выпускаемых версий, вследствие чего возникла потребность в эффективной системе организации создания и обновления ПО. Так со временем появилась методология DevOps, которая считается сейчас своеобразной культурой создания программной продукции. Главная задача инженеров – объединить в единое целое при помощи автоматизации процессы разработки и поставки ПО, обеспечить согласование с эксплуатацией, контроль окружения разработки, быстрый перенос продукта через весь цикл создания и эксплуатации.

В начале 2000-х годов доминирующие позиции среди методологий управления проектами занимал Scrum. Поскольку в нем отсутствовали некоторые методы, составляющие части команд Agile, в 2009 году выделилось и сформировалось DevOps-движение за автоматизацию составляющих процессов и взаимодействие разработчиков со специалистами по эксплуатации. В связи с этим в Бельгии была проведена серия тематических конференций, которые впоследствии проводились и в других странах.

Отделившееся движение расширилось и приобрело вид современного DevOps. Основная концепция – развертывание разработанного ПО вне зависимости от методологии разработки, а также непрерывная интеграция и доставка.

Преимущества DevOps

  • Обеспечивает повышение конкурентоспособности и эффективности бизнеса, связывает воедино процесс создания, эксплуатацию и проверочные испытания продукта.
  • При помощи эффективных инструментов в программные продукты оперативно вносятся изменения.
  • DevOps способствует стабильной работе системы и сокращению времени на восстановление в случае сбоя.
  • За счет автоматизации процессов разработки, тестирования и эксплуатации принятие и реализация программных решений максимально ускоряются.
  • При внедрении DevOps упорядочиваются IT-проекты, снижается количество ошибок из-за «человеческого фактора», ускоряются и упрощаются рутинные операции, улучшаются коды.
  • Методики и мониторинг DevOps обеспечивают оперативную обратную связь о функциональности и состоянии системы.
  • Отделы внедрения и разработки постоянно взаимодействуют, упрощаются и ускоряются коммуникации.
  • DevOps обеспечивает продуктивное взаимодействие системных администраторов и разработчиков, общую ответственность за результат.

Работа с методиками DevOps побуждает инженеров к постоянному самосовершенствованию, изучению новых инструментов и требований к программному обеспечению. ПО обновляется чаще, не теряя при этом в качестве.

Методики DevOps

Одна из основных методик – CI/CD — предусматривает автоматизированные тестовые испытания и передачу новых программных модулей конечным потребителям. Главными аспектами CI/CD являются:

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

Применение этой методики позволяет оперативно выводить новые функциональные возможности программных приложений в соответствии с клиентскими запросами, оптимизировать ресурсы, быстро решать задачи, связанные с кодами. Одновременное тестовое испытание отдельных частей повышает качество продукта. На начальных этапах выявляются и прорабатываются проблемные участки, устраняются функциональные недочеты программы. Метод применяется в следующей последовательности: написание кода, сборка программы, тестирование вручную, выпуск релиза. После прохождения этих стадий инженеры занимаются развертыванием, поддержкой и мониторингом, а также планированием.

Помимо CI/CD, в командной работе DevOps применяются другие инструменты: Terraform, Ansible, Puppet (развертывание сред по шаблону), GitLab, Jenkins (управление непрерывной интеграцией), Kubernetes, Docker (управление контейнеризацией) и многие другие. Инженеры во многих случаях используют комбинацию различных инструментов для работы.

Кому и для чего удобно применять DevOps

Методология и культура DevOps актуальна для компаний, которые нуждаются в частых выпусках программных продуктов. При выпуске нескольких разнонаправленных приложений дневной цикл с DevOps становится более интенсивным. Опытные DevOps-инженеры компаний отмечают повышение надежности выпусков, ускорение выхода продуктов на рынок, повышение эффективности и производительности, увеличение шансов на создание качественного продукта за счет быстрого экспериментирования.

Использовать методики DevOps целесообразно для уменьшения времени на восстановление в случае отключения системы или сбоя новой версии, для ускоренного внесения исправлений, для снижения частоты отказов новых релизов, для ускорения выпуска продукта на рынок.

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