Разница между DevOps и управлением конфигурацией программного обеспечения

16

В чем разница между операциями разработки и управлением конфигурацией программного обеспечения?

Мне кажется, что это одно и то же, поскольку DevOps и Software Configuration Management сосредоточены на:

  1. Создание инфраструктуры разработки - отвечает за контроль версий, управление сборкой, управление развертыванием, управление зависимостями, непрерывную интеграцию и доставку и т. Д.
  2. Использование лучших практик для организации среды разработчиков .
  3. Обеспечение качества процессов разработки - сбор метрик эффективности разработки, работа по устранению узких мест процесса разработки (выполнение юнит-тестов, оценка охвата юнит-тестов, проведение инспекций и т. Д.)
  4. Управление инфраструктурой - целевые платформы и его специфика.
  5. Управление релизами - проверка того, что релиз был доставлен клиенту / клиенту вовремя.

Может я что-то упустил? Эта ссылка показывает, что преобладает использование термина «Управление конфигурацией программного обеспечения». Но все же, какую комбинацию слов вы бы предпочли использовать для описания перечисленного диапазона действий: разработка операций или управление конфигурацией программного обеспечения ?

чередующееся
источник

Ответы:

19

Термины описывают очень похожие понятия и обязанности, и в целом они несколько синонимичны. Термин «DevOps» является относительно новым, популяризированным конференцией Devopsdays Ghent 2009 и последующими событиями Devopsdays . Это лучше всего описано на этой диаграмме :

введите описание изображения здесь

С другой стороны, управление конфигурацией программного обеспечения является гораздо более устоявшимся термином в профессии и происходит от термина « Управление конфигурацией, не относящегося к конкретному программному обеспечению» . На управление конфигурацией программного обеспечения часто ссылаются в контексте разработки программного обеспечения, простое определение дано Роджером Прессманом в статье «Разработка программного обеспечения: подход практикующего специалиста» :

представляет собой набор действий, предназначенных для управления изменениями путем определения рабочих продуктов, которые могут измениться, установления взаимосвязей между ними, определения механизмов управления различными версиями этих рабочих продуктов, контроля над внесенными изменениями, а также аудита и отчетности о внесенных изменениях.

Хотя все термины, на которые вы ссылаетесь, являются расплывчатыми, DevOps представляется просто менее формальным способом описания более или менее того же набора принципов, что и Configuration Management или Software Configuration Management, если смотреть с точки зрения разработчика программного обеспечения, особенно при определении приоритетов в тесно связанных командах :

DevOps - это ответ на растущее осознание того, что существует разрыв между тем, что традиционно считается деятельностью по разработке, и тем, что традиционно считается операционной деятельностью. Это разъединение часто проявляется как конфликт и неэффективность.

В той же статье отмечается сходство с SCM:

Добавление к Стене Путаницы - слишком распространенное несоответствие в инструментах разработки и эксплуатации. Взгляните на популярные инструменты, которые разработчики запрашивают и используют ежедневно. Затем взгляните на популярные инструменты, которые системные администраторы запрашивают и используют ежедневно. За некоторыми заметными исключениями, такими как отслеживание ошибок и, возможно, SCM , сомнительно, что вы заметите большой интерес к использованию инструментов друг друга или значительной интеграции между ними. Даже если есть некоторые совпадения в типах инструментов, часто реализации будут отличаться в каждой группе.

Что касается использования терминов, ваше сравнение не имеет смысла:

  1. SCM - это подмножество CM, а не конкурентный термин,
  2. DevOps - это довольно новый термин, который не имеет смысла сравнивать с установленными терминами,
  3. DevOps происходит от Developer Operations (очевидно), но редко расширяется как таковой.
Яннис
источник
Вы имеете в виду SCM, поскольку управление исходным кодом или управление конфигурацией программного обеспечения является подмножеством CM?
альтернатива
@zaphod_beeblebrox: это изображение взято из статьи в Википедии: en.wikipedia.org/wiki/DevOps :)
альтернатива
@altern Абзац под красивой картинкой: «С другой стороны, управление конфигурацией программного обеспечения является гораздо более устоявшимся термином в профессии и происходит от термина« Управление конфигурацией, не связанного с программным обеспечением ».» : P Также фотография взята из блога, на который я ссылаюсь. Если бы автор взял это из Википедии, я бы не узнал.
Яннис
@zaphod_beeblebrox: я, вероятно, должен изменить название своего вопроса тогда
альтернатива
@altern Что ты имеешь в виду? Управление конфигурацией программного обеспечения не только в названии. Кроме того, что, черт возьми, это «Управление исходным кодом». Вы имеете в виду контроль версий? Если да, то контроль версий является аспектом управления конфигурацией программного обеспечения, поэтому ответ остается неизменным. Но сравнивать контроль версий с devops странно, если не сказать больше.
Яннис
6

Лично я являюсь менеджером конфигурации программного обеспечения Sr. в течение многих лет (10+). Я слышал, что термины не совпадают в различных реальных ситуациях. Это не редкость для нетехнического персонала из-за относительного характера должностей. У них обоих есть определенные роли, потребности и требования, которые похожи, но все же могут быть четко разделены на мой взгляд.

Я считаю, что лучший способ описать разделение этих ролей - сосредоточиться на их относительности к взаимодействию. Это означает, что Software Configuration Management ориентирована на внутренние системы и среды, а также на интеграцию, развертывание, выпуск и управление исходным кодом. В то время как Developer Operations (DevOps) уделяет больше внимания эксплуатационному аспекту архитектуры приложений, с которыми сталкиваются внешние пользователи, при этом сохраняя четкое понимание кода, как он был предназначен для использования, и практики его среды. Если производительность машины демонстрирует признаки ухудшения, связь между несколькими приложениями неисправна, ограничения связи и / или архитектура между предприятиями (BtB) и / или архитектура связаны с производственной средой, тогда вам следует обратиться к Developer Operations за их диагностикой и решение.

Как обычно, по моему опыту, диспетчер конфигурации программного обеспечения также может выполнять эти функции, но это отвлекает их от основного направления: отслеживание, управление и развертывание конфигураций среды и изменений программного обеспечения. Управление программным обеспечением, которое позволяет разделить обязанности, отслеживать ошибки и дефекты, отслеживать проекты, а также жизненный цикл разработки программного обеспечения и рабочий процесс. Эти задачи не являются основной задачей Developer Operations и, следовательно, менее обязательны, но все же могут быть выполнены.

Я видел много случаев путаницы у каждого, и в каждом есть некоторый ограниченный кроссовер. Тем не менее, наиболее важно думать о различиях между обязанностями каждой из независимых позиций по отношению к их основной направленности. В первую очередь при работе с внутренними системами и оборудованием для управления конфигурацией сред и выпуском продукта вы должны искать Менеджера конфигурации программного обеспечения. С другой стороны, когда речь идет о производительности системы, мониторинге, исследованиях и диагностике систем, используемых вашими клиентами, вам следует обратиться к Developer Operations или DevOps.

Теперь, это не намерение, как разглагольствование, ни как окончательный ответ, а скорее личная идентификация различий каждой из позиций. Я хотел бы знать, хорошо ли я себя чувствую, или этот ответ прояснил ситуацию.

Phyro
источник
2
Честно говоря, когда все закончится, DevOps поможет разработчикам программного обеспечения быть полностью осведомленными и ответственными за управление конфигурацией программного обеспечения. Когда вы делаете это, вы получаете совершенно иной подход к SCM, чем традиционно применяемый - один, более ориентированный на непрерывную интеграцию и непрерывную доставку, и один с (как правило) меньшим количеством людей в смеси. DevOps можно (и часто) рассматривать как Lean, применяемый к SCM, так же, как Agile можно рассматривать как Lean, применяемый для разработки программного обеспечения.
Calphool
4

Вам будет трудно найти четкое определение DevOps. Это скорее идея, чем работа. И это слишком новая идея для всех, чтобы договориться о том, что именно это означает. Тем не менее, вот мое взятие.

DevOps - это на самом деле просто новый термин для управления конфигурацией, но он был выбран, чтобы показать, что роль - это не роль одного человека, а сотрудничество команды разработчиков и операционной команды.

Исторически управление конфигурацией осуществлялось исключительно командой разработчиков, а затем передавалось операциям, которые рассматривали все это с глубоким подозрением. Что достаточно справедливо, если честно. Они несут ответственность за это. Они первыми звонят в 4 утра, когда все идет не так. Они действительно должны иметь некоторое участие в его разработке.

прецизионный самописец
источник
1

Это простое разъяснение вопроса: DevOps - это термин, используемый для описания координации или взаимосвязи между разработкой (разработка программных кодов в среде разработки) и операциями (обеспечение максимального времени непрерывной работы производственной среды).

Управление конфигурацией программного обеспечения является средством достижения этой координации. В SCM задействованы инструменты и методики управления автоматизацией процесса перехода от разработки к производству (операциям)

Подводя итог, SCM соединяет Dev и Ops.

Связь между разработкой и эксплуатацией - это SCM

Киндсон Гений
источник
-1

Я вижу, что DEVOP находится в конце оперативного выполнения - сценарии автоматизации развертывания, компоновки среды и тому подобное. SCM, с другой стороны, касается целостности продуктов и эффективного управления и отслеживания изменений в продуктах. Я всегда рассматривал ALM как часть SCM - в конце концов, как на самом деле вы можете управлять изменениями в продукте, если у вас нет представления о драйверах для изменения или кто их сделал? Среды развертывания могут быть любой из сторон - и какая сторона будет неизменно зависеть от нормативных потребностей организации, в которой вы работаете, - в конце концов - хотите ли вы, чтобы разработчик мог быстро взломать, что означает, что ваш аппарат для диализа работает только правильно 99,99% времени, или вам нужна такая ситуация, чтобы позволить вам взломать код вашего сайта, потому что ваши разработчики имеют жестко закодированные IP-адреса?

разъем
источник
4
это больше похоже на напыщенную речь, чем на ответ на заданный вопрос
комнат
Охотник на оленей, A Rant, да, конечно, но актуально? 100%. Поверьте мне - пока индустрия не вырастет и не прекратит уловки, марши смерти не только продолжатся, но и будут ухудшаться. Это обещание.
Джек
С Rants все в порядке, но для них не нужен стек-обмен.
Мэтт Фрейк