Полный разбор DevOps (часть 1)

Сегодня разбираемся, зачем нужна методология DevOps и в чем ее суть.

Что такое DevOps?

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

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

А если все-таки проблемы? Любые изменения ставят под угрозу стабильность работы продукта. А за нее отвечает команда эксплуатации с всегда готовым аргументом: «Проблемы с кодом, пусть разработчики разбираются!». В итоге продукт один, а стратегии противоречащие: у команды разработки быстрые изменения, у команды эксплуатации стабильность. Запуски откладывают, качество страдает, сотрудники перекладывают ответственность. В одном релизе сразу несколько изменений, поэтому отследить причины проблем с выпуском обновлений не получается. 

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

Основополагающие принципы DevOps

Принцип 1. Ориентированность на клиента

Продукты и услуги должны максимально удовлетворять потребности клиентов. Помогут циклы быстрой обратной связи (short feedback cycles) с клиентами и конечными пользователями, а также стратегия непрерывных инноваций (continuous innovation).

Принцип 2. Приоритет конечный результат

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

Принцип 3. Ответственность от начала и до конца

Команды несут ответственность за продукт на протяжении всего жизненного цикла (product life cycle), от этапа разработки концепции (concept stage) до вывода из эксплуатации (decommissioning).

Принцип 4. Многофункциональные автономные команды

Команды должны сохранять независимость. Нужно подобрать специалистов разной специализации, при этом у каждого углубленные знания в одной области и общее представление о множестве смежных (T-shaped profiles of specialists). Так команда станет местом личного развития и роста.

Принцип 5. Непрерывные улучшения

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

Принцип 6. Максимальная автоматизация

Автоматизацию можно вводить за пределами процессов разработки ПО непрерывный выпуск обновлений (continuous delivery), в т. ч. непрерывное развертывание (continuous deployment) и непрерывная интеграция (continuous integration). Запрограммировать можно всю инфраструктуру. 

 

Статью перевела: Бедретдинова Диана

Иллюстратор: Галина Таранова, контент-менеджер, маркетолог бюро переводов «Альянс ПРО»

Источник: https://dzone.com/articles/what-is-devops-complete-guide