SlideShare a Scribd company logo
Непрерывная интеграция для PHP




                                 Александр Симанович
Project under control
   Руководитель группы разработчиков
    MTV Entertainment в EPAM Systems
   PHP Skill Manager в EPAM Systems
http://tiny.cc/2ws8ew
Project under control
   Проект (> 1 года)
   Команда (5-9 человек)
   Итеративный процесс (демо)
   LAMP
   Zend Framework
   Долгий процесс интеграции
   Актуальность базы данных
   Стандарты кодирования
   Copy/Pasting
   Сложность кода
   Новый человек в проекте
   Тестирование
   Рефакторинг
   Стандарты кодирования
   Частые релизы
   Уменьшение количества повторяемых
    процессов
   Снижение рисков
   Возможность быстрого построения ПО
   Обеспечение лучшего контроля проекта
   Повышение доверия к ПО
   Компиляция исходного кода
   Проверка
   Инспекция
   Интеграция базы данных
   Развертывание
   Документирование
   Обратная связь
Project under control
Project under control
   Очистка окружения
   Загружаем код из репозитория
   Запуск тестов, анализ кода
   Генерация документации (API)
   Подключение библиотек и фреймворка
   Развертывание приложения и базы данных
   Сделан для PHP, написан на PHP
   XML build файлы
   Кросс платформенный
   Большой выбор готовых тасков
   Расширяемый
Project   Target   Task
Project under control
Project under control
   Jenkins/Hudson
   CruiseControl/phpUnderControl
   Bamboo от Atlassian
   TeamCity от JetBrains
   Travis
   Репозиторий плагинов (более 400)
   Сообщество контрибьюторов
   Open source
   Кроссплатформенность
   Web интерфейс
   Простота использования
   API
Project under control
Project under control
   Ручное тестирование
   Unit tests
   Acceptance (End-to-End) tests
   Integration tests
Project under control
Project under control
   Снижаем сложность кода
   Поддерживаем стандарты кода
   Следим за дублированным кодом
   Оцениваем покрытие кода тестами
Project under control
php –l index.php
Project under control
Project under control
Project under control
Project under control
Project under control
Project under control
Project under control
   В любое время, в любом месте
   Маркируем каждое построение
   Запускаем все проверки
   Обеспечиваем возможность отката
Project under control
Project under control
   Состояние построения
   Результаты проверки
   Отчеты об инспекции
Project under control
   Email               Popup
   SMS                 IDE
   Jabber              X10
   Skype               Телевизор
   Twitter             Звук
   Расширение для      Шар рассеянного
    браузера             света
   Когда случается проблема
   Каждый час
   Каждый день
   Каждую неделю
   Каждый релиз
   Заказчик
   Руководитель проекта
   Интегратор
   Технический руководитель
   Бизнес-аналитик
   Разработчик
   Тестеровщик
   On commit
     По коммиту
     Информация команде
     Выполняется быстро
   Nightly
     Раз в день, ночью
     Информация команде, тех. лиду, менеджеру
     Выполняется долго (инспекция)
Project under control
   Уменьшение количества повторяемых
    процессов
   Снижение рисков
   Возможность быстрого построения ПО
   Обеспечение лучшего контроля проекта
   Повышение доверия к ПО
   Долгий процесс интеграции
   Актуальность базы данных
   Стандарты кодирования
   Copy/Pasting
   Сложность кода
   Новый человек в проекте
   Передавайте код часто
   Ликвидируйте проблемы
    незамедлительно
   Пишите автоматизированные проверки
   Все проверки должны быть пройдены
   Выполняйте закрытое построение
Project under control
   Затраты на поддержку CI
   Изменения процессов
   Слишком много неудачных построений
   Издержки на ПО и «железо»
Инструменты не решат ваши проблемы

       Вам нужна культура!
Project under control
Facebook делает паблиш кода каждый день…

             Автоматически




http://tiny.cc/ngs8ew
• Непрерывная Интеграция – Поль М. Дюваль
• Integrating PHP Projects with Jenkins – Sebastian
  Bergmann
• Growing Object-Oriented Software, Guided by Tests
  – Steve Freeman, Net Price
•   Email: as@extrascript.com
•   Skype: aliaksandr.simanovich
•   Twitter: @simanjan
•   Blog: simanovich.info
Project under control

More Related Content

What's hot (20)

PPT
Сетевые снифферы в тестировании
SQALab
 
PDF
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
SQALab
 
PDF
«Тестируем веб приложения», Павел Сташевский
DevDay
 
PPTX
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
COMAQA.BY
 
PPTX
Шаблоны проектирования нагрузочных скриптов
SQALab
 
PDF
Как Cluster Membership Software может помочь QA
SQALab
 
PPTX
Автоматическое управление DevOps активностями в стартапе
Evgeny Savitsky
 
PPTX
Тестирование доступности ПО для людей с ограниченными возможностями
SQALab
 
PPTX
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
SQALab
 
PPTX
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
SQALab
 
PPTX
Анализ инструментов автоматизации мобильного тестирования
SQALab
 
PDF
Devops-практики в разработке решений для бизнеса, Максим Пашук
DevDay
 
PPTX
Devops-практики в разработке решений для бизнеса — Максим Пашук, 2ГИС
2ГИС Технологии
 
PPT
Советы для успешной автоматизации тестирования веб-приложений
Mairbek Khadikov
 
PPTX
GUI-автоматизация в Telerik Test Studio
SQALab
 
PDF
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest
 
PPT
Профессиональное управление распределенными проектами
Evgeny Savitsky
 
PPTX
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Positive Hack Days
 
PDF
UI тестирование WPF приложений в Дойче Банке
GoSharp
 
PDF
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Образовательные мероприятия "Netpeak Talks"
 
Сетевые снифферы в тестировании
SQALab
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
SQALab
 
«Тестируем веб приложения», Павел Сташевский
DevDay
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
COMAQA.BY
 
Шаблоны проектирования нагрузочных скриптов
SQALab
 
Как Cluster Membership Software может помочь QA
SQALab
 
Автоматическое управление DevOps активностями в стартапе
Evgeny Savitsky
 
Тестирование доступности ПО для людей с ограниченными возможностями
SQALab
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
SQALab
 
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
SQALab
 
Анализ инструментов автоматизации мобильного тестирования
SQALab
 
Devops-практики в разработке решений для бизнеса, Максим Пашук
DevDay
 
Devops-практики в разработке решений для бизнеса — Максим Пашук, 2ГИС
2ГИС Технологии
 
Советы для успешной автоматизации тестирования веб-приложений
Mairbek Khadikov
 
GUI-автоматизация в Telerik Test Studio
SQALab
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest
 
Профессиональное управление распределенными проектами
Evgeny Savitsky
 
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Positive Hack Days
 
UI тестирование WPF приложений в Дойче Банке
GoSharp
 
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Образовательные мероприятия "Netpeak Talks"
 

Viewers also liked (20)

PDF
Firefox Thunderbird Seamonkey - felpörgetve!
Kálmán "KAMI" Szalai
 
PPT
Excursion rus
Roksana Ilyasevych
 
PPT
Semana santa
recursosdeartes
 
PDF
MAE235_project
Yixuan Jia
 
PDF
华为时间管理培训
VImLai
 
PDF
变迁与机遇 :2012年的中国移动互联网
VImLai
 
PPTX
بوربوينت برج خليفة
Eman yousuf
 
PDF
Karatini vved v-phil-8l[1]
Slava Yanko
 
PPT
Notizia telefil grachi da elena e enza
mjluquino
 
PDF
Mini week in england 3
Oscar Zamora Rueda
 
ODP
цахим хэрэглэгдэхүүн 1
pvsa_8990
 
PPTX
Haziran kampanya lansman sunumu
niclug
 
PPT
Presi
ailuolsa
 
PDF
Aula 007 - obrigações - CLASSIFICAÇÃO ou MODALIDADES DE OBRIGAÇÕES
Tércio De Santana
 
PDF
Booosting rapportage.studie renovatie en transformatietechnologie-2005
Booosting platform voor koplopers in bouwinnovatie
 
PPTX
Presentacion
christian giñin
 
PDF
Fairy Land
Pixie Productions
 
PDF
Grelha de guiao
Tânia Prates
 
ODP
Andrej vi def
Peter Malec
 
Firefox Thunderbird Seamonkey - felpörgetve!
Kálmán "KAMI" Szalai
 
Excursion rus
Roksana Ilyasevych
 
Semana santa
recursosdeartes
 
MAE235_project
Yixuan Jia
 
华为时间管理培训
VImLai
 
变迁与机遇 :2012年的中国移动互联网
VImLai
 
بوربوينت برج خليفة
Eman yousuf
 
Karatini vved v-phil-8l[1]
Slava Yanko
 
Notizia telefil grachi da elena e enza
mjluquino
 
Mini week in england 3
Oscar Zamora Rueda
 
цахим хэрэглэгдэхүүн 1
pvsa_8990
 
Haziran kampanya lansman sunumu
niclug
 
Presi
ailuolsa
 
Aula 007 - obrigações - CLASSIFICAÇÃO ou MODALIDADES DE OBRIGAÇÕES
Tércio De Santana
 
Booosting rapportage.studie renovatie en transformatietechnologie-2005
Booosting platform voor koplopers in bouwinnovatie
 
Presentacion
christian giñin
 
Fairy Land
Pixie Productions
 
Grelha de guiao
Tânia Prates
 
Andrej vi def
Peter Malec
 
Ad

Similar to Project under control (20)

PPTX
метод организации репозитория исходного кода
Sergii Shmarkatiuk
 
PDF
Тестирование весна 2013 лекция 5
Technopark
 
PDF
Continuous integration
Grigoriy Ostrovskiy
 
PDF
Тестирование осень 2013 лекция 5
Technopark
 
PPT
Юнит тестирование в Web. Как получать пользу и удовольствие.
Sergey Ryabenko
 
PPTX
Лучшие практики на практике
Denis Tuchin
 
PPTX
Кирилл Комлев. О реализации continuous integration для web проектов
Olesya_V
 
PPTX
Непрерывная интеграция. Практическое применение
devclub
 
PDF
Dev collaboration
Eduard Antsupov
 
PPTX
Continuous integration
MageCloud
 
PPT
Юрий Цыганенко, QA как услуга
SQADays_2009_Piter
 
PPTX
Continious integration-Automated Testing-Solid-Agile
Kairat Yussupov
 
PDF
Continuous Integration(как мы подружили frontend и backend)
Talks&Works
 
PDF
Непрерывная интеграция при разработке баз данных. (Show version)
Vladimir Bakhov
 
PDF
C# Web. Занятие 14.
Igor Shkulipa
 
PPTX
Continuous integration, или как мы подружили front end и back-end
wlbl
 
PDF
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
Тарасов Константин
 
PPTX
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint Kyiv
 
PPS
A labs 2009 - внедрение agile
Alexey Korsun
 
PDF
Enter: legacy code
Kamil Samigullin
 
метод организации репозитория исходного кода
Sergii Shmarkatiuk
 
Тестирование весна 2013 лекция 5
Technopark
 
Continuous integration
Grigoriy Ostrovskiy
 
Тестирование осень 2013 лекция 5
Technopark
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Sergey Ryabenko
 
Лучшие практики на практике
Denis Tuchin
 
Кирилл Комлев. О реализации continuous integration для web проектов
Olesya_V
 
Непрерывная интеграция. Практическое применение
devclub
 
Dev collaboration
Eduard Antsupov
 
Continuous integration
MageCloud
 
Юрий Цыганенко, QA как услуга
SQADays_2009_Piter
 
Continious integration-Automated Testing-Solid-Agile
Kairat Yussupov
 
Continuous Integration(как мы подружили frontend и backend)
Talks&Works
 
Непрерывная интеграция при разработке баз данных. (Show version)
Vladimir Bakhov
 
C# Web. Занятие 14.
Igor Shkulipa
 
Continuous integration, или как мы подружили front end и back-end
wlbl
 
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
Тарасов Константин
 
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint Kyiv
 
A labs 2009 - внедрение agile
Alexey Korsun
 
Enter: legacy code
Kamil Samigullin
 
Ad

Project under control

  • 1. Непрерывная интеграция для PHP Александр Симанович
  • 3. Руководитель группы разработчиков MTV Entertainment в EPAM Systems  PHP Skill Manager в EPAM Systems
  • 6. Проект (> 1 года)  Команда (5-9 человек)  Итеративный процесс (демо)  LAMP  Zend Framework
  • 7. Долгий процесс интеграции  Актуальность базы данных  Стандарты кодирования  Copy/Pasting  Сложность кода  Новый человек в проекте
  • 8. Тестирование  Рефакторинг  Стандарты кодирования  Частые релизы
  • 9. Уменьшение количества повторяемых процессов  Снижение рисков  Возможность быстрого построения ПО  Обеспечение лучшего контроля проекта  Повышение доверия к ПО
  • 10. Компиляция исходного кода  Проверка  Инспекция  Интеграция базы данных  Развертывание  Документирование  Обратная связь
  • 13. Очистка окружения  Загружаем код из репозитория  Запуск тестов, анализ кода  Генерация документации (API)  Подключение библиотек и фреймворка  Развертывание приложения и базы данных
  • 14. Сделан для PHP, написан на PHP  XML build файлы  Кросс платформенный  Большой выбор готовых тасков  Расширяемый
  • 15. Project Target Task
  • 18. Jenkins/Hudson  CruiseControl/phpUnderControl  Bamboo от Atlassian  TeamCity от JetBrains  Travis
  • 19. Репозиторий плагинов (более 400)  Сообщество контрибьюторов  Open source  Кроссплатформенность  Web интерфейс  Простота использования  API
  • 22. Ручное тестирование  Unit tests  Acceptance (End-to-End) tests  Integration tests
  • 25. Снижаем сложность кода  Поддерживаем стандарты кода  Следим за дублированным кодом  Оцениваем покрытие кода тестами
  • 35. В любое время, в любом месте  Маркируем каждое построение  Запускаем все проверки  Обеспечиваем возможность отката
  • 38. Состояние построения  Результаты проверки  Отчеты об инспекции
  • 40. Email  Popup  SMS  IDE  Jabber  X10  Skype  Телевизор  Twitter  Звук  Расширение для  Шар рассеянного браузера света
  • 41. Когда случается проблема  Каждый час  Каждый день  Каждую неделю  Каждый релиз
  • 42. Заказчик  Руководитель проекта  Интегратор  Технический руководитель  Бизнес-аналитик  Разработчик  Тестеровщик
  • 43. On commit  По коммиту  Информация команде  Выполняется быстро  Nightly  Раз в день, ночью  Информация команде, тех. лиду, менеджеру  Выполняется долго (инспекция)
  • 45. Уменьшение количества повторяемых процессов  Снижение рисков  Возможность быстрого построения ПО  Обеспечение лучшего контроля проекта  Повышение доверия к ПО
  • 46. Долгий процесс интеграции  Актуальность базы данных  Стандарты кодирования  Copy/Pasting  Сложность кода  Новый человек в проекте
  • 47. Передавайте код часто  Ликвидируйте проблемы незамедлительно  Пишите автоматизированные проверки  Все проверки должны быть пройдены  Выполняйте закрытое построение
  • 49. Затраты на поддержку CI  Изменения процессов  Слишком много неудачных построений  Издержки на ПО и «железо»
  • 50. Инструменты не решат ваши проблемы Вам нужна культура!
  • 52. Facebook делает паблиш кода каждый день… Автоматически http://tiny.cc/ngs8ew
  • 53. • Непрерывная Интеграция – Поль М. Дюваль • Integrating PHP Projects with Jenkins – Sebastian Bergmann • Growing Object-Oriented Software, Guided by Tests – Steve Freeman, Net Price
  • 54. Email: [email protected] • Skype: aliaksandr.simanovich • Twitter: @simanjan • Blog: simanovich.info