Алексей Рыстенко: Continuous Integration
-
Upload
oleg-poludnenko -
Category
Technology
-
view
159 -
download
0
description
Transcript of Алексей Рыстенко: Continuous Integration
Continuous IntegrationНепрерывная интеграция
INTEGRATION HELL
•Код пишется всеми участниками раздельно
•Задержки в коммитах и конфликты –
обычное дело
•Билд собирается в последний момент
•Big Bang!
INTEGRATION HELL
Разработка
INTEGRATION HELL
Разработка
INTEGRATION HELL
Разработка
INTEGRATION HELL
Разработка Интеграция(и неизбежные конфликты)
INTEGRATION HELL
Разработка Интеграция(и неизбежные конфликты)
Integration Hell
ПРИМЕРЫ
THE STORY SO FAR
•XP•TDD•Итерации•Backlogs•…и проч. и проч.
ОБЩИЙ ПРИНЦИП
Создание кода
ИнтеграцияПоддержка
КАК ЭТО РАБОТАЕТ?
Разработчики
Система контроля
версий
Сервернепрерывнойинтеграции
Сборка и компиляция
Продукт
Отчеты
СБОРКА
•Обновление исходного кода
•Компиляция и сборка?
•Любые дополнительные действия
(обновление composer, выполнение xUnit)
•Post-build hooks
ПОКРЫТИЕ ТЕСТАМИ
ДО ВНЕДРЕНИЯ ИНТЕГРАЦИИ
РАЗРАБОТКА
РУЧНАЯ ИНТЕГРАЦИ
Я
РУЧНОЕ ТЕСТИРОВАН
ИЕ
DELIVERY
Плюсы:• Нет необходимости писать тесты• Нет необходимости настраивать сервер
непрерывной интеграции
Минусы:• Отчеты, если и пишутся, то вручную• Непрозрачность состояния системы• Риск сломать что-то в «черном ящике»• Следовательно, большие затраты на
регрессивное тестирование
ПОСЛЕ ВНЕДРЕНИЯ ИНТЕГРАЦИИ
РАЗРАБОТКА
АВТОМАТИЧЕСКАЯ ИНТЕГРАЦИЯ
АВТОМАТИЧЕСКОЕ
ТЕСТИРОВАНИЕ
АВТОМАТИЧЕСКОЕ DELIVERY
Плюсы:• Прозрачность системы• Мониторинг состояния проекта• Автоматизация интеграции• Автоматическая генерация отчетов• Меньшие затраты на регрессивное
тестирование
Минусы:• Необходимость писать тесты хотя бы для
ключевой функциональности• Необходимость настраивать сервер
непрерывной интеграции
ГЕНЕРАЦИЯ ОТЧЕТОВ
НАПРИМЕР
Jenkins
•TeamCity•Team Foundation Server•QuickBuild•…тысячи их!
JENKINS
JENKINS
JENKINS
JENKINS
JENKINS
JENKINS
JENKINS
JENKINS
KEEP THINGS IN ORDER
•Репозиторий
KEEP THINGS IN ORDER
•Репозиторий•Автоматизация сборки
KEEP THINGS IN ORDER
•Репозиторий•Автоматизация сборки•Регулярное автоматическое тестирование
KEEP THINGS IN ORDER
•Репозиторий•Автоматизация сборки•Регулярное автоматическое тестирование•Регулярный коммит
KEEP THINGS IN ORDER
•Репозиторий•Автоматизация сборки•Регулярное автоматическое тестирование•Регулярный коммит•Сборка каждого коммита
KEEP THINGS IN ORDER
•Репозиторий•Автоматизация сборки•Регулярное автоматическое тестирование•Регулярный коммит•Сборка каждого коммита•Доступность информации и немедленное оповещение
KEEP THINGS IN ORDER
•Репозиторий•Автоматизация сборки•Регулярное автоматическое тестирование•Регулярный коммит•Сборка каждого коммита•Доступность информации и немедленное оповещение•Continuous deployment
KEEP THINGS IN ORDER
•Репозиторий•Автоматизация сборки•Регулярное автоматическое тестирование•Регулярный коммит•Сборка каждого коммита•Доступность информации и немедленное оповещение•Continuous deployment•Кратчайший путь к релизу
KEEP THINGS IN ORDER
•Репозиторий•Автоматизация сборки•Регулярное автоматическое тестирование•Регулярный коммит•Сборка каждого коммита•Доступность информации и немедленное оповещение•Continuous deployment•Кратчайший путь к релизу•Healthy mainline
KEEP CALM AND GO HOME
•Репозиторий•Автоматизация сборки•Регулярное автоматическое тестирование•Регулярный коммит•Сборка каждого коммита•Доступность информации и немедленное оповещение•Continuous deployment•Кратчайший путь к релизу•Healthy mainline