Multisite platform with
continuous delivery process for
multiple development agencies
Oleksandr Linyvyi
Drupal developer @Adyax
Email: oleksandr.linyvyi@gmail.com
Twitter: @lazylinol
Drupal.org: https://drupal.org/user/984134
Overview
1. Requirements
2. Drupal core + subsites
3. Core updates
4. Gitlab
5. Serverside structure
6. Deployment process
7. Jenkins
8. Additional utils
9. Pros/Cons
10.Summary
The idea
Standard Drupal multisiting
Each subsite = separate repository
Core is common (obviously )
https://about.gitlab.com/features/
Serverside structure
3 instances
Dev
Preprod
Production
Varnish
Nginx + php-fpm
MariaDB
Memcache
SOLR
Deploy?
Just a simple git pull
But done by ansible playbook
Usage: ansible-playbook -i ./hosts ./project_deploy.yml -e "instance=dev project=hello version=develop"
Jenkins
Running code builds
Deploying code to target instances
Files/DB sync across the instances
Doing some misc stuff
in our case it is responsible for:
Pros
Flexible rights management in Gitlab
Easy to keep core updated
Little effort to extend (add new site)
Cons
Fixed instances number
Using drush for syncs/backups
Need to override core modules in certain cases
That’s it
Thank you!

Олександр Лінивий — Multisite platform with continuous delivery process for multiple development agencies