Олександр Лінивий — multisite platform with continuous delivery process for...

18
Multisite platform with continuous delivery process for multiple development agencies Oleksandr Linyvyi Drupal developer @Adyax Email: [email protected] Twitter: @lazylinol Drupal.org: https://drupal.org/user/984134

Upload: ledc-2016

Post on 06-Jan-2017

61 views

Category:

Internet


0 download

TRANSCRIPT

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

Multisite platform with continuous delivery process

for multiple development agencies

Oleksandr LinyvyiDrupal developer @AdyaxEmail: [email protected]: @lazylinolDrupal.org: https://drupal.org/user/984134

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

Overview1. Requirements2. Drupal core +

subsites3. Core updates4. Gitlab5. Serverside structure

6. Deployment process7. Jenkins8. Additional utils9. Pros/Cons10.Summary

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

The idea

Standard Drupal multisitingEach subsite = separate repositoryCore is common (obviously )

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

https://about.gitlab.com/features/

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

Serverside structure3 instances

Dev

Preprod

Production

VarnishNginx + php-fpmMariaDBMemcacheSOLR

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

Deploy?Just a simple git pullBut done by ansible playbook

Usage: ansible-playbook -i ./hosts ./project_deploy.yml -e "instance=dev project=hello version=develop"

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

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:

Page 12: Олександр Лінивий — Multisite platform with continuous delivery process for multiple development agencies
Page 13: Олександр Лінивий — Multisite platform with continuous delivery process for multiple development agencies
Page 14: Олександр Лінивий — Multisite platform with continuous delivery process for multiple development agencies
Page 15: Олександр Лінивий — Multisite platform with continuous delivery process for multiple development agencies
Page 16: Олександр Лінивий — Multisite platform with continuous delivery process for multiple development agencies

ProsFlexible rights management in GitlabEasy to keep core updatedLittle effort to extend (add new site)

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

ConsFixed instances numberUsing drush for syncs/backupsNeed to override core modules in certain cases

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

That’s it

Thank you!