SlideShare a Scribd company logo
1 of 22
5-я конференция .NET разработчиков
21 октября 2012
www.dotnetconf.ru




     Непрерывная интеграция в
       ритме военного марша
                        Тимур Рахматиллаев
                              ByndyuSoft
                         twitter.com/eskat0n
Непрерывная интеграция
Выполнение частых автоматизированных
 сборок проекта для скорейшего
 выявления и решения интеграционных
 проблем




         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         2
Непрерывная интеграция в ритме военного марша
                           Тимур Рахматиллаев
                                                3
Непрерывная интеграция
Выполнение частых
 автоматизированных сборок проекта
 для скорейшего выявления и решения
 интеграционных проблем




         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         4
Автоматизированных?
•   TeamCity
•   CruiseControl.NET
•   Jenkins
•   Travis CI

      тысячи их...


            Непрерывная интеграция в ритме военного марша
                                       Тимур Рахматиллаев
                                                            5
TeamCity
• Написана на языке Java и выполнена в
  виде servlet’а для Apache Tomcat
• До 20 конфигураций сборки в
  бесплатной версии
• Разработчик – компания Jetbrains




          Непрерывная интеграция в ритме военного марша
                                     Тимур Рахматиллаев
                                                          6
TeamCity
• Проект
 • Конфигурация сборки
   •   Настройки VCS
   •   Шаги сборки (запуск какого-либо инструмента)
   •   Настройки переменных окружения и
       системных переменных
   •   Триггеры сборки
   •   Настройки доступа к артефактам сборки



            Непрерывная интеграция в ритме военного марша
                                       Тимур Рахматиллаев
                                                            7
Непрерывная интеграция
Выполнение частых автоматизированных
 сборок проекта для скорейшего
 выявления и решения интеграционных
 проблем




         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         8
Насколько частых?
• По наличию изменений в системе
  контроля версий
• По наличию артефактов сборки
• По расписанию
• Вручную

    и другие...

          Непрерывная интеграция в ритме военного марша
                                     Тимур Рахматиллаев
                                                          9
Непрерывная интеграция
Выполнение частых автоматизированных
 сборок проекта для скорейшего
 выявления и решения интеграционных
 проблем




         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         10
Способы выявления
           проблем
• Ошибки при сборке проекта
• Наличие проваленных модульных или
  интеграционных тестов
• Превышение критического порога
  какой-либо метрики для оценки
  качества кода

    или любая иная логика специфичная
для проекта...
          Непрерывная интеграция в ритме военного марша
                               Тимур Рахматиллаев
                                                     11
Демонстрация




Непрерывная интеграция в ритме военного марша
                           Тимур Рахматиллаев
                                                12
Непрерывная интеграция
Выполнение частых автоматизированных
 сборок проекта для скорейшего
 выявления и решения интеграционных
 проблем




         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         13
Скорейшего?
Оповещения членов команды
разработчиков
• По email
• С помощью jabber
• С помощью всплывающих сообщений
  программы TeamCity Tray Notifier



         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         14
На вкус и цвет...


  Тимлид                 Разработчики                           QA


Новая сборка     Наличие неудавшейся     Успешная
                   сборки со своими       сборка в
                    изменениями в      конфигурации
                     конфигурации           для
                непрерывной интеграции тестирования
                Непрерывная интеграция в ритме военного марша
                                           Тимур Рахматиллаев
                                                                     15
Конфигурации для
        Web-приложения
• Непрерывная интеграция: сборка,
  запуск модульных тестов, вычисление
  метрик кода
• Разворачивание на UAT-сервере
• Разворачивание недельной версии
• Разворачивание на production-сервер
• Разворачивание на production-
  сервер старой версии
          Непрерывная интеграция в ритме военного марша
                                     Тимур Рахматиллаев
                                                          16
Continuous Deployment




    Непрерывная интеграция в ритме военного марша
                               Тимур Рахматиллаев
                                                    17
Достоинства Continuous
         Deployment
• Обеспечивается гарантированное
  наличие версии для тестирования
• Меньшие требования к программной
  среде на компьютерах тестировщиков
• Скорость развертывания
• Исключается влияние «человеческого
  фактора» на критических этапах
  жизненного цикла программы
         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         18
Репозиторий артефактов
Хранит результаты сборки проекта
(исполняемые файлы, библиотеки,
ресурсы), необходимые для
разворачивания произвольной их версии
в произвольный момент времени




         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         19
Репозиторий артефактов
• Получение номера ревизии из DVCS по
  версии программного продукта
• Обновление на эту ревизию
• Разворачивание системы из
  артефактов




         Непрерывная интеграция в ритме военного марша
                                    Тимур Рахматиллаев
                                                         20
Репозиторий артефактов
• При использовании FluentMigrator
  возможно гибкое версионирование
  базы данных
• Версионные backup’ы БД (snapshot’ы)




          Непрерывная интеграция в ритме военного марша
                                     Тимур Рахматиллаев
                                                          21
Спасибо за внимание

   Тимур Рахматиллаев
         ByndyuSoft
  eskat0n@soft.byndyu.ru
    twitter.com/eskat0n



   Непрерывная интеграция в ритме военного марша
                              Тимур Рахматиллаев
                                                   22

More Related Content

Viewers also liked

Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekrantav
 
Continuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxContinuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxDotNetConf
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойAlexander Byndyu
 
Бутылка саке и муравей
Бутылка саке и муравейБутылка саке и муравей
Бутылка саке и муравейAlexander Byndyu
 
Не SQL'ем единым
Не SQL'ем единымНе SQL'ем единым
Не SQL'ем единымAlexander Byndyu
 
Data mining в реальном проекте
Data mining в реальном проектеData mining в реальном проекте
Data mining в реальном проектеAlexander Byndyu
 
код шрёдингера
код шрёдингеракод шрёдингера
код шрёдингераRuslan Safin
 
Смотрим на Mvvm сквозь prism'у
Смотрим на Mvvm сквозь prism'уСмотрим на Mvvm сквозь prism'у
Смотрим на Mvvm сквозь prism'уAlexander Byndyu
 
Продуктово-аутсорсинговая разработка. Развитие продуктовых идей.
Продуктово-аутсорсинговая разработка. Развитие продуктовых идей.Продуктово-аутсорсинговая разработка. Развитие продуктовых идей.
Продуктово-аутсорсинговая разработка. Развитие продуктовых идей.Alexander Byndyu
 
Клиентская оптимизация в ритме военного марша
Клиентская оптимизация в ритме военного маршаКлиентская оптимизация в ритме военного марша
Клиентская оптимизация в ритме военного маршаAlexander Byndyu
 
Много данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'еМного данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'еAlexander Byndyu
 
Модульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETМодульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETAlexander Byndyu
 
RabbitMQ - обмен сообщениями, который просто работает
RabbitMQ - обмен сообщениями, который просто работаетRabbitMQ - обмен сообщениями, который просто работает
RabbitMQ - обмен сообщениями, который просто работаетAlexander Byndyu
 
Agile на практике
Agile на практикеAgile на практике
Agile на практикеAlexander Byndyu
 
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахCassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахAlexander Mezhov
 
Индексы в MSSQL: принципы работы и способы оптимизации
Индексы в MSSQL: принципы работы и способы оптимизацииИндексы в MSSQL: принципы работы и способы оптимизации
Индексы в MSSQL: принципы работы и способы оптимизацииAlexander Byndyu
 
Опыт разработки эффективного SPA
Опыт разработки эффективного SPAОпыт разработки эффективного SPA
Опыт разработки эффективного SPAEugene Abrosimov
 
Применение Kanban для управления портфелем проектов. Конференция #Dotnetconf ...
Применение Kanban для управления портфелем проектов. Конференция #Dotnetconf ...Применение Kanban для управления портфелем проектов. Конференция #Dotnetconf ...
Применение Kanban для управления портфелем проектов. Конференция #Dotnetconf ...Alexey Pikulev
 
Баг-трекер по-новому: что и почему JetBrains изменил в последней версии YouTrack
Баг-трекер по-новому: что и почему JetBrains изменил в последней версии YouTrackБаг-трекер по-новому: что и почему JetBrains изменил в последней версии YouTrack
Баг-трекер по-новому: что и почему JetBrains изменил в последней версии YouTrackAlexander Byndyu
 
Шаблоны интеграции - актуальные инструменты и решения
Шаблоны интеграции - актуальные инструменты и решенияШаблоны интеграции - актуальные инструменты и решения
Шаблоны интеграции - актуальные инструменты и решенияAlexander Byndyu
 

Viewers also liked (20)

Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk week
 
Continuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxContinuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под Linux
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределенной
 
Бутылка саке и муравей
Бутылка саке и муравейБутылка саке и муравей
Бутылка саке и муравей
 
Не SQL'ем единым
Не SQL'ем единымНе SQL'ем единым
Не SQL'ем единым
 
Data mining в реальном проекте
Data mining в реальном проектеData mining в реальном проекте
Data mining в реальном проекте
 
код шрёдингера
код шрёдингеракод шрёдингера
код шрёдингера
 
Смотрим на Mvvm сквозь prism'у
Смотрим на Mvvm сквозь prism'уСмотрим на Mvvm сквозь prism'у
Смотрим на Mvvm сквозь prism'у
 
Продуктово-аутсорсинговая разработка. Развитие продуктовых идей.
Продуктово-аутсорсинговая разработка. Развитие продуктовых идей.Продуктово-аутсорсинговая разработка. Развитие продуктовых идей.
Продуктово-аутсорсинговая разработка. Развитие продуктовых идей.
 
Клиентская оптимизация в ритме военного марша
Клиентская оптимизация в ритме военного маршаКлиентская оптимизация в ритме военного марша
Клиентская оптимизация в ритме военного марша
 
Много данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'еМного данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'е
 
Модульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETМодульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NET
 
RabbitMQ - обмен сообщениями, который просто работает
RabbitMQ - обмен сообщениями, который просто работаетRabbitMQ - обмен сообщениями, который просто работает
RabbitMQ - обмен сообщениями, который просто работает
 
Agile на практике
Agile на практикеAgile на практике
Agile на практике
 
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахCassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системах
 
Индексы в MSSQL: принципы работы и способы оптимизации
Индексы в MSSQL: принципы работы и способы оптимизацииИндексы в MSSQL: принципы работы и способы оптимизации
Индексы в MSSQL: принципы работы и способы оптимизации
 
Опыт разработки эффективного SPA
Опыт разработки эффективного SPAОпыт разработки эффективного SPA
Опыт разработки эффективного SPA
 
Применение Kanban для управления портфелем проектов. Конференция #Dotnetconf ...
Применение Kanban для управления портфелем проектов. Конференция #Dotnetconf ...Применение Kanban для управления портфелем проектов. Конференция #Dotnetconf ...
Применение Kanban для управления портфелем проектов. Конференция #Dotnetconf ...
 
Баг-трекер по-новому: что и почему JetBrains изменил в последней версии YouTrack
Баг-трекер по-новому: что и почему JetBrains изменил в последней версии YouTrackБаг-трекер по-новому: что и почему JetBrains изменил в последней версии YouTrack
Баг-трекер по-новому: что и почему JetBrains изменил в последней версии YouTrack
 
Шаблоны интеграции - актуальные инструменты и решения
Шаблоны интеграции - актуальные инструменты и решенияШаблоны интеграции - актуальные инструменты и решения
Шаблоны интеграции - актуальные инструменты и решения
 

Similar to Непрерывная интеграция в ритме военного марша

Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПОAnton Konushin
 
Кутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картКутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картqasib
 
Visual Studio Team Services /TFS helps doing devops
Visual Studio Team Services /TFS helps doing devops Visual Studio Team Services /TFS helps doing devops
Visual Studio Team Services /TFS helps doing devops Konstantin Neradovsky
 
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalЛучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalLuxoftTraining
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСMATLAB
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Alexei Lupan
 
принтозавр стая V2
принтозавр стая V2принтозавр стая V2
принтозавр стая V2Eugene Agibalov
 
Paper 67 (supplementary file) sqadays 2010-burmistrov_fomin_3011
Paper 67 (supplementary file)   sqadays 2010-burmistrov_fomin_3011Paper 67 (supplementary file)   sqadays 2010-burmistrov_fomin_3011
Paper 67 (supplementary file) sqadays 2010-burmistrov_fomin_3011Alexei Lupan
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораSQALab
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_haElena Ometova
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиАлександр Шамрай
 
Физическое моделирование объекта управления
Физическое моделирование объекта управленияФизическое моделирование объекта управления
Физическое моделирование объекта управленияMATLAB
 
Разработка систем управления
Разработка систем управленияРазработка систем управления
Разработка систем управленияMATLAB
 
Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Technopark
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 

Similar to Непрерывная интеграция в ритме военного марша (20)

Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)
 
Java one presentation
Java one presentationJava one presentation
Java one presentation
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 
Кутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картКутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных карт
 
Visual Studio Team Services /TFS helps doing devops
Visual Studio Team Services /TFS helps doing devops Visual Studio Team Services /TFS helps doing devops
Visual Studio Team Services /TFS helps doing devops
 
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalЛучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
 
Методоллогии Agile
Методоллогии AgileМетодоллогии Agile
Методоллогии Agile
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИС
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)
 
принтозавр стая V2
принтозавр стая V2принтозавр стая V2
принтозавр стая V2
 
Paper 67 (supplementary file) sqadays 2010-burmistrov_fomin_3011
Paper 67 (supplementary file)   sqadays 2010-burmistrov_fomin_3011Paper 67 (supplementary file)   sqadays 2010-burmistrov_fomin_3011
Paper 67 (supplementary file) sqadays 2010-burmistrov_fomin_3011
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработки
 
Физическое моделирование объекта управления
Физическое моделирование объекта управленияФизическое моделирование объекта управления
Физическое моделирование объекта управления
 
Разработка систем управления
Разработка систем управленияРазработка систем управления
Разработка систем управления
 
Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 

More from Alexander Byndyu

Инфраструктура для совместной предпроктной работы IT-компаний и реального ...
Инфраструктура для совместной предпроктной работы IT-компаний и реального ...Инфраструктура для совместной предпроктной работы IT-компаний и реального ...
Инфраструктура для совместной предпроктной работы IT-компаний и реального ...Alexander Byndyu
 
Применение low-code платформ в энтерпрайзе
Применение low-code платформ в энтерпрайзеПрименение low-code платформ в энтерпрайзе
Применение low-code платформ в энтерпрайзеAlexander Byndyu
 
Антихрупкость в IT или как полюбить изменения
Антихрупкость в IT или как полюбить измененияАнтихрупкость в IT или как полюбить изменения
Антихрупкость в IT или как полюбить измененияAlexander Byndyu
 
Карта гипотез как метод стратегического планирования
Карта гипотез как метод стратегического планированияКарта гипотез как метод стратегического планирования
Карта гипотез как метод стратегического планированияAlexander Byndyu
 
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиКак перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиAlexander Byndyu
 
История о том, как техническое задание подменяет цель проекта
История о том, как техническое задание подменяет цель проектаИстория о том, как техническое задание подменяет цель проекта
История о том, как техническое задание подменяет цель проектаAlexander Byndyu
 
Шпаргалка по IT-миру для предпринимателя
Шпаргалка по IT-миру для предпринимателяШпаргалка по IT-миру для предпринимателя
Шпаргалка по IT-миру для предпринимателяAlexander Byndyu
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияAlexander Byndyu
 
IT-директор на аутсорсе
IT-директор на аутсорсеIT-директор на аутсорсе
IT-директор на аутсорсеAlexander Byndyu
 
Бизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруБизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруAlexander Byndyu
 
Impact Mapping на практике v2
Impact Mapping на практике v2Impact Mapping на практике v2
Impact Mapping на практике v2Alexander Byndyu
 
Кнопочное мышление против целостного IT-продукта
Кнопочное мышление против целостного IT-продуктаКнопочное мышление против целостного IT-продукта
Кнопочное мышление против целостного IT-продуктаAlexander Byndyu
 
Пять самых важных составляющих процесса выпуска продуктов
Пять самых важных составляющих процесса выпуска продуктовПять самых важных составляющих процесса выпуска продуктов
Пять самых важных составляющих процесса выпуска продуктовAlexander Byndyu
 
Пять самых важных составляющих процесса выпуска проектов
Пять самых важных составляющих процесса выпуска проектовПять самых важных составляющих процесса выпуска проектов
Пять самых важных составляющих процесса выпуска проектовAlexander Byndyu
 
Impact mapping in practice
Impact mapping in practiceImpact mapping in practice
Impact mapping in practiceAlexander Byndyu
 
Impact Mapping на практике
Impact Mapping на практикеImpact Mapping на практике
Impact Mapping на практикеAlexander Byndyu
 
Customer satisfaction для программистов
Customer satisfaction для программистовCustomer satisfaction для программистов
Customer satisfaction для программистовAlexander Byndyu
 
CQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорCQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорAlexander Byndyu
 
Как размножается Sphinx
Как размножается SphinxКак размножается Sphinx
Как размножается SphinxAlexander Byndyu
 

More from Alexander Byndyu (20)

Инфраструктура для совместной предпроктной работы IT-компаний и реального ...
Инфраструктура для совместной предпроктной работы IT-компаний и реального ...Инфраструктура для совместной предпроктной работы IT-компаний и реального ...
Инфраструктура для совместной предпроктной работы IT-компаний и реального ...
 
Применение low-code платформ в энтерпрайзе
Применение low-code платформ в энтерпрайзеПрименение low-code платформ в энтерпрайзе
Применение low-code платформ в энтерпрайзе
 
Антихрупкость в IT или как полюбить изменения
Антихрупкость в IT или как полюбить измененияАнтихрупкость в IT или как полюбить изменения
Антихрупкость в IT или как полюбить изменения
 
Карта гипотез как метод стратегического планирования
Карта гипотез как метод стратегического планированияКарта гипотез как метод стратегического планирования
Карта гипотез как метод стратегического планирования
 
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиКак перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
 
История о том, как техническое задание подменяет цель проекта
История о том, как техническое задание подменяет цель проектаИстория о том, как техническое задание подменяет цель проекта
История о том, как техническое задание подменяет цель проекта
 
Шпаргалка по IT-миру для предпринимателя
Шпаргалка по IT-миру для предпринимателяШпаргалка по IT-миру для предпринимателя
Шпаргалка по IT-миру для предпринимателя
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс Россия
 
IT-директор на аутсорсе
IT-директор на аутсорсеIT-директор на аутсорсе
IT-директор на аутсорсе
 
Бизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруБизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуру
 
Impact Mapping на практике v2
Impact Mapping на практике v2Impact Mapping на практике v2
Impact Mapping на практике v2
 
Кнопочное мышление против целостного IT-продукта
Кнопочное мышление против целостного IT-продуктаКнопочное мышление против целостного IT-продукта
Кнопочное мышление против целостного IT-продукта
 
Пять самых важных составляющих процесса выпуска продуктов
Пять самых важных составляющих процесса выпуска продуктовПять самых важных составляющих процесса выпуска продуктов
Пять самых важных составляющих процесса выпуска продуктов
 
Пять самых важных составляющих процесса выпуска проектов
Пять самых важных составляющих процесса выпуска проектовПять самых важных составляющих процесса выпуска проектов
Пять самых важных составляющих процесса выпуска проектов
 
Час Кода 2015
Час Кода 2015Час Кода 2015
Час Кода 2015
 
Impact mapping in practice
Impact mapping in practiceImpact mapping in practice
Impact mapping in practice
 
Impact Mapping на практике
Impact Mapping на практикеImpact Mapping на практике
Impact Mapping на практике
 
Customer satisfaction для программистов
Customer satisfaction для программистовCustomer satisfaction для программистов
Customer satisfaction для программистов
 
CQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорCQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафор
 
Как размножается Sphinx
Как размножается SphinxКак размножается Sphinx
Как размножается Sphinx
 

Непрерывная интеграция в ритме военного марша

  • 1. 5-я конференция .NET разработчиков 21 октября 2012 www.dotnetconf.ru Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев ByndyuSoft twitter.com/eskat0n
  • 2. Непрерывная интеграция Выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 2
  • 3. Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 3
  • 4. Непрерывная интеграция Выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 4
  • 5. Автоматизированных? • TeamCity • CruiseControl.NET • Jenkins • Travis CI тысячи их... Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 5
  • 6. TeamCity • Написана на языке Java и выполнена в виде servlet’а для Apache Tomcat • До 20 конфигураций сборки в бесплатной версии • Разработчик – компания Jetbrains Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 6
  • 7. TeamCity • Проект • Конфигурация сборки • Настройки VCS • Шаги сборки (запуск какого-либо инструмента) • Настройки переменных окружения и системных переменных • Триггеры сборки • Настройки доступа к артефактам сборки Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 7
  • 8. Непрерывная интеграция Выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 8
  • 9. Насколько частых? • По наличию изменений в системе контроля версий • По наличию артефактов сборки • По расписанию • Вручную и другие... Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 9
  • 10. Непрерывная интеграция Выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 10
  • 11. Способы выявления проблем • Ошибки при сборке проекта • Наличие проваленных модульных или интеграционных тестов • Превышение критического порога какой-либо метрики для оценки качества кода или любая иная логика специфичная для проекта... Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 11
  • 12. Демонстрация Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 12
  • 13. Непрерывная интеграция Выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 13
  • 14. Скорейшего? Оповещения членов команды разработчиков • По email • С помощью jabber • С помощью всплывающих сообщений программы TeamCity Tray Notifier Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 14
  • 15. На вкус и цвет... Тимлид Разработчики QA Новая сборка Наличие неудавшейся Успешная сборки со своими сборка в изменениями в конфигурации конфигурации для непрерывной интеграции тестирования Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 15
  • 16. Конфигурации для Web-приложения • Непрерывная интеграция: сборка, запуск модульных тестов, вычисление метрик кода • Разворачивание на UAT-сервере • Разворачивание недельной версии • Разворачивание на production-сервер • Разворачивание на production- сервер старой версии Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 16
  • 17. Continuous Deployment Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 17
  • 18. Достоинства Continuous Deployment • Обеспечивается гарантированное наличие версии для тестирования • Меньшие требования к программной среде на компьютерах тестировщиков • Скорость развертывания • Исключается влияние «человеческого фактора» на критических этапах жизненного цикла программы Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 18
  • 19. Репозиторий артефактов Хранит результаты сборки проекта (исполняемые файлы, библиотеки, ресурсы), необходимые для разворачивания произвольной их версии в произвольный момент времени Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 19
  • 20. Репозиторий артефактов • Получение номера ревизии из DVCS по версии программного продукта • Обновление на эту ревизию • Разворачивание системы из артефактов Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 20
  • 21. Репозиторий артефактов • При использовании FluentMigrator возможно гибкое версионирование базы данных • Версионные backup’ы БД (snapshot’ы) Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 21
  • 22. Спасибо за внимание Тимур Рахматиллаев ByndyuSoft eskat0n@soft.byndyu.ru twitter.com/eskat0n Непрерывная интеграция в ритме военного марша Тимур Рахматиллаев 22