SlideShare une entreprise Scribd logo
1  sur  21
Continuous Integration для чайников
        вместе с TeamCity




                     Илья Щербаков
                     Codemasters International
                     QA Engineer

 TULADEV.NET         ischerbakov@codemastersintl.com
Жизненный цикл программного обеспечения

 1. Возникновение и исследование идеи
 2. Анализ требований и проектирование
 3. Программирование
 4. Тестирование и отладка
 5. Ввод в эксплуатацию (начало коммерческого
    использования), маркетинговое продвижение, SEO
    оптимизация
 6. Эксплуатация, сопровождение, развитие
 7. Завершение эксплуатации, прекращение поддержки
    программного продукта




TULADEV.NET
Модели жизненного цикла
              программного обеспечения

  • Водопадная модель
     Предложена Уинстом Ройсом (1970). Включает формирование
     требований, проектирование, реализацию, тестирование, внедрение, экс
     плуатацию и сопровождение
  • Итерационая модель (инкрементальная)
     Предложена Т. Гилбом в 1970-е года. Предполагает разбиение
     жизненного цикла проекта на итерации.
  • Спиральная модель
     Предложена Барри Боэмом в середине 1980х годов. Программное
     обеспечение создается в несколько итераций (витков спирали) методом
     прототипирования. Каждая итерация преследует цель создания
     фрагмента ПО. Особое внимание уделяется рискам на очередную
     итерацию.




TULADEV.NET
Непрерывная Интеграция

• Что такое CI?

• Что включает в себя Организация CI?
     Получение исходников
     Сборка
     Выполнение тестов
     Развертывание
     Отчеты

• Кто заинтересован в процессе CI?




TULADEV.NET
Преимущества и недостатки
                Непрерывной Интеграции
                   + Проблемы интеграции выявляются и исправляются
                   быстро, что оказывается дешевле;
                   + Немедленный прогон модульных тестов для свежих
                   изменений;
                   + Постоянное наличие текущей стабильной версии
                   вместе с продуктами
                   + Немедленный эффект от неполного или
                   неработающего кода приучает разработчиков к работе
                   в итеративном режиме с более коротким циклом


- Поддержание среды CI
- Нужда в выделенном сервере для CI
- Немедленный эффект от неполного или неработающего
кода отучает разработчиков от выполнения периодических
резервных включений кода в репозиторий


TULADEV.NET
Средства обеспечения Непрерывной Интеграции


           TeamCity



              Hudson

                   Bamboo


                       CruiseControl



                  BuildBot

                             … и другие...
TULADEV.NET
Что нужно, чтобы пользоваться TeamCity?


  - Желание 
  - Репозиторий
  - Скачать и установить компоненты TeamCity
  - Создать сценарии билдов




TULADEV.NET
Какие плюшки дает TeamCity?
            Заменит ли он сало?
                  + Pro-версия на 20 конфигураций и 3
                  агента
                  + Поддержка платформ
                  Java, .NET, Ruby
                  + Наличие плагинов для многих IDE
                  (Eclipse, VS, Redmine и др.)
                  + Расширяемость сервера и агентов
                  плагинами Java
                  + Возможность протестировать код
                  перед коммитом (Personal Build)
                  + Параллельность билдов
                  + Интеграция с системами оценки
                  кода
                  (покрытие, инспецция, дублицировани
                  е)
                  + Интеграция с багтреккерами
TULADEV.NET       + Tray-Notifier
Инфраструктура CI на базе TeamCity




TULADEV.NET
Интерфейс TeamCity 7.1




TULADEV.NET
Трансформация конфигурационных файлов
Файл Web.QA.config




TULADEV.NET
Параметризация билдов




Пример использования:
MSBuild.exe
%Checkoutdirprefix%%ProjectConfiguration%SiteTulaDevPresentationT
ulaDevPresentation.sln
/p:Configuration=%ProjectConfiguration%;DeployOnBuild=true;DeployTar
get=Package;_PackageTempDir=%Deploydirprefix%%ProjectConfiguration%


   TULADEV.NET
Компиляция приложения через MSBuild.exe
         (см. листинг на след. слайде)




TULADEV.NET
Компиляция приложения через MSBuild.exe
                    (Листинг)

C:
cd C:WindowsMicrosoft.NETFrameworkv4.0.30319
MSBuild.exe
%Checkoutdirprefix%%ProjectConfiguration%SiteTulaD
evPresentationTulaDevPresentation.sln
/p:Configuration=%ProjectConfiguration%;DeployOnBuil
d=true;DeployTarget=Package;_PackageTempDir=%Deployd
irprefix%%ProjectConfiguration%




 TULADEV.NET
Развертывание проекта на IIS
        (см. листинг на след. слайде)




TULADEV.NET
Развертывание проекта на IIS
                     (Листинг)
c:
cd "c:Program Files (x86)IISMicrosoft Web Deploy
V3"
msdeploy.exe -verb:sync -
source:iisApp="%Deploydirprefix%%ProjectConfiguratio
n%" -
dest:package=%Deploydirprefix%%ProjectConfiguration%
tuladev_site.zip
msdeploy.exe -verb:sync -
source:package="%Deploydirprefix%%ProjectConfigurati
on%tuladev_site.zip" -
dest:iisApp="TuladevPresentationQA"



 TULADEV.NET
Раз, два, три и в Продакшен?!
Билдим проект в отдельную папку:
C:
cd C:WindowsMicrosoft.NETFrameworkv4.0.30319
MSBuild.exe
b:TuladevCheckoutStagingSiteTulaDevPresentationTulaDevPresentation.
sln
/p:Configuration=Production;DeployOnBuild=true;DeployTarget=Package;_Pa
ckageTempDir=b:tuladevdeployProduction


Синхронизируем Production cо Staging-окружением:
"c:Program Files (x86)IISMicrosoft Web Deploy V3msdeploy.exe" -
verb:sync -
source:contentpath="c:inetpubwwwroottuladevpresentationStaging" -
dest:contentpath="c:inetpubwwwroottuladevpresentationProduction",com
puterName=ISCherbakovWS.Codemasters.Local


Копируем Web.Config
copy "b:tuladevdeployProductionWeb.config"
"c:inetpubwwwroottuladevpresentation
Production" /V /Y


TULADEV.NET
Демонстрация работы TeamCity




TULADEV.NET
Персональный билд (Personal Build)




TULADEV.NET
Демонстрация работы Персонального Билда
          (Personal Build Demo)




TULADEV.NET
Спасибо за внимание!

             Ссылки и полезные материалы:
http://www.martinfowler.com/articles/continuousIntegration.html
http://confluence.jetbrains.com
http://www.iis.net/
http://blog.winhost.com/using-msdeploy-to-publish-your-site/
http://matt-roberts.me/dev/2012/04/04/automated-web-app-deployment-with-
teamcity-and-msdeploy/
http://msdn.microsoft.com/ru-ru/library/dd394698(v=vs.100).aspx




 TULADEV.NET

Contenu connexe

Tendances

Trpo 2 создание по
Trpo 2 создание поTrpo 2 создание по
Trpo 2 создание поpogromskaya
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17OdessaFrontend
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПОAnton Konushin
 
Автоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапеАвтоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапеEvgeny Savitsky
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?CEE-SEC(R)
 
Алексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous IntegrationАлексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous IntegrationOleg Poludnenko
 
ClubQA #2. Unit testing and TDD
ClubQA #2. Unit testing and TDDClubQA #2. Unit testing and TDD
ClubQA #2. Unit testing and TDDClub QA Kostroma
 
Agile: разработка + тестирование
Agile: разработка + тестированиеAgile: разработка + тестирование
Agile: разработка + тестированиеAlexander Byndyu
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QAFest
 
CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестиров...
CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестиров...CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестиров...
CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестиров...CodeFest
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурцеAlexander Byndyu
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Mail.ru Group
 
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9OdessaFrontend
 
Тестирование как панацея для жизни и развития проекта
Тестирование как панацея для жизни и развития проекта Тестирование как панацея для жизни и развития проекта
Тестирование как панацея для жизни и развития проекта Evgeniy Kuzmin
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014it-people
 
зуева татьяна - опыт автоматизации тестирования в Agile проекте
зуева татьяна -  опыт автоматизации тестирования в Agile проектезуева татьяна -  опыт автоматизации тестирования в Agile проекте
зуева татьяна - опыт автоматизации тестирования в Agile проектеMagneta AI
 
Промышленная разработка ПО. Лекция 3. Особенности работы программиста. Часть...
Промышленная разработка ПО. Лекция 3. Особенности работы программиста.  Часть...Промышленная разработка ПО. Лекция 3. Особенности работы программиста.  Часть...
Промышленная разработка ПО. Лекция 3. Особенности работы программиста. Часть...Mikhail Payson
 
Code review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияSQALab
 
статические анализаторы кода за и против
статические анализаторы кода  за и противстатические анализаторы кода  за и против
статические анализаторы кода за и противRoman Kalita
 
Crucible или почему для Code Review нужна не только голова, но и инструмент
Crucible или почему для Code Review нужна не только голова, но и инструментCrucible или почему для Code Review нужна не только голова, но и инструмент
Crucible или почему для Code Review нужна не только голова, но и инструментMaxim Kuzmich
 

Tendances (20)

Trpo 2 создание по
Trpo 2 создание поTrpo 2 создание по
Trpo 2 создание по
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 
Автоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапеАвтоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапе
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
 
Алексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous IntegrationАлексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous Integration
 
ClubQA #2. Unit testing and TDD
ClubQA #2. Unit testing and TDDClubQA #2. Unit testing and TDD
ClubQA #2. Unit testing and TDD
 
Agile: разработка + тестирование
Agile: разработка + тестированиеAgile: разработка + тестирование
Agile: разработка + тестирование
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
 
CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестиров...
CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестиров...CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестиров...
CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестиров...
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурце
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
 
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
 
Тестирование как панацея для жизни и развития проекта
Тестирование как панацея для жизни и развития проекта Тестирование как панацея для жизни и развития проекта
Тестирование как панацея для жизни и развития проекта
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
 
зуева татьяна - опыт автоматизации тестирования в Agile проекте
зуева татьяна -  опыт автоматизации тестирования в Agile проектезуева татьяна -  опыт автоматизации тестирования в Agile проекте
зуева татьяна - опыт автоматизации тестирования в Agile проекте
 
Промышленная разработка ПО. Лекция 3. Особенности работы программиста. Часть...
Промышленная разработка ПО. Лекция 3. Особенности работы программиста.  Часть...Промышленная разработка ПО. Лекция 3. Особенности работы программиста.  Часть...
Промышленная разработка ПО. Лекция 3. Особенности работы программиста. Часть...
 
Code review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспечения
 
статические анализаторы кода за и против
статические анализаторы кода  за и противстатические анализаторы кода  за и против
статические анализаторы кода за и против
 
Crucible или почему для Code Review нужна не только голова, но и инструмент
Crucible или почему для Code Review нужна не только голова, но и инструментCrucible или почему для Code Review нужна не только голова, но и инструмент
Crucible или почему для Code Review нужна не только голова, но и инструмент
 

En vedette

Continuous Integration - Team city
Continuous Integration - Team cityContinuous Integration - Team city
Continuous Integration - Team cityAngel Nuñez
 
Интеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей СоловьевИнтеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей СоловьевPositive Hack Days
 
Establish reliable builds and deployments with Magento
Establish reliable builds and deployments with MagentoEstablish reliable builds and deployments with Magento
Establish reliable builds and deployments with MagentoUnic
 
DersuDev #1 2015 - Continous Integration
DersuDev #1 2015 - Continous IntegrationDersuDev #1 2015 - Continous Integration
DersuDev #1 2015 - Continous IntegrationIgor Karpovich
 
Владислав Чернов, Badoo
Владислав Чернов, BadooВладислав Чернов, Badoo
Владислав Чернов, BadooOntico
 
Такой (не)безопасный веб
Такой (не)безопасный вебТакой (не)безопасный веб
Такой (не)безопасный вебDmitry Evteev
 
Нужно ли внедрять DevOps. Как добиться чего-то от эксплуатации / Андрей Шорин...
Нужно ли внедрять DevOps. Как добиться чего-то от эксплуатации / Андрей Шорин...Нужно ли внедрять DevOps. Как добиться чего-то от эксплуатации / Андрей Шорин...
Нужно ли внедрять DevOps. Как добиться чего-то от эксплуатации / Андрей Шорин...Ontico
 
Использование сервера Continuous Integration для разработки мобильных приложений
Использование сервера Continuous Integration для разработки мобильных приложенийИспользование сервера Continuous Integration для разработки мобильных приложений
Использование сервера Continuous Integration для разработки мобильных приложенийAlexander Byndyu
 
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИSIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИPavel Tsukanov
 
Thinking in parallel ab tuladev
Thinking in parallel ab tuladevThinking in parallel ab tuladev
Thinking in parallel ab tuladevPavel Tsukanov
 
Введение в Knockout
Введение в Knockout Введение в Knockout
Введение в Knockout Pavel Tsukanov
 
Sql azure federations
Sql azure federations Sql azure federations
Sql azure federations Pavel Tsukanov
 
Основы "мобильной" разработки на примере платформы iOs (iPhone)
Основы "мобильной" разработки на примере платформы iOs (iPhone)Основы "мобильной" разработки на примере платформы iOs (iPhone)
Основы "мобильной" разработки на примере платформы iOs (iPhone)Pavel Tsukanov
 
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...Pavel Tsukanov
 
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.Pavel Tsukanov
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++Pavel Tsukanov
 
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.Pavel Tsukanov
 
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВРАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВPavel Tsukanov
 

En vedette (20)

Continuous Integration - Team city
Continuous Integration - Team cityContinuous Integration - Team city
Continuous Integration - Team city
 
Интеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей СоловьевИнтеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей Соловьев
 
Establish reliable builds and deployments with Magento
Establish reliable builds and deployments with MagentoEstablish reliable builds and deployments with Magento
Establish reliable builds and deployments with Magento
 
DersuDev #1 2015 - Continous Integration
DersuDev #1 2015 - Continous IntegrationDersuDev #1 2015 - Continous Integration
DersuDev #1 2015 - Continous Integration
 
Владислав Чернов, Badoo
Владислав Чернов, BadooВладислав Чернов, Badoo
Владислав Чернов, Badoo
 
Такой (не)безопасный веб
Такой (не)безопасный вебТакой (не)безопасный веб
Такой (не)безопасный веб
 
Нужно ли внедрять DevOps. Как добиться чего-то от эксплуатации / Андрей Шорин...
Нужно ли внедрять DevOps. Как добиться чего-то от эксплуатации / Андрей Шорин...Нужно ли внедрять DevOps. Как добиться чего-то от эксплуатации / Андрей Шорин...
Нужно ли внедрять DevOps. Как добиться чего-то от эксплуатации / Андрей Шорин...
 
Использование сервера Continuous Integration для разработки мобильных приложений
Использование сервера Continuous Integration для разработки мобильных приложенийИспользование сервера Continuous Integration для разработки мобильных приложений
Использование сервера Continuous Integration для разработки мобильных приложений
 
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИSIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
 
Thinking in parallel ab tuladev
Thinking in parallel ab tuladevThinking in parallel ab tuladev
Thinking in parallel ab tuladev
 
Введение в Knockout
Введение в Knockout Введение в Knockout
Введение в Knockout
 
RESPONSIVE WEB DESIGN
RESPONSIVE WEB DESIGNRESPONSIVE WEB DESIGN
RESPONSIVE WEB DESIGN
 
Sql azure federations
Sql azure federations Sql azure federations
Sql azure federations
 
Основы "мобильной" разработки на примере платформы iOs (iPhone)
Основы "мобильной" разработки на примере платформы iOs (iPhone)Основы "мобильной" разработки на примере платформы iOs (iPhone)
Основы "мобильной" разработки на примере платформы iOs (iPhone)
 
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
 
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
 
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
 
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВРАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
 
Unit tests
Unit testsUnit tests
Unit tests
 

Similaire à CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY

Continous Integration
Continous IntegrationContinous Integration
Continous IntegrationGetDev.NET
 
Виктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаВиктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаPositive Hack Days
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 
Организация автоматизированного развертывания ПО и создание тестовых сред
Организация автоматизированного развертывания ПО и создание тестовых средОрганизация автоматизированного развертывания ПО и создание тестовых сред
Организация автоматизированного развертывания ПО и создание тестовых средEkaterina Shelest
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийSergii Shmarkatiuk
 
SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniyAlexey Krivitsky
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Alexander Babich
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Alexey Bokov
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.Igor Shkulipa
 
Continuous Delivery in Enterprise / Agile Kitchen 2016
Continuous Delivery in Enterprise / Agile Kitchen 2016Continuous Delivery in Enterprise / Agile Kitchen 2016
Continuous Delivery in Enterprise / Agile Kitchen 2016pbiryukov
 
Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Technopark
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azureMicrosoft
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Technopark
 

Similaire à CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY (20)

Continous Integration
Continous IntegrationContinous Integration
Continous Integration
 
Виктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаВиктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчика
 
Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Wgforge CI/CD
Wgforge CI/CDWgforge CI/CD
Wgforge CI/CD
 
Организация автоматизированного развертывания ПО и создание тестовых сред
Организация автоматизированного развертывания ПО и создание тестовых средОрганизация автоматизированного развертывания ПО и создание тестовых сред
Организация автоматизированного развертывания ПО и создание тестовых сред
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложений
 
SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max Kolodezniy
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
 
Continuous Delivery in Enterprise / Agile Kitchen 2016
Continuous Delivery in Enterprise / Agile Kitchen 2016Continuous Delivery in Enterprise / Agile Kitchen 2016
Continuous Delivery in Enterprise / Agile Kitchen 2016
 
Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azure
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5
 

Plus de Pavel Tsukanov

Автоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverАвтоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverPavel Tsukanov
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVPavel Tsukanov
 
СОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯСОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯPavel Tsukanov
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS Pavel Tsukanov
 
АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5Pavel Tsukanov
 
ХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫPavel Tsukanov
 
ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.Pavel Tsukanov
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Pavel Tsukanov
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFPavel Tsukanov
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
Как писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDКак писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDPavel Tsukanov
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода Pavel Tsukanov
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.Pavel Tsukanov
 
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже. Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже. Pavel Tsukanov
 

Plus de Pavel Tsukanov (17)

Автоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverАвтоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriver
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
 
СОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯСОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯ
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5
 
ХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫ
 
ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCF
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Как писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDКак писать красивый код или основы SOLID
Как писать красивый код или основы SOLID
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода
 
PaaS и SaaS
PaaS и SaaSPaaS и SaaS
PaaS и SaaS
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.
 
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже. Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
 

CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY

  • 1. Continuous Integration для чайников вместе с TeamCity Илья Щербаков Codemasters International QA Engineer TULADEV.NET ischerbakov@codemastersintl.com
  • 2. Жизненный цикл программного обеспечения 1. Возникновение и исследование идеи 2. Анализ требований и проектирование 3. Программирование 4. Тестирование и отладка 5. Ввод в эксплуатацию (начало коммерческого использования), маркетинговое продвижение, SEO оптимизация 6. Эксплуатация, сопровождение, развитие 7. Завершение эксплуатации, прекращение поддержки программного продукта TULADEV.NET
  • 3. Модели жизненного цикла программного обеспечения • Водопадная модель Предложена Уинстом Ройсом (1970). Включает формирование требований, проектирование, реализацию, тестирование, внедрение, экс плуатацию и сопровождение • Итерационая модель (инкрементальная) Предложена Т. Гилбом в 1970-е года. Предполагает разбиение жизненного цикла проекта на итерации. • Спиральная модель Предложена Барри Боэмом в середине 1980х годов. Программное обеспечение создается в несколько итераций (витков спирали) методом прототипирования. Каждая итерация преследует цель создания фрагмента ПО. Особое внимание уделяется рискам на очередную итерацию. TULADEV.NET
  • 4. Непрерывная Интеграция • Что такое CI? • Что включает в себя Организация CI?  Получение исходников  Сборка  Выполнение тестов  Развертывание  Отчеты • Кто заинтересован в процессе CI? TULADEV.NET
  • 5. Преимущества и недостатки Непрерывной Интеграции + Проблемы интеграции выявляются и исправляются быстро, что оказывается дешевле; + Немедленный прогон модульных тестов для свежих изменений; + Постоянное наличие текущей стабильной версии вместе с продуктами + Немедленный эффект от неполного или неработающего кода приучает разработчиков к работе в итеративном режиме с более коротким циклом - Поддержание среды CI - Нужда в выделенном сервере для CI - Немедленный эффект от неполного или неработающего кода отучает разработчиков от выполнения периодических резервных включений кода в репозиторий TULADEV.NET
  • 6. Средства обеспечения Непрерывной Интеграции TeamCity Hudson Bamboo CruiseControl BuildBot … и другие... TULADEV.NET
  • 7. Что нужно, чтобы пользоваться TeamCity? - Желание  - Репозиторий - Скачать и установить компоненты TeamCity - Создать сценарии билдов TULADEV.NET
  • 8. Какие плюшки дает TeamCity? Заменит ли он сало? + Pro-версия на 20 конфигураций и 3 агента + Поддержка платформ Java, .NET, Ruby + Наличие плагинов для многих IDE (Eclipse, VS, Redmine и др.) + Расширяемость сервера и агентов плагинами Java + Возможность протестировать код перед коммитом (Personal Build) + Параллельность билдов + Интеграция с системами оценки кода (покрытие, инспецция, дублицировани е) + Интеграция с багтреккерами TULADEV.NET + Tray-Notifier
  • 9. Инфраструктура CI на базе TeamCity TULADEV.NET
  • 13. Компиляция приложения через MSBuild.exe (см. листинг на след. слайде) TULADEV.NET
  • 14. Компиляция приложения через MSBuild.exe (Листинг) C: cd C:WindowsMicrosoft.NETFrameworkv4.0.30319 MSBuild.exe %Checkoutdirprefix%%ProjectConfiguration%SiteTulaD evPresentationTulaDevPresentation.sln /p:Configuration=%ProjectConfiguration%;DeployOnBuil d=true;DeployTarget=Package;_PackageTempDir=%Deployd irprefix%%ProjectConfiguration% TULADEV.NET
  • 15. Развертывание проекта на IIS (см. листинг на след. слайде) TULADEV.NET
  • 16. Развертывание проекта на IIS (Листинг) c: cd "c:Program Files (x86)IISMicrosoft Web Deploy V3" msdeploy.exe -verb:sync - source:iisApp="%Deploydirprefix%%ProjectConfiguratio n%" - dest:package=%Deploydirprefix%%ProjectConfiguration% tuladev_site.zip msdeploy.exe -verb:sync - source:package="%Deploydirprefix%%ProjectConfigurati on%tuladev_site.zip" - dest:iisApp="TuladevPresentationQA" TULADEV.NET
  • 17. Раз, два, три и в Продакшен?! Билдим проект в отдельную папку: C: cd C:WindowsMicrosoft.NETFrameworkv4.0.30319 MSBuild.exe b:TuladevCheckoutStagingSiteTulaDevPresentationTulaDevPresentation. sln /p:Configuration=Production;DeployOnBuild=true;DeployTarget=Package;_Pa ckageTempDir=b:tuladevdeployProduction Синхронизируем Production cо Staging-окружением: "c:Program Files (x86)IISMicrosoft Web Deploy V3msdeploy.exe" - verb:sync - source:contentpath="c:inetpubwwwroottuladevpresentationStaging" - dest:contentpath="c:inetpubwwwroottuladevpresentationProduction",com puterName=ISCherbakovWS.Codemasters.Local Копируем Web.Config copy "b:tuladevdeployProductionWeb.config" "c:inetpubwwwroottuladevpresentation Production" /V /Y TULADEV.NET
  • 20. Демонстрация работы Персонального Билда (Personal Build Demo) TULADEV.NET
  • 21. Спасибо за внимание! Ссылки и полезные материалы: http://www.martinfowler.com/articles/continuousIntegration.html http://confluence.jetbrains.com http://www.iis.net/ http://blog.winhost.com/using-msdeploy-to-publish-your-site/ http://matt-roberts.me/dev/2012/04/04/automated-web-app-deployment-with- teamcity-and-msdeploy/ http://msdn.microsoft.com/ru-ru/library/dd394698(v=vs.100).aspx TULADEV.NET

Notes de l'éditeur

  1. http://ru.wikipedia.org/wiki/Жизненный_цикл_программного_обеспечения. Итерационная модель. Модель предполагает разбиение жизненного цикла проекта на итерации, включающие все процессы разработки. Цель каждой итерации – получение стабильной версии. Всегда есть возможность отката к предыдущей стабильной версии.Спиральная модельПредложена Барри Боэмом в середине 1980х годов. Программное обеспечение создается в несколько итераций (витков спирали) методом прототипирования. Каждая итерация преследует цель создания фрагмента ПО. Уточняются цели и характеристики проекта, оценивается качество полученных результатов, планируются работы на следующую итерацию. Особое внимание уделяется рискам на очередную итерацию (дефицит специалистов, реалистичность сроков и бюджета, реализация несоответствющей функциональности, ненужная оптимизация, нехватка информации о внешних компонентах и т.д.)
  2. It is required to download CollabNet Subversion 1.7x and JetBrains VS.NET Plugin