В интернетах существует великое множество статей на тему “что такое 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 — это “управление общей технологической основой организационных процессов”, именно так.