«Это был храбрый старый мир». - Марк А. Рейнер

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

В эпоху до DevOps в любой организации обычно было две отдельные ИТ-группы:

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

Итак, почему этот тип работы может создавать проблемы?

Представьте, что ваш друг тщательно исследует ваш вкус к домашним животным (вы так долго хотели питомца!) и решает подарить вам собаку вашей любимой породы. Какой бы очаровательной ни была собака, вы скоро поймете, что у вас действительно есть проблема - вы должны создать дополнительное пространство для собаки в своей квартире, купить корм для домашних животных, регулярно посещать ветеринара и убедиться, что члены вашей семьи не против домашнее животное (при условии, что вы живете не один). Возможно, вам действительно придется вернуть питомца или отдать его на усыновление кому-то другому, если проблемы слишком велики.

Эту аналогию можно экстраполировать на организацию - например, группа разработчиков создает очень полезное и красивое приложение с использованием процессора i7, но операционная группа не может протестировать приложение, поскольку оно несовместимо с их старым процессором i5. Это может привести к появлению «ошибок» (по мнению команды Ops) и множеству разговоров, чтобы выяснить, что не так. Ваш друг (разработчик) не проверял, какой у вас тип процессора (~ есть ли у вас место и еда для питомца), прежде чем передать его вам.

Войдите в эпоху DevOps - старый мир был достаточно храбрым, чтобы измениться и стать лучше для всех. Модель DevOps гарантирует тесное сотрудничество Ops & Dev на протяжении всего цикла разработки программного обеспечения, от проектирования до разработки, производства и обслуживания. То, как это происходит, может немного отличаться в разных организациях, но обычно модель состоит из следующих этапов:

  • План

Используя современные инструменты управления проектами (например, Azure Boards) и гибкие методы, работа организована таким образом, чтобы каждый знал, на каком этапе находится проект, какие проблемы существуют в команде, кто что делает и что необходимо для успешного завершения продукта. . Производительность и мотивация значительно увеличиваются.

  • Разработка

Оцените, какие ресурсы необходимы для разработки продукта - например, должны ли мы использовать общие частные облака? Следует ли использовать инфраструктуру как код для управления необходимыми ресурсами?

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

  • Тестирование и интеграция

Проверьте код на наличие незначительных изменений / дополнений. Вот концепции непрерывной интеграции (CI) и непрерывной доставки (CD). CI часто объединяет изменения кода в основную ветку (обычно после прохождения некоторых заранее определенных тестов и проверок запросов на вытягивание). CD посвящен частому развертыванию новых версий продукта в производственной среде.

  • Развертывание

Убедитесь, что среда поддерживает внесенные изменения. Эффективно управляйте конфигурациями. Непрерывная доставка (CD) также играет здесь большую роль.

  • Мониторинг

Постоянно отслеживайте ошибки и нежелательное поведение продукта. Если они нуждаются в исправлении, назначьте соответствующие задачи команде.

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

И, конечно же, эффективный и действенный процесс DevOps должен иметь действенные и действенные инструменты, такие как эти:

и так далее.

Ссылки: