Что такое непрерывная интеграция и каковы ее преимущества?
Что такое непрерывная интеграция?
Ответ 1
Это, безусловно, лучшее объяснение, которое я прочитал до сих пор.
Ответ 2
В самом простом случае это просто механизм, который перестраивает ваш проект всякий раз, когда в систему контроля версий (CVS и т.д.) делается проверка. Это может быть расширено, хотя и включает в себя выполнение тестов, вплоть до создания образа компакт-диска, установку его в виртуальных машинах, установку продукта и выполнение на нем полных тестов.
У этого есть простое преимущество выделения, когда изменения кода нарушают систему как можно раньше. Он не только обнаруживает перерывы в коде, но и подчеркивает, кто вызвал перерыв. Этот психологический эффект очень эффективен в поощрении хорошего тестирования перед регистрацией!
Ответ 3
Это практика обеспечения того, чтобы все аспекты процесса разработки программного обеспечения выстраивались в очередь, чтобы ежедневно создавать рабочую версию вашего продукта. Он наиболее известен как часть экстремального программирования.
Это включает в себя такие вещи, как автоматизация сборки, автоматическое тестирование, ежедневные проверки, использование репозитория исходного кода и т.д. Но конечная цель - помочь всему проекту работать в соответствии с основными принципами Agile, чтобы вы доставляли ранние и часто. Это, в свою очередь, помогает вам использовать отзывы от ваших пользователей и т.д.
Ответ 4
+1 для ссылки на страницу Fowler.
Лично я просто нашел "приятным" знать, когда что-то не компилировалось, потому что у нас была плохая практика создания единой сборки (да, мы разработали сборку продукции, мы были потрясающими). Перед тем, как я ушел, у нас не было интегрированной фазы тестирования.
Через некоторое время, однако, это уменьшило количество массивных изменений в кодировке (по сравнению с "проверкой и молением, мои изменения не конфликтуют", которая была безудержной). В конце концов, большинство разработчиков часто делали небольшие изменения, чтобы получить подтверждение от значка в панели CC.Net.
В целом, мне было очень приятно знать, что мы могли бы немедленно отправить сборку, если бы нам пришлось. Если бы у нас было всего несколько тестов на дым, я бы подумал, что уровень стресса был бы значительно ниже.
Ответ 5
Просто обновить. На данный момент существует огромная разница между непрерывной интеграцией (CI) и непрерывной доставкой (CD). Хотя большинство сообщений выше описанного CD я попытаюсь показать, как CI расширяет теперь определение CD. Наличие всех инструментов, необходимых для создания пакета и развертывания новой версии приложения, автоматически является важной частью компакт-диска. Добавление к этой автоматизации тестирования (на основе трехуровневой проверки: общая проверка работоспособности, подробная статистика и исторические записи) и правильное управление, которое вы создаете действительно хороший кусок CI. Только благодаря такому расширенному определению возможно создание необычных облачных инструментов. Подумайте о muleESB или esbeetle.com. Для обоих из них CI является чем-то естественным, хотя только второй поддерживает как ESB, так и ETL-компоненты.
Я надеюсь, что это было полезно.