1 / 59

PROJECT UNDER CONTROL

Непрерывная интеграция для PHP. PROJECT UNDER CONTROL. Александр Симанович. Регламент. Обо мне. Руководитель группы разработчиков MTV Entertainment в EPAM Systems PHP Skill Manager в EPAM Systems. Исходный код. http://tiny.cc/2ws8ew. Введение в непрерывную интеграцию.

dandre
Download Presentation

PROJECT UNDER CONTROL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Непрерывная интеграция для PHP PROJECT UNDER CONTROL Александр Симанович

  2. Регламент

  3. Обо мне • Руководитель группы разработчиковMTV Entertainment в EPAM Systems • PHP Skill Manager в EPAM Systems

  4. Исходный код http://tiny.cc/2ws8ew

  5. Введение в непрерывную интеграцию

  6. Исходные данные • Проект (> 1года) • Команда (5-9 человек) • Итеративный процесс (демо) • LAMP • Zend Framework

  7. Потенциальные риски и проблемы • Долгий процесс интеграции • Актуальность базы данных • Стандарты кодирования • Copy/Pasting • Сложность кода • Новый человек в проекте

  8. Качество • Тестирование • Рефакторинг • Стандарты кодирования • Частые релизы

  9. Цели CI • Уменьшение количества повторяемых процессов • Снижение рисков • Возможность быстрого построения ПО • Обеспечение лучшего контроля проекта • Повышение доверия к ПО

  10. Процессы CI • Компиляция исходного кода • Проверка • Инспекция • Интеграция базы данных • Развертывание • Документирование • Обратная связь

  11. Системы контроля версий

  12. Build инструменты

  13. Build для PHP • Очистка окружения • Загружаем код из репозитория • Запуск тестов, анализ кода • Генерация документации (API) • Развертывание приложения • Интеграция базы данных

  14. Почему Phing? • Сделан для PHP, написан на PHP • XML build файлы • Кросс платформенный • Большой выбор готовых тасков • Расширяемый

  15. Основы Phing

  16. Локальный build

  17. Сервер непрерывной интеграции

  18. Сервера CI • Jenkins/Hudson • CruiseControl/phpUnderControl • Bamboo отAtlassian • TeamCityотJetBrains • Travis

  19. Почему Jenkins? • Репозиторий плагинов (более 400) • Сообщество контрибьюторов • Open source • Кроссплатформенность • Web интерфейс • Простота использования • API

  20. Chuck Norris CAN divide by 0

  21. Непрерывная проверка

  22. Тесты и инструменты • Ручное тестирование • Unit tests • Acceptance (End-to-End) tests • Integration tests

  23. Test Results

  24. Непрерывная инспекция

  25. Инспекция • Снижаем сложность кода • Поддерживаем стандартыкода • Следим за дублированным кодом • Оцениваем покрытие кода тестами

  26. PHP_CodeCoverage

  27. Lint php –l index.php

  28. PHP_CodeSniffer

  29. phploc

  30. PHP Copy/Paste Detector

  31. PHP_Depend

  32. PHP Mess Detector

  33. Создание документации

  34. PhpDocumentor 2

  35. PHP Code Browser

  36. Интеграция БД - DbDeploy

  37. Непрерывное развертывание

  38. Рекомендации • В любое время, в любом месте • Маркируем каждое построение • Запускаем все проверки • Обеспечиваем возможность отката

  39. CI Jobs

  40. Непрерывная обратная связь

  41. Правильная информация • Состояние построения • Результаты проверки • Отчеты об инспекции

  42. Правильный способ

  43. Правильный способ • Email • SMS • Jabber • Skype • Twitter • Расширение для браузера • Popup • IDE • X10 • Телевизор • Звук • Шар рассеянного света

  44. Наш вариант

  45. Правильное время • Когда случается проблема • Каждый час • Каждый день • Каждую неделю • Каждый релиз

  46. Правильные люди • Заказчик • Руководитель проекта • Интегратор • Технический руководитель • Бизнес-аналитик • Разработчик • Тестеровщик

  47. Примеры • On commit • Покоммиту • Информация команде • Выполняется быстро • Nightly • Раз в день, ночью • Информация команде, тех. лиду, менеджеру • Выполняется долго (инспекция)

  48. Результат

  49. Результат по целям CI • Уменьшение количества повторяемых процессов • Снижение рисков • Возможность быстрого построения ПО • Обеспечение лучшего контроля проекта • Повышение доверия к ПО

  50. Результат по рискам • Долгий процесс интеграции • Актуальность базы данных • Стандарты кодирования • Copy/Pasting • Сложность кода • Новый человек в проекте

More Related