SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Андрей Олищук 
«Интеллектуальные системы» 
Continuous integration 
для DRUPAL
Что такое CI? 
Определение 
Подход к разработке ПО, который заключается в 
автоматизации сборки и развёртывания ПО по 
требованию или расписанию. 
Основные черты 
● Хранение кода в системе контроля версий. 
● Автоматизация сборки и развёртывания. 
● Автоматизация тестирования. 
● Поддержка различных точек развёртывания.
Схема разработки
Схема разработки: development 
Локальная разработка 
● IDE с поддержкой git (PHP Storm, NetBeans), Drupal, 
Drush, Apache/MySQL. 
● Проблематика: необходимость поднимать каждый сайт 
локально — отсутствие интеграции и «тяжесть». 
Код удалённо по S/FTP 
● IDE (git и синхронизация), сервер разработки 
(ориентация на хост, ориентация на пользователя). 
● Проблематика: обслуживание сервера разработки.
Схема разработки: Stage и 
Production
CI server: git/bitbucket 
Модели работы 
● All in: все имеют пра- 
во записи и работают 
с ветками под задачи. 
● Pull requests: хозяин 
репозитория — тимлид. 
Остальные — через 
механизм pull request. 
Плюшки 
● Code review через 
браузер. 
● Интеграция с проектной системой.
CI server: Jenkins 
● Получить файлы из git (поддержка веток и тегов). 
● Развернуть их посредством SSH (копирование, симлинки). 
● Выполнить любые сервисные команды: 
mysqldump, service apache2 restart, drush cc all и т.д. 
● Автоматические тесты.
CI server: Drush 
Stage и Production 
● Очистка кэша. 
● Резервная копия базы данных. 
● Активация модулей. 
Development 
● Скачивание и установка дистрибутива и модулей. 
● Очистка кеша. 
● Операции с БД (backup & restore).
Миграция настроек из БД 
● Features (https://www.drupal.org/project/features): 
собираются вручную и устанавливаются как модули. 
● hook_update_N: размещается в .install и 
применяется при вызове update.php. 
● hook_install: размещается в .install, выполняется 
при установке модуля. 
* В Drupal 8 обещают управление конфигурациями 
на базе YAML.
Компетенции команды 
Системное администрирование 
● Установка ПО (Jenkins, вероятно git, подготовка сервера 
разработки — пользователи, AMP). 
● Написание bash скриптов (копирование файлов, 
симлинки, дампы БД, рестарт служб). 
Код 
● Знание git. Работа с ветками, разрешение конфликтов, 
теги — для тимлида. Создание и переключение веток, 
clone, commit, push, pull — для разработчика. 
● Знание IDE (синхронизация, git).
Вопросы? 
Спасибо за внимание! Это конец доклада, но 
не конец истории про развёртывание 
проектов на Drupal...

Contenu connexe

Tendances

Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиOSLL
 
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил РеенкоJSib
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funAlexandr Khotemskoy
 
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртываниеВладимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртываниеYandex
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаYandex
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsKirill Danilov
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control GroupsOSLL
 
Ansible in the enterprise
Ansible in the enterpriseAnsible in the enterprise
Ansible in the enterpriseAlex Chistyakov
 
Беспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLБеспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLДмитрий Васильев
 
Андрей Михайлов. Vagrant. Быстрое развертывание среды
Андрей Михайлов. Vagrant. Быстрое развертывание средыАндрей Михайлов. Vagrant. Быстрое развертывание среды
Андрей Михайлов. Vagrant. Быстрое развертывание средыDrupalSib
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разTimur Batyrshin
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Ontico
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QAFest
 
Антон Каляев — Быстрое развертывание среды с Vagrant
Антон Каляев — Быстрое развертывание среды с VagrantАнтон Каляев — Быстрое развертывание среды с Vagrant
Антон Каляев — Быстрое развертывание среды с VagrantDaria Oreshkina
 
Maven как средство сборки проекта
Maven как средство сборки проектаMaven как средство сборки проекта
Maven как средство сборки проектаYova Stoika
 
Введение в Docker
Введение в Docker Введение в Docker
Введение в Docker Andrey Markelov
 
pgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoverypgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoveryМихаил Тюрин
 

Tendances (20)

Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
 
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double fun
 
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртываниеВладимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проекта
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.js
 
Scaling PostgreSQL
Scaling PostgreSQLScaling PostgreSQL
Scaling PostgreSQL
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
 
Ansible in the enterprise
Ansible in the enterpriseAnsible in the enterprise
Ansible in the enterprise
 
PostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimmPostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimm
 
Беспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLБеспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQL
 
Андрей Михайлов. Vagrant. Быстрое развертывание среды
Андрей Михайлов. Vagrant. Быстрое развертывание средыАндрей Михайлов. Vagrant. Быстрое развертывание среды
Андрей Михайлов. Vagrant. Быстрое развертывание среды
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
 
Крыша 2.0
Крыша 2.0Крыша 2.0
Крыша 2.0
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
 
Антон Каляев — Быстрое развертывание среды с Vagrant
Антон Каляев — Быстрое развертывание среды с VagrantАнтон Каляев — Быстрое развертывание среды с Vagrant
Антон Каляев — Быстрое развертывание среды с Vagrant
 
Maven как средство сборки проекта
Maven как средство сборки проектаMaven как средство сборки проекта
Maven как средство сборки проекта
 
Введение в Docker
Введение в Docker Введение в Docker
Введение в Docker
 
pgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoverypgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recovery
 

Similaire à Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush - Андрей Олищук

Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.DrupalForumZP2012
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к AnsibleIvan Grishaev
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration managementAlexander Kirillov
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
 
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложенияDenis Latushkin
 
Непрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеНепрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеdevclub
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Комфортная разработка мобильных проектов
Комфортная разработка мобильных проектовКомфортная разработка мобильных проектов
Комфортная разработка мобильных проектовCodeFest
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораSQALab
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview ReleaseDenis Shestakov
 
Виктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаВиктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаPositive Hack Days
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...Provectus
 

Similaire à Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush - Андрей Олищук (20)

Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к Ansible
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration management
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
 
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложения
 
Непрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеНепрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применение
 
Vagrant puppet
Vagrant puppetVagrant puppet
Vagrant puppet
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Комфортная разработка мобильных проектов
Комфортная разработка мобильных проектовКомфортная разработка мобильных проектов
Комфортная разработка мобильных проектов
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview Release
 
Виктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаВиктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчика
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 

Plus de DrupalCamp MSK

Создание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
Создание каталога на D7 и фасетный поиск по нему - Андрей ТокмаковСоздание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
Создание каталога на D7 и фасетный поиск по нему - Андрей ТокмаковDrupalCamp MSK
 
Git - Вадим Валуев
Git - Вадим ВалуевGit - Вадим Валуев
Git - Вадим ВалуевDrupalCamp MSK
 
Открытые данные, как инструмент создания собственных коммерческих приложений ...
Открытые данные, как инструмент создания собственных коммерческих приложений ...Открытые данные, как инструмент создания собственных коммерческих приложений ...
Открытые данные, как инструмент создания собственных коммерческих приложений ...DrupalCamp MSK
 
AngularJS & Drupal - Андрей Березовский
AngularJS & Drupal - Андрей БерезовскийAngularJS & Drupal - Андрей Березовский
AngularJS & Drupal - Андрей БерезовскийDrupalCamp MSK
 
Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Бе...
 Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Бе... Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Бе...
Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Бе...DrupalCamp MSK
 
От фрилансера до веб-студии за 5 шагов - Геннадий Колтун
От фрилансера до веб-студии за 5 шагов - Геннадий КолтунОт фрилансера до веб-студии за 5 шагов - Геннадий Колтун
От фрилансера до веб-студии за 5 шагов - Геннадий КолтунDrupalCamp MSK
 
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...DrupalCamp MSK
 
Freelancers Unite! - Martin Mayer
Freelancers Unite! - Martin MayerFreelancers Unite! - Martin Mayer
Freelancers Unite! - Martin MayerDrupalCamp MSK
 
Ask not only what your Drupal can do for you, ask what you can do for your Dr...
Ask not only what your Drupal can do for you, ask what you can do for your Dr...Ask not only what your Drupal can do for you, ask what you can do for your Dr...
Ask not only what your Drupal can do for you, ask what you can do for your Dr...DrupalCamp MSK
 
Облачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
Облачные технологии, которые упрощают жизнь разработчикам - Игорь ЛукяновОблачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
Облачные технологии, которые упрощают жизнь разработчикам - Игорь ЛукяновDrupalCamp MSK
 
Создание первого ИТ-кооператива в России - Станислав Новиков
Создание первого ИТ-кооператива в России - Станислав НовиковСоздание первого ИТ-кооператива в России - Станислав Новиков
Создание первого ИТ-кооператива в России - Станислав НовиковDrupalCamp MSK
 
Направление: Вектор - Евгений Юртаев
Направление: Вектор - Евгений ЮртаевНаправление: Вектор - Евгений Юртаев
Направление: Вектор - Евгений ЮртаевDrupalCamp MSK
 
Опыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
Опыт Drupal разработчика на бирже oDesk - Петр ЛозовицкийОпыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
Опыт Drupal разработчика на бирже oDesk - Петр ЛозовицкийDrupalCamp MSK
 
Drupal в облаке - Владимир Юнев
Drupal в облаке - Владимир ЮневDrupal в облаке - Владимир Юнев
Drupal в облаке - Владимир ЮневDrupalCamp MSK
 

Plus de DrupalCamp MSK (15)

Создание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
Создание каталога на D7 и фасетный поиск по нему - Андрей ТокмаковСоздание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
Создание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
 
Git - Вадим Валуев
Git - Вадим ВалуевGit - Вадим Валуев
Git - Вадим Валуев
 
Открытые данные, как инструмент создания собственных коммерческих приложений ...
Открытые данные, как инструмент создания собственных коммерческих приложений ...Открытые данные, как инструмент создания собственных коммерческих приложений ...
Открытые данные, как инструмент создания собственных коммерческих приложений ...
 
AngularJS & Drupal - Андрей Березовский
AngularJS & Drupal - Андрей БерезовскийAngularJS & Drupal - Андрей Березовский
AngularJS & Drupal - Андрей Березовский
 
Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Бе...
 Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Бе... Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Бе...
Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Бе...
 
От фрилансера до веб-студии за 5 шагов - Геннадий Колтун
От фрилансера до веб-студии за 5 шагов - Геннадий КолтунОт фрилансера до веб-студии за 5 шагов - Геннадий Колтун
От фрилансера до веб-студии за 5 шагов - Геннадий Колтун
 
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
 
Freelancers Unite! - Martin Mayer
Freelancers Unite! - Martin MayerFreelancers Unite! - Martin Mayer
Freelancers Unite! - Martin Mayer
 
Ask not only what your Drupal can do for you, ask what you can do for your Dr...
Ask not only what your Drupal can do for you, ask what you can do for your Dr...Ask not only what your Drupal can do for you, ask what you can do for your Dr...
Ask not only what your Drupal can do for you, ask what you can do for your Dr...
 
Облачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
Облачные технологии, которые упрощают жизнь разработчикам - Игорь ЛукяновОблачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
Облачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
 
Создание первого ИТ-кооператива в России - Станислав Новиков
Создание первого ИТ-кооператива в России - Станислав НовиковСоздание первого ИТ-кооператива в России - Станислав Новиков
Создание первого ИТ-кооператива в России - Станислав Новиков
 
Ilyin drupal-solr 0
Ilyin drupal-solr 0Ilyin drupal-solr 0
Ilyin drupal-solr 0
 
Направление: Вектор - Евгений Юртаев
Направление: Вектор - Евгений ЮртаевНаправление: Вектор - Евгений Юртаев
Направление: Вектор - Евгений Юртаев
 
Опыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
Опыт Drupal разработчика на бирже oDesk - Петр ЛозовицкийОпыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
Опыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
 
Drupal в облаке - Владимир Юнев
Drupal в облаке - Владимир ЮневDrupal в облаке - Владимир Юнев
Drupal в облаке - Владимир Юнев
 

Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush - Андрей Олищук

  • 1. Андрей Олищук «Интеллектуальные системы» Continuous integration для DRUPAL
  • 2. Что такое CI? Определение Подход к разработке ПО, который заключается в автоматизации сборки и развёртывания ПО по требованию или расписанию. Основные черты ● Хранение кода в системе контроля версий. ● Автоматизация сборки и развёртывания. ● Автоматизация тестирования. ● Поддержка различных точек развёртывания.
  • 4. Схема разработки: development Локальная разработка ● IDE с поддержкой git (PHP Storm, NetBeans), Drupal, Drush, Apache/MySQL. ● Проблематика: необходимость поднимать каждый сайт локально — отсутствие интеграции и «тяжесть». Код удалённо по S/FTP ● IDE (git и синхронизация), сервер разработки (ориентация на хост, ориентация на пользователя). ● Проблематика: обслуживание сервера разработки.
  • 6. CI server: git/bitbucket Модели работы ● All in: все имеют пра- во записи и работают с ветками под задачи. ● Pull requests: хозяин репозитория — тимлид. Остальные — через механизм pull request. Плюшки ● Code review через браузер. ● Интеграция с проектной системой.
  • 7. CI server: Jenkins ● Получить файлы из git (поддержка веток и тегов). ● Развернуть их посредством SSH (копирование, симлинки). ● Выполнить любые сервисные команды: mysqldump, service apache2 restart, drush cc all и т.д. ● Автоматические тесты.
  • 8. CI server: Drush Stage и Production ● Очистка кэша. ● Резервная копия базы данных. ● Активация модулей. Development ● Скачивание и установка дистрибутива и модулей. ● Очистка кеша. ● Операции с БД (backup & restore).
  • 9. Миграция настроек из БД ● Features (https://www.drupal.org/project/features): собираются вручную и устанавливаются как модули. ● hook_update_N: размещается в .install и применяется при вызове update.php. ● hook_install: размещается в .install, выполняется при установке модуля. * В Drupal 8 обещают управление конфигурациями на базе YAML.
  • 10. Компетенции команды Системное администрирование ● Установка ПО (Jenkins, вероятно git, подготовка сервера разработки — пользователи, AMP). ● Написание bash скриптов (копирование файлов, симлинки, дампы БД, рестарт служб). Код ● Знание git. Работа с ветками, разрешение конфликтов, теги — для тимлида. Создание и переключение веток, clone, commit, push, pull — для разработчика. ● Знание IDE (синхронизация, git).
  • 11. Вопросы? Спасибо за внимание! Это конец доклада, но не конец истории про развёртывание проектов на Drupal...