2016-01-21 6 views
5

Я слышу эти термины вместе и задаюсь вопросом, в чем разница? Как они связаны с непрерывными сборками и непрерывным развертыванием?В чем разница между непрерывной интеграцией, непрерывной доставкой и DevOps?

+0

FWIW, это выглядит хороший кандидат на предложение SE DevOps на Area51, если вы заинтересованы в присоединении: http://area51.stackexchange.com/proposals/85819/devops?referrer=Ourlo91--YgyR6VmaIeuwQ2 –

+0

См. https: //stackoverflow.com/a/40502250/3612353 –

ответ

4

Continuous integration/непрерывная сборка - все о том, чтобы разработчики часто и часто фиксировали код в репозитории исходного кода (и получить последнюю версию из репозитория, поэтому любые дальнейшие изменения основаны на недавних изменениях других разработчиков). Это уменьшает время, затрачиваемое на разрешение слияния, поскольку в этом случае проще слить.

Процесс лучше всего автоматизирован с использованием сервера сборки, который также может выполнять любые тесты Unit. Затем обратная связь предоставляется разработчикам в случае сбоя сборки/теста, так что любые проблемы могут быть исправлены быстро.

Непрерывное развертывание включает автоматическое развертывание артефактов сборки из процесса сборки в тестовые и производственные среды. Чтобы уменьшить риск, связанный с этим, люди часто используют feature toggles, чтобы отделить выпуск (контролируемым образом) от развертывания.

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

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

1

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

http://blog.assembla.com/assemblablog/tabid/12618/bid/92411/Continuous-Delivery-vs-Continuous-Deployment-vs-Continuous-Integration-Wait-huh.aspx

DevOps является более всеобъемлющей идеей, чем конкретная практика, немного как Agile идеи, и модульное тестированием является практикой.

1

Непрерывная доставка (CD) - это концепция, впервые описанная в книге 2010 года, соавтором которой были Джез Хамбл и Дэвид Фарли, оба из ThoughtWorks.

непрерывная интеграция и непрерывная поставка часто путаются друг с другом, но есть некоторые ключевые отличия:

  • CI может быть сделан с помощью одного разработчика, где CD требует совместной работы
  • CD не могут быть сделаны без CI
  • CD представляет собой линейный путь где CI является непрерывной обратной связи (сборка) цикл перемещения CD вперед
  • с компакт-диска вы всегда готовы нажать подталкивать
  • CI позволяет проверить свой код в репо несколько раз, так что вы можете обнаружить свои проблемы на ранней стадии

Вот цитата из Martin Fowler:

«Непрерывная интеграция является практикой разработки программного обеспечения, где членов команды часто интегрируют свою работу, обычно каждый человек интегрируется, по крайней мере, ежедневно, что приводит к множественной интеграции в день. Каждая интеграция проверяется автоматическим сбором (включая тест) до как можно быстрее обнаруживает ошибки интеграции. Многие команды считают, что этот подход приводит к значительно уменьшить проблемы интеграции и позволяет команде развивать связную программное обеспечение более быстро.»

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

Что касается DevOps, это целый другой воск. Люди часто считают DevOps ролью или инструментом , но это действительно культура. Вы не «делаете» DevOps. Вот цитата из Майка Кависа, которую мне очень нравится:

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