DevOps (акроним от англ. development и operations; по-русски обычно произносится как «дево́пс») — набор практик, нацеленных на активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их рабочих процессов друг в друга. Базируется на идее о тесной взаимозависимости разработки и эксплуатации программного обеспечения и нацелен на то, чтобы помогать организациям быстрее создавать и обновлять программные продукты и услуги.
Организациям, которым необходимы частые выпуски программного обеспечения, может понадобиться DevOps. Дневной цикл релизов может быть гораздо более интенсивным у организаций, которые выпускают несколько разнонаправленных приложений.
Методология фокусируется на стандартизации окружений разработки с целью способствования быстрому выпуску версий. В идеале, системы автоматизации сборки и выпуска должны быть доступны всем разработчикам в любом окружении, и у разработчиков должен быть контроль над окружением, а информационно-технологическая инфраструктура должна становиться более сфокусированной на приложении.
Задача DevOps — сделать процесс разработки и поставки программного обеспечения согласованным с эксплуатацией, часто эти задачи решаются при поддержке автоматических средств.
Термин «DevOps» был популяризован серией встреч «DevOps Days», которые начали проходить в 2009 году в Бельгии[1]. С тех пор «DevOps-дни» прошли в Индии, США, Бразилии, Австралии, Германии, Швеции и России[2].
Поскольку DevOps — это командная работа (между сотрудниками, занимающимися разработкой, операциями и тестированием), нет единого инструмента «DevOps»: это скорее набор (или «инструментальная цепочка DevOps»), состоящий из нескольких инструментов. Как правило, инструменты DevOps вписываются в одну или несколько из этих категорий, что отражает ключевые аспекты разработки и доставки программного обеспечения:[3]
Несмотря на то, что доступно множество инструментов, некоторые категории из них имеют особо важное значение в настройке инструментальных средств DevOps для использования в организации. Некоторые попытки идентифицировать эти основные инструменты можно найти в существующей литературе[4].
Такие инструменты, как Docker (контейнеризация), Jenkins (непрерывная интеграция), Puppet (инфраструктура как код) и Vagrant (платформа виртуализации) — и многие другие — часто используются и часто упоминаются в дискуссиях по инструментам DevOps[5].
Agile и DevOps похожи, но Agile представляет собой изменение мышления и практики (что должно привести к организационным изменениям), а DevOps уделяет больше внимания внедрению организационных изменений для достижения своих целей.[6]
Потребность в DevOps рождалась из-за растущей популярности программного обеспечения Agile, поскольку это приводит к увеличению количества выпускаемых версий.
Continuous delivery и DevOps похожи по своим значениям (и часто сочетаются), но они представляют собой две разные концепции:
DevOps применяется в более широких аспектах и сосредоточен вокруг:
Continuous delivery — это подход к автоматизации аспекта поставки, который фокусируется на:
Они имеют общие конечные цели и часто используются вместе для их достижения. DevOps и Continuous delivery используют гибкие методы: небольшие и быстрые изменения с целенаправленным результатом для конечного клиента.
Конкретные цели DevOps охватывают весь процесс поставки программного обеспечения. Они включают:
Методики DevOps делают простые процессы более программируемыми и динамическими. С помощью DevOps можно максимизировать предсказуемость, эффективность, безопасность и ремонтопригодность операционных процессов.
Интеграция DevOps предназначена для доставки продукта, непрерывного тестирования, тестирования качества, разработки функций и обновлений обслуживания для повышения надежности и безопасности и обеспечения более быстрого цикла разработки и развертывания.[8]
DevOps дает преимущества в управлении выпуском программного обеспечения для организации путем стандартизации среды разработки. События можно более легко отслеживать, а также разрешать документированные процессы управления и подробные отчеты. Подход DevOps предоставляет разработчикам больше контроля над средой, предоставляя инфраструктуре более ориентированное на приложения понимание.
Компании, которые используют DevOps, сообщили о значительных преимуществах, в том числе: значительно сокращении времени выхода на рынок, улучшении удовлетворенности клиентов, улучшении качества продукции, более надежных выпусках, повышении производительности и эффективности, а также увеличении способности создавать правильный продукт путем быстрого экспериментирования.[8]
Однако, исследование, выпущенное в январе 2017 года компанией "F5 Labs", на основе опроса почти 2200 ИТ-руководителей и специалистов отрасли, показало, что только один из пяти опрошенных полагает, что DevOps оказывает стратегическое влияние на их организацию, несмотря на рост использования. В том же исследовании было установлено, что только 17 % определили DevOps как ключевой инструмент.[9]
Чтобы эффективно использовать DevOps, прикладные программы должны соответствовать набору архитектурно значимых требований (ASR), таких как: возможность развертывания, изменяемость, тестируемость и возможности мониторинга.
Хотя в принципе можно использовать DevOps с любым архитектурным стилем, архитектурный стиль микросервисов становится стандартом для построения постоянно развернутых систем. Поскольку размер каждой услуги невелик, он позволяет создавать архитектуру отдельного сервиса посредством непрерывного рефакторинга, что уменьшает необходимость в большом предварительном дизайне и позволяет выпускать программное обеспечение на ранней стадии непрерывно.
Для улучшения этой статьи желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .