SlideShare a Scribd company logo
Continuous Integration

Anton Katkov
Типичные сценарии
• Разработчик закомитил бажный код в
  репозиторий кода и ушёл домой.
• Разработчик закомитил бажный код в
  репозиторий и проблема была обнаружена
  во время Nightly Build.
Continuous Integration
... is a software development practice where members of
a team integrate their work frequently. Each integration
is verified by an automated build (including test) to
detect integration errors as quickly as possible.
Many teams find that this approach leads to significantly
reduced integration problems and allows a team to
develop cohesive software more rapidly.

http://martinfowler.com/articles/continuousIntegration.html
Martin Fowler
Вопрос



• Как CI работает на практике?
Каковы ценности CI
• Уменьшает риски
• Уменьшает число рутинных действий
• Создаёт готовое для использования
  приложение
• Делает проект более прозрачным
• Поддерживает другие инженерные
  практики
Риски разработки
•   Позднее исправление багов дорого
•   Отсутствие единства в команде
•   Низкое качество кода
•   Непрозрачность проекта
•   Отсутствие готового к использования
    приложения
CI уменьшает риски
•   Тестирование проходит регулярно
•   Процесс сборки становиться простой
•   Обнаруживаем проблемы раньше
•   Уменьшаем количество «предположений»
Почему обычно не делаем CI?
• Нет ресурсов на его поддержку
• Слишком много надо поменять в
  существующем процессе
• Слишком много билдов проваливается
• Дополнительные затраты на железо и софт
• Всё равно надо делать сборку руками
Некоторые практики CI
• Автоматизируйте сборку
• Включите тесты в процесс сборки
• Делайте сборку на каждое изменений в
  репозитории кода
• Сохраняйте процесс сборки быстрым
• Тестируйте в копии реального (production)
  окружения
• Сделайте итоговые сборки легко доступными для
  всех
• Покажите всем, что происходит – публичность
• Автоматизируйте разворачивание приложения
Особенно важно



• Автоматизируйте всё, что можно
  автоматизировать
ВЫБОР CI СЕРВЕРА
Существующие решения
Критерии
• Надёжный
• Подходит для ваших инструментов и
  технологий
• Легко настраивается и поддерживается
• Просто пользовательский интерфейс
• Содержит необходимые функции
SONAR
Метрики
Инспекции

More Related Content

PPTX
Алексей Рыстенко: Continuous Integration
Oleg Poludnenko
 
PPTX
Contineous Integration by Надежда Кныш
QA Club Minsk
 
PPTX
Типовая сборка и деплой продуктов в Positive Technologies
Positive Hack Days
 
PPTX
Аналитика в проектах: TFS + Qlik
Positive Hack Days
 
PPTX
Развитие сообщества Open DevOps Community
Positive Hack Days
 
PDF
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
Provectus
 
PDF
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest
 
PDF
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
IT-Portfolio
 
Алексей Рыстенко: Continuous Integration
Oleg Poludnenko
 
Contineous Integration by Надежда Кныш
QA Club Minsk
 
Типовая сборка и деплой продуктов в Positive Technologies
Positive Hack Days
 
Аналитика в проектах: TFS + Qlik
Positive Hack Days
 
Развитие сообщества Open DevOps Community
Positive Hack Days
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
Provectus
 
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest
 
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
IT-Portfolio
 

What's hot (20)

PDF
Инженерный дзен. Непрерывные изменения (Александр Титов)
Ontico
 
PPTX
Использование анализатора кода SonarQube
Positive Hack Days
 
PPTX
DevOps для Legacy-продуктов
ScrumTrek
 
ODP
Continous Integration
GetDev.NET
 
PPTX
Петр Клименко. DevOps Трансформация для SIEBEL CRM
ScrumTrek
 
PDF
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
it-people
 
PPTX
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Alina Vilk
 
PDF
UI тестирование WPF приложений в Дойче Банке
GoSharp
 
PDF
Антон Бевзюк; Матвей Григорьев. Domain Driven Design: строительные блоки, цем...
ScrumTrek
 
PPTX
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
COMAQA.BY
 
PDF
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Badoo Development
 
PDF
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Badoo Development
 
PDF
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac
404fest
 
PPTX
Развитие навыков 1с специалиста до 5 го уровня
Alexey Lustin
 
PPTX
Distributed Version Control Systems
Igor Sidorov
 
PDF
Honeywell Industrial Cyber Security Lab & Services Center
Positive Hack Days
 
PPTX
Automated tests ci
COMAQA.BY
 
PPTX
Agile testing
Elena Korotchuk
 
PDF
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
Sergey Ponomarev
 
Инженерный дзен. Непрерывные изменения (Александр Титов)
Ontico
 
Использование анализатора кода SonarQube
Positive Hack Days
 
DevOps для Legacy-продуктов
ScrumTrek
 
Continous Integration
GetDev.NET
 
Петр Клименко. DevOps Трансформация для SIEBEL CRM
ScrumTrek
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
it-people
 
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Alina Vilk
 
UI тестирование WPF приложений в Дойче Банке
GoSharp
 
Антон Бевзюк; Матвей Григорьев. Domain Driven Design: строительные блоки, цем...
ScrumTrek
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
COMAQA.BY
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Badoo Development
 
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Badoo Development
 
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac
404fest
 
Развитие навыков 1с специалиста до 5 го уровня
Alexey Lustin
 
Distributed Version Control Systems
Igor Sidorov
 
Honeywell Industrial Cyber Security Lab & Services Center
Positive Hack Days
 
Automated tests ci
COMAQA.BY
 
Agile testing
Elena Korotchuk
 
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
Sergey Ponomarev
 
Ad

Viewers also liked (8)

PPT
Solit 2013, Open Source continuous integration in java, Калачев Дмитрий
solit
 
PPTX
Continious integration-Automated Testing-Solid-Agile
Kairat Yussupov
 
PDF
Зачем авто-тесты нам нужны?
Vitebsk Miniq
 
PPT
Continuous Integration для тестировщиков
Uladzimir Kryvenka
 
PPTX
Continuous Integration для QA
Ivan Kolodyazhny
 
PPT
Эволюция разработки в Badoo
ADV/web-engineering
 
PPTX
DersuDev #1 2015 - Continous Integration
Igor Karpovich
 
PPTX
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Docker, Inc.
 
Solit 2013, Open Source continuous integration in java, Калачев Дмитрий
solit
 
Continious integration-Automated Testing-Solid-Agile
Kairat Yussupov
 
Зачем авто-тесты нам нужны?
Vitebsk Miniq
 
Continuous Integration для тестировщиков
Uladzimir Kryvenka
 
Continuous Integration для QA
Ivan Kolodyazhny
 
Эволюция разработки в Badoo
ADV/web-engineering
 
DersuDev #1 2015 - Continous Integration
Igor Karpovich
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Docker, Inc.
 
Ad

Similar to AgileCamp’11 Новосибирск - Continuous Integration (CI) (20)

PDF
Тестирование весна 2013 лекция 5
Technopark
 
PDF
Тестирование осень 2013 лекция 5
Technopark
 
PPTX
Software craftsmanship 8
Pavel Veinik
 
PPT
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
SQALab
 
PDF
Иван Евтухович — Как перестать релизиться и начать жить
Daria Oreshkina
 
PPTX
Continuous integration
MageCloud
 
PPT
Continuous integration with TeamCity
Andrei Ivanov
 
PDF
Caché github continuous intergration
InterSystems
 
PDF
Приемы Сontinuous Integration при разработке приложений на Caché
InterSystems CEE
 
PPTX
Лучшие практики на практике
Denis Tuchin
 
PDF
Highway to Continuous Integration — Денис Трифонов, 2ГИС
2ГИС Технологии
 
PDF
Continuous integration для java script проектов
Andrey Kucherenko
 
PDF
Continuous integration for JavaScript projects
EPAM
 
PDF
Project under control
Alex Simanovich
 
PPTX
Continuous Integration for C++ engineers
corehard_by
 
PPTX
Continuous Integration для C++ разработчика
Pavel Filonov
 
PDF
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Ontico
 
PDF
C# Web. Занятие 14.
Igor Shkulipa
 
PDF
Непрерывная интеграция при разработке баз данных. (Show version)
Vladimir Bakhov
 
Тестирование весна 2013 лекция 5
Technopark
 
Тестирование осень 2013 лекция 5
Technopark
 
Software craftsmanship 8
Pavel Veinik
 
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
SQALab
 
Иван Евтухович — Как перестать релизиться и начать жить
Daria Oreshkina
 
Continuous integration
MageCloud
 
Continuous integration with TeamCity
Andrei Ivanov
 
Caché github continuous intergration
InterSystems
 
Приемы Сontinuous Integration при разработке приложений на Caché
InterSystems CEE
 
Лучшие практики на практике
Denis Tuchin
 
Highway to Continuous Integration — Денис Трифонов, 2ГИС
2ГИС Технологии
 
Continuous integration для java script проектов
Andrey Kucherenko
 
Continuous integration for JavaScript projects
EPAM
 
Project under control
Alex Simanovich
 
Continuous Integration for C++ engineers
corehard_by
 
Continuous Integration для C++ разработчика
Pavel Filonov
 
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Ontico
 
C# Web. Занятие 14.
Igor Shkulipa
 
Непрерывная интеграция при разработке баз данных. (Show version)
Vladimir Bakhov
 

More from Anton Katkov (10)

PDF
AgileDays'14 - современная разработка под iOS
Anton Katkov
 
PDF
AgileDays'14 - Lean Startup, Metrics Driven Development и финансы - смешать, ...
Anton Katkov
 
PPTX
AgileCamp'12 Нижний Новгород: Введение
Anton Katkov
 
PPTX
AgileCamp'12 Нижний Новгород: Заключение
Anton Katkov
 
PDF
XP.Party (iOS) - testable code & architecture
Anton Katkov
 
PDF
XP.Party (iOS) - unit tests frameworks overview
Anton Katkov
 
PPTX
AgileDays'12 - Continuous deployment
Anton Katkov
 
PPTX
AgileCamp’11 Новосибирск - Test Driven Development (TDD)
Anton Katkov
 
PPTX
AgileCamp'11 Новосибирск - Unit Tests
Anton Katkov
 
PPTX
AgileCamp'11 Новосибирск - введение в инженерные практики
Anton Katkov
 
AgileDays'14 - современная разработка под iOS
Anton Katkov
 
AgileDays'14 - Lean Startup, Metrics Driven Development и финансы - смешать, ...
Anton Katkov
 
AgileCamp'12 Нижний Новгород: Введение
Anton Katkov
 
AgileCamp'12 Нижний Новгород: Заключение
Anton Katkov
 
XP.Party (iOS) - testable code & architecture
Anton Katkov
 
XP.Party (iOS) - unit tests frameworks overview
Anton Katkov
 
AgileDays'12 - Continuous deployment
Anton Katkov
 
AgileCamp’11 Новосибирск - Test Driven Development (TDD)
Anton Katkov
 
AgileCamp'11 Новосибирск - Unit Tests
Anton Katkov
 
AgileCamp'11 Новосибирск - введение в инженерные практики
Anton Katkov
 

AgileCamp’11 Новосибирск - Continuous Integration (CI)

  • 2. Типичные сценарии • Разработчик закомитил бажный код в репозиторий кода и ушёл домой. • Разработчик закомитил бажный код в репозиторий и проблема была обнаружена во время Nightly Build.
  • 3. Continuous Integration ... is a software development practice where members of a team integrate their work frequently. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. http://martinfowler.com/articles/continuousIntegration.html Martin Fowler
  • 4. Вопрос • Как CI работает на практике?
  • 5. Каковы ценности CI • Уменьшает риски • Уменьшает число рутинных действий • Создаёт готовое для использования приложение • Делает проект более прозрачным • Поддерживает другие инженерные практики
  • 6. Риски разработки • Позднее исправление багов дорого • Отсутствие единства в команде • Низкое качество кода • Непрозрачность проекта • Отсутствие готового к использования приложения
  • 7. CI уменьшает риски • Тестирование проходит регулярно • Процесс сборки становиться простой • Обнаруживаем проблемы раньше • Уменьшаем количество «предположений»
  • 8. Почему обычно не делаем CI? • Нет ресурсов на его поддержку • Слишком много надо поменять в существующем процессе • Слишком много билдов проваливается • Дополнительные затраты на железо и софт • Всё равно надо делать сборку руками
  • 9. Некоторые практики CI • Автоматизируйте сборку • Включите тесты в процесс сборки • Делайте сборку на каждое изменений в репозитории кода • Сохраняйте процесс сборки быстрым • Тестируйте в копии реального (production) окружения • Сделайте итоговые сборки легко доступными для всех • Покажите всем, что происходит – публичность • Автоматизируйте разворачивание приложения
  • 10. Особенно важно • Автоматизируйте всё, что можно автоматизировать
  • 13. Критерии • Надёжный • Подходит для ваших инструментов и технологий • Легко настраивается и поддерживается • Просто пользовательский интерфейс • Содержит необходимые функции
  • 14. SONAR