DevOps (акроним от англ. development и operations) — это набор практик (методология), сфокусированные на предельно активном взаимодействии программистов, тестировщиков и админов, для создания единого цикла разработки, эксплуатации и деплоя программного обеспечения. Главная цель – сокращение времени разработки программного обеспечения и ускорение выпуска обновлений и патчей.
DevOps engineer — специалист, который работает на стыке разработки и эксплуатации и занимается автоматизацией жизненного цикла приложения (включая проектирование, разработку, тестирование, развертывание, поддержку и мониторинг).
Большинство DevOps инженеров — это системные администраторы, выучившие инструменты программирования, или же разработчики, разобравшиеся с тонкостями процессов эксплуатации.
По сути DevOps-инженер несет ответственность за автоматизацию задач, настройки и развертывания приложений. Также он обеспечивает мониторинг ПО.
Во многих компаниях, разработчик видит только свой фронт ответственности, и как следствие, не вникает в чужую (как ему кажется) зону ответственности. Как итог, должен быть кто-то, кто возьмет на себя ответственность за решение возникающих межстыковых проблем на всех этапах обновления или эксплуатации системы. Зачастую ему также приходится создавать последовательную и логичную систему по налаживанию взаимодействия всех участников разработки-тестирования-внедрения-эксплуатации ПО.
Также необходимо отметить тот факт, что со временем ПО может начать расти, что как следствие приводит к усложнению инфраструктуры и методом развертывания данного продукта. Это приводит к росту используемых технологий. И как итог, на любом из этапов развертывания ПО увеличивает риск получения критических ошибок.
Графически DevOps можно представить так:

Что важно знать?
Как следствие, DevOps обязан иметь широкий технический кругозор:
- Знание операционных систем (Windows, Linux)
- Знание систем виртуализации (VMware, KVM, Xen, Hyper-V)
- Широкие технические знания (сетевых технологий, хранилищ и т.д.)
- Навыки написания сценариев (Bash, Powershell)
- Знание (знакомство) с языками программирования (java, python, php)
- Знание систем автоматизации (Chef, Puppet, Ansible)
- Знания облачной инфраструктуры (Amazon AWS, Google, Azure)
- Навыки коммуникации
Кем должен быть DevOPS?
Также, из-за специфики работы, он должен обладать следующими личностными качествами:
- Аналитический склад ума;
- Стрессоустойчивость;
- Умение не сдаваться даже в безвыходных ситуациях.
Внедрение DevOps, запуск и поддержание в дальнейшем позволит оперативно разрешать возникшие проблемы, а также создать механизм по дальнейшему предотвращению возникновения авралов.
По факту конечной целью любого DevOps должен стать следующий процесс разработки/внедрения

Что почитать?
• «Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему”, Джун Ким, Джонг Хан Ким, Бер К., Спаффорд Д.
• «Философия DevOps. Искусство управления IT», Дженнифер Дэвис
• «Site Reliability Engineering» edited by Betsy Beyer, Chris Jones, Jennifer Petoff and Niall Richard Murphy
• «The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations» by Gene Kim, Patrick Debois, John Willis, Jez Humble
Ну и в помощь идущим по пути DevOps, предлагается следующая дорожная карта на 2020 год:
