Что такое DevOps?
Повышайте удовлетворенность разработчиков, каталогизируйте все сервисы и улучшайте работоспособность программного обеспечения.
Воспользуйтесь бесплатным шаблоном DevOpsПопробуйте Compass бесплатно
Повышайте удовлетворенность разработчиков, каталогизируйте все сервисы и улучшайте работоспособность программного обеспечения.
Что такое DevOps?
DevOps — это набор методик, инструментов и философия культуры, которые позволяют автоматизировать и интегрировать между собой процессы команд разработки ПО и ИТ‑команд. Особое внимание в DevOps уделяется расширению возможностей команд, их взаимодействию и сотрудничеству, а также автоматизации технологий.
Как работает DevOps?
В состав команды DevOps входят разработчики и ИТ‑специалисты, которые работают совместно на протяжении всего жизненного цикла продукта, чтобы повысить скорость и качество развертывания ПО. Это новый стиль работы и важное изменение культуры, имеющее значительные последствия для команд и организации в целом.
В соответствии с моделью DevOps команды разработки и администрирования больше не разобщены. Иногда эти две команды объединяются в одну, причем ее участники работают на протяжении всего жизненного цикла приложения — от разработки и тестирования до развертывания и администрирования — и обладают разносторонними профессиональными навыками.
Команды DevOps используют инструменты для автоматизации и ускорения процессов, что повышает надежность. Пакет инструментов DevOps позволяет командам решить ключевые задачи DevOps: реализовать непрерывную интеграцию, непрерывную поставку, автоматизацию и совместную работу.
Ценности DevOps иногда используются не только в командах разработчиков. Когда подход DevOps применяют команды по обеспечению безопасности, безопасность становится активной и неотъемлемой частью процесса разработки. Такой подход называют DevSecOps.
Жизненный цикл DevOps
Суть DevOps заключается в непрерывности, поэтому специалисты используют бесконечный цикл, чтобы показать взаимосвязь фаз жизненного цикла DevOps. Хотя работа последовательно переходит с одного этапа на другой, цикл символизирует необходимость постоянного сотрудничества и итеративного совершенствования на протяжении всего жизненного цикла.

Жизненный цикл DevOps состоит из восьми этапов, причем в левой части бесконечного цикла представлены процессы, возможности и инструменты, необходимые для разработки, а в правой — для эксплуатации. На каждом этапе команды ведут совместную работу и взаимодействуют для поддержания согласованности, скорости и качества.
Исследуйте
Разработка ПО — это командный спорт. При подготовке к предстоящему спринту команды должны провести семинар, чтобы изучить идеи, систематизировать их и расставить приоритеты. Идеи должны соответствовать стратегическим целям и удовлетворять потребности клиентов. Направлять работу команд DevOps помогает методика agile.
Планируйте
Чтобы повысить скорость и качество, команды DevOps должны применять методики Agile. Agile — это итеративный подход к управлению проектами и разработке ПО, который помогает командам разбивать работу на более мелкие части и поставлять результаты отдельными порциями.
Сборка
Git — это бесплатная система управления версиями с открытым исходным кодом. В ней реализована отличная поддержка ветвлений, слияний и перезаписи истории репозитория. Благодаря этому появилось множество инновационных и эффективных рабочих процессов и инструментов, предназначенных для совершенствования процесса разработки.
Тест
Непрерывная интеграция (CI) позволяет нескольким разработчикам помещать код в один общий репозиторий. При слиянии изменений выполняется автоматическое тестирование для проверки правильности кода перед интеграцией. Слияние и тестирование кода часто помогают командам разработчиков убедиться в качестве и предсказуемости развертываемого кода.
Развертывайте
Непрерывное развертывание (CD) позволяет командам часто и в автоматизированном режиме выпускать в рабочую среду новые возможности. Кроме того, команды могут использовать при развертывании флажки возможностей, чтобы поставлять пользователям новый код постепенно и методично, а не весь сразу. Такой подход увеличивает скорость, производительность и стабильность работы команд разработчиков ПО.
Управляйте
Управляйте комплексным предоставлением ИТ-услуг клиентам. Это касается методик, связанных с проектированием, внедрением, настройкой, развертыванием и техническим обслуживанием всей ИТ‑инфраструктуры, которая обеспечивает поддержку услуг организации.
Наблюдение
Быстро выявляйте и решайте проблемы, которые влияют на время безотказной работы, скорость и функциональные характеристики продукта. Автоматически уведомляйте команду об изменениях, опасных действиях и сбоях, чтобы можно было продолжать предоставление услуг.
Непрерывная обратная связь
Команды DevOps должны оценивать каждый релиз и создавать отчеты для улучшения будущих релизов. Имея непрерывную обратную связь, команды могут совершенствовать свои процессы и учитывать отзывы клиентов для повышения качества последующих релизов.
Инструменты DevOps

Инструменты DevOps применяются на всех основных этапах жизненного цикла DevOps. Они позволяют применять методики DevOps на практике благодаря более эффективной совместной работе, автоматизации, наблюдению и мониторингу, а также возможности меньше переключаться между контекстами.
Все пакеты инструментов DevOps делятся на два типа: универсальные и открытые. Универсальный пакет инструментов — это комплексное решение, которое, как правило, не интегрируется со сторонними инструментами, тогда как открытый пакет можно настраивать и дополнять. У каждого из этих подходов есть свои плюсы и минусы.
Пример открытого пакета инструментов DevOps — решение Atlassian Open DevOps Solution на базе Jira, которое интегрируется с инструментами ведущих поставщиков и приложениями Marketplace.
Каковы преимущества DevOps?
По данным опроса Atlassian Тенденции DevOps за 2020 год, 99 % респондентов считают, что методика DevOps принесла пользу их организациям. К преимуществам DevOps относятся более быстрый и простой выпуск релизов, эффективная работа команды, повышение безопасности и качества продуктов и, как следствие, рост удовлетворенности команд и клиентов.
Скорость
Команды, следующие принципам DevOps, выпускают более частые, качественные и стабильные релизы. Это подтверждается отчетом DORA о состоянии DevOps за 2019 год, согласно которому высококлассные команды выполняют развертывания в 208 раз чаще и в 106 раз быстрее, чем команды с низкой эффективностью. Непрерывная поставка позволяет командам создавать, тестировать и поставлять программное обеспечение с помощью автоматизированных инструментов.

Более эффективная совместная работа
Основой DevOps является культура сотрудничества команд по разработке и эксплуатации, которые несут общую ответственность и объединяют свою работу. При этом повышается эффективность работы команд и сокращаются затраты времени на передачу работы и создание кода, который разрабатывается для среды, в которой выполняется.

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

Качество и надежность
Непрерывная интеграция и непрерывная поставка делают изменения эффективными и безопасными и повышают качество программного продукта. Мониторинг позволяет командам получать информацию о производительно сти в режиме реального времени.

Безопасность
После внедрения методик обеспечения безопасности в конвейер непрерывной интеграции, непрерывной поставки и непрерывного развертывания подход DevSecOps становится активной и неотъемлемой частью процесса разработки. Безопасность продукта с первых же этапов разработки обеспечивается путем внедрения активных проверок и тестирования безопасности в рабочие процессы agile-разработки и DevOps.
В чем трудности внедрения DevOps?
От прежних привычек трудно избавиться. Команды, привыкшие работать изолированно, могут испытывать трудности и даже противиться перестройке структуры для внедрения методик DevOps. Некоторые команды могут ошибочно считать, что для внедрения DevOps достаточно новых инструментов. Однако DevOps опирается не только на инструменты, но и на людей и культуру. Каждый участник команды DevOps должен понимать весь поток создания ценности — от идеи до разработки и взаимодействия с конечным пользователем. Для совместной работы на протяжении всего жизненного цикла продукта необходимо преодолеть разобщенность.
DevOps — это задача не для одного человека. Это задача для всех сотрудников.
Robert Krohn
Технический руководитель отдела DevOps в Atlassian
Переход от устаревшей инфраструктуры к использованию инфраструктуры как кода (IaC-обработки) и микросервисов позволит ускорить разработку и внедрение инноваций, однако увеличение рабочей нагрузки может оказаться непростой задачей. Прочной основой, которая поможет снизить нагрузку, должны стать автоматизация, управление конфигурацией и непрерывная поставка.
Чрезмерная зависимость от инструментов может отвлечь от обязательных основ DevOps: команды и организационной структуры. После создания структуры нужно заняться процессами и командой, а уже затем — инструментами.
Как внедрить DevOps
Для внедрения DevOps требуется прежде всего готовность проанализировать команды, инструменты и процессы в организации, изменить их состав, а возможно, и отказаться от некоторых из них. Важно создать необходимую инфраструктуру, чтобы команды могли самостоятельно разрабатывать и развертывать свои продукты, а также управлять ими, не слишком полагаясь на внешние команды.
Культура DevOps
Культура DevOps помогает командам по-новому организовать рабочий процесс, укрепить сотрудничество и взаимодействие. Она ориентирует сотрудников, процессы и инструменты в одном направлении — на удовлетворение потребностей клиентов. Многопрофильные команды несут ответственность за весь жизненный цикл продукта.
Непрерывное обучение
В организациях, где успешно используют DevOps, поощряются эксперименты и определенный риск. Нестандартное мышление считается нормой, а неудачи — естественной частью процесса обучения и совершенствования.
Гибкая методология agile
Методики Agile очень популярны в индустрии программного обеспечения, потому что улучшают организацию в командах и повышают их гибкость, позволяя реагировать на изменения. DevOps — это изменение культуры, которое способствует развитию сотрудничества между разработчиками ПО и теми, кто занимается его обслуживанием. Сочетание методик Agile и DevOps обеспечивает высокую эффективность и надежность.
Методики DevOps
Непрерывная интеграция
Непрерывная интеграция — это методика, направленная на автоматизированную интеграцию изменений кода в программный проект. Благодаря этому разработчики могут чаще проводить слияние изменений кода с центральным репозиторием, где выполняются сборка и тестирование. Непрерывная интеграция помогает командам DevOps быстрее устранять баги, повышать качество программного обеспечения и сокращать сроки проверки и выпуска новых обновлений ПО.
Непрерывная поставка
Непрерывная поставка является продолжением непрерывной интеграции и используется для автоматического развертывания изменений кода в тестовой и рабочей средах. Создается конвейер непрерывной поставки, в котором автоматизированные процессы сборки, тестирования и развертывания организуются в единый рабочий процесс выпуска релизов
Ситуационная осведомленность
Очень важно, чтобы каждый участник организации имел доступ к данным, необходимым для максимально быстрого и эффективного выполнения работы. Участники команды должны получать оповещения о сбоях в конвейере развертывания (включая системные сбои и ошибки тестирования), а также актуальную информацию о работоспособности и производительности приложений, выполняющихся в рабочей среде. Показатели, журналы, трассировки, мониторинг и оповещения — все это важные источники обратной связи, необходимые командам для работы.
Автоматизация
Автоматизация — одна из важнейших методик DevOps. Она позволяет командам значительно ускорить процесс разработки и развертывания программного обеспечения высокого качества. Благодаря автоматизации простая отправка изменений кода в репозиторий исходного кода может запустить процесс сборки, тестирования и развертывания, что значительно сокращает затраты времени на выполнение этих действий.
Инфраструктура как код
Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.
Микросервисы
Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.
Мониторинг
Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.
Начните работу с DevOps
Самый простой способ начать работу с DevOps — определить простой поток создания ценности (например, небольшое вспомогательное приложение или услугу) и поэкспериментировать с методиками DevOps. Как и в случае разработки программного обеспечения, гораздо проще преобразовать один поток с небольшой группой заинтересованных сторон, чем пытаться внедрить новый стиль работы сразу во всей организации.
Atlassian предлагает решение Open DevOps Solution со сквозными процессами DevOps, использующими инструменты Atlassian и сторонних разработчиков. Взяв Jira в качестве основы, команды могут использовать продукты Atlassian или добавить в открытый пакет инструментов свои любимые продукты. Экосистема Atlassian включает продуманный набор интеграций и аддонов, с помощью которых команды могут настроить пакет инструментов под свои потребности.
Ознакомьтесь с нашими обучающими руководствами по DevOps, посвященными автоматизации, тестированию, безопасности, наблюдаемости, включению и отключению возможностей и непрерывной поставке.
