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

1,371 views

Published on

материал с конференции http://camp.agiledays.ru

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,371
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

×