Что такое Devops

В интернетах существует великое множество статей на тему “что такое devops”, приводятся разнообразные версии, как-то:

и прочие подобные вариации и это все действительно вдохновляет.

Тут же рядом движутся движения ChatOps и MonitoringLove (ex-MonitoringSucks), ворох технологических решений (управление конфигурацией, виртуализация, контейнеризация, и еще вагон и маленькая тележка) и технологических практик (унификация dev/prod окружений, immutable servers, continuos delivery/deployment).

Часто приводят параллели с Agile, и довольно часто пытаются (чаще всего на LinkedIn и, по-моему, не очень успешно) как-то стыковать его с ITIL.

Однако, практически каждое понятие можно свести к базовым смыслам, при помощи которых можно описать его максимально сжато.

Для devops это будет “управление общей технологической основой организационных процессов”.

Любая организационная практика (а devops несомненно такой является) призвана как-то упорядочивать процессы в организации, делать их понятными.

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

Сюда замечательно ложится все вышеперечисленное:

  • “общение/сотрудничество/интеграция” — в общем, то же самое, но довольно поверхностно и крайне размыто, на грани понимания
  • “культура/автоматизация/измерение/обмен” — то же самое, но в терминах более-менее понятных процессов
  • управление конфигурацией — протокол работы с серверами, одновременно является документацией, а также основой для почти всего остального
  • унификация dev/prod окружений и immutable servers — контекст технологического общения разработчиков, тестеров и админов
  • виртуализация, контейнеризация — немного сбоку, но без них вряд ли возможно что-то из перечисленного
  • continuos delivery/deployment — делаем наш процесс непрерывным, вовлекаем в него людей
  • ChatOps — протокол, логирование, средство управления, коммуникация с командой
  • MonitoringLove — то же самое, что у ChatOps, но практически однонаправленное (поэтому ChatOps во многом на нем основан)

Естественно, как и Agile с ITIL, Devops в частности — это каталог, набор практик, приемов, технологий, инструментов для осуществления задачи, которую он перед собой ставит. Каждая из его частей делает какой-то вклад, но не является обязательной. Вполне нормально применять один-два приема, или же применять все, что получается — вопрос лишь в том, что мы хотим получить и какой ценой.

Devops — это “управление общей технологической основой организационных процессов”, именно так.

Comments