Я слышу эти термины вместе и задаюсь вопросом, в чем разница? Как они связаны с непрерывными сборками и непрерывным развертыванием?В чем разница между непрерывной интеграцией, непрерывной доставкой и DevOps?
ответ
Continuous integration/непрерывная сборка - все о том, чтобы разработчики часто и часто фиксировали код в репозитории исходного кода (и получить последнюю версию из репозитория, поэтому любые дальнейшие изменения основаны на недавних изменениях других разработчиков). Это уменьшает время, затрачиваемое на разрешение слияния, поскольку в этом случае проще слить.
Процесс лучше всего автоматизирован с использованием сервера сборки, который также может выполнять любые тесты Unit. Затем обратная связь предоставляется разработчикам в случае сбоя сборки/теста, так что любые проблемы могут быть исправлены быстро.
Непрерывное развертывание включает автоматическое развертывание артефактов сборки из процесса сборки в тестовые и производственные среды. Чтобы уменьшить риск, связанный с этим, люди часто используют feature toggles, чтобы отделить выпуск (контролируемым образом) от развертывания.
Непрерывная доставка - это не только технология, но и более подробная информация об организационном подходе к доставке программного обеспечения (хотя это и сильно использует автоматизацию).
DevOps - это гораздо более обширная область, которая обычно подчеркивает нарушение барьеров между разработчиками и операционными командами и позволяет им сотрудничать таким образом, чтобы они могли использовать комбинированные навыки. Больше автоматизации обеспечения среды, создания развертывания, мониторинга (и автоматического реагирования на проблемы и масштабируемость), и в некоторых случаях сети, определенные программным обеспечением, выйдут из этого в компании. В некоторых организациях была создана специальная команда (разработчиков) DevOps.
Возможно, существует некоторая двусмысленность в том, как непрерывные ххх-фразы используются разными людьми, но я думаю, что этот пост в блоге подводит итог.
DevOps является более всеобъемлющей идеей, чем конкретная практика, немного как Agile идеи, и модульное тестированием является практикой.
Непрерывная доставка (CD) - это концепция, впервые описанная в книге 2010 года, соавтором которой были Джез Хамбл и Дэвид Фарли, оба из ThoughtWorks.
непрерывная интеграция и непрерывная поставка часто путаются друг с другом, но есть некоторые ключевые отличия:
- CI может быть сделан с помощью одного разработчика, где CD требует совместной работы
- CD не могут быть сделаны без CI
- CD представляет собой линейный путь где CI является непрерывной обратной связи (сборка) цикл перемещения CD вперед
- с компакт-диска вы всегда готовы нажать подталкивать
- CI позволяет проверить свой код в репо несколько раз, так что вы можете обнаружить свои проблемы на ранней стадии
Вот цитата из Martin Fowler:
«Непрерывная интеграция является практикой разработки программного обеспечения, где членов команды часто интегрируют свою работу, обычно каждый человек интегрируется, по крайней мере, ежедневно, что приводит к множественной интеграции в день. Каждая интеграция проверяется автоматическим сбором (включая тест) до как можно быстрее обнаруживает ошибки интеграции. Многие команды считают, что этот подход приводит к значительно уменьшить проблемы интеграции и позволяет команде развивать связную программное обеспечение более быстро.»
Основное различие между непрерывной доставки и непрерывного развертывания, является автоматизация. Вы автоматизируют сторону развертывания Это хорошо работает, если вы нажимаете на производство несколько раз в день или по целому ряду других причин.
Что касается DevOps, это целый другой воск. Люди часто считают DevOps ролью или инструментом , но это действительно культура. Вы не «делаете» DevOps. Вот цитата из Майка Кависа, которую мне очень нравится:
«DevOps сдвиг культуры или движение, которое поощряет большое общение и сотрудничество (иначе работа в команде) способствовать строительство более качественное программное обеспечение более быстро и с большей надежностью.»
FWIW, это выглядит хороший кандидат на предложение SE DevOps на Area51, если вы заинтересованы в присоединении: http://area51.stackexchange.com/proposals/85819/devops?referrer=Ourlo91--YgyR6VmaIeuwQ2 –
См. https: //stackoverflow.com/a/40502250/3612353 –