DevOps — одна из ключевых тенденций в современной разработке программного обеспечения. Однако зачастую даже специалисты не в полной мере понимают, что скрывается за этим термином.
Концепция DevOps, объединяющая разработку (development) с операционной и эксплуатационной деятельностью (operations), описывает организационную структуру, практики и культуру, позволяющую совмещать быстроту и гибкость разработки с масштабируемостью и надежностью эксплуатации. DevOps характеризует порядок взаимодействия команд разработчиков и специалистов, поддерживающих операционную деятельность, благодаря которому они могут согласованно работать над улучшением восприятия ИТ пользователями, быстрее реагировать на потребности бизнеса и обеспечивать безопасное внедрение инноваций.
Для команд разработчиков это обычно означает стандартизацию платформ, гибкую разработку и участие в проектах, поддерживающих операционную деятельность. Для операционных команд — ориентацию на стабильность, сокращение затрат и улучшение отклика на потребности клиентов.
Основные практики DevOps сконцентрированы вокруг стандартов конфигурации инфраструктуры, автоматизации, тестирования и мониторинга. Однако концепция DevOps требует еще и изменения культуры и менталитета в сфере ИТ.
Со сложившейся организационной структурой и распределением ответственности между разработчиками и эксплуатационниками согласны сегодня не все.
Некоторые настаивают на объединении разработчиков с группой эксплуатации, чтобы одна и та же команда DevOps отвечала за все. И в этом есть определенные преимущества с точки зрения культуры, поскольку программисты и сисадмины вынуждены нести ответственность и за эксплуатационную деятельность, и за удовлетворение потребностей бизнеса. Такая структура может быть более эффективной, особенно в небольших организациях, которым непросто найти ресурсы, позволяющие сосредоточиться на разработке или выполнении операций независимо друг от друга. Многие полагают, что при стандартизации облачной инфраструктуры и автоматизации большинства рабочих процессов потребность в отдельных группах людей, которые обладают различными навыками и отвечают за свой конкретный участок работы, снижается.
И хотя создание такой интегрированной структуры вполне возможно, решить эту задачу организациям, которые работают с унаследованными ИТ-системами и не располагают инженерами с квалификацией, позволяющей им работать с новейшими технологиями и способными самостоятельно справиться с автоматизацией и внедрением всех необходимых стандартов, будет весьма непросто. Даже при наличии такой возможности большинство организаций сначала постараются обрисовать свои потребности в цифровизации, реализовать намеченные планы по ведению цифрового бизнеса и лишь затем приступят к совершенствованию процессов в сфере ИТ. Именно в такой последовательности организациям, охваченным процессами цифровой трансформации, нужно осуществлять переход к концепции DevOps.
Переход к DevOps призван уменьшить число конфликтов, возникающих, когда разработчики ориентированы на удовлетворение потребностей бизнеса, добавление новых функций и повышение удобства использования приложений, а эксплуатационники традиционно сосредоточены на надежности и безопасности функционирования ИТ-систем. Таким образом, разработчиков нужно учить операционной деятельности, а эксплуатационников — более быстрому и эффективному удовлетворению потребностей бизнеса.
Основополагающая техническая концепция DevOps такова: по мере автоматизации процессов взаимодействия с инфраструктурой в ходе построения, тестирования, развертывания и мониторинга ИТ, организации могут устранить многие операционные дефекты и улучшить разработку и эксплуатационные процессы. На практике же главные вопросы заключаются в том, какие инструменты следует использовать и какие средства имеет смысл инвестировать в каждую отдельную область DevOps.