Mapstructuur van een Drupal 8-multisite
Hieronder staat een voorbeeld van een multisite-structuur met Drupal 8. Voor de eenvoud worden andere kernmappen en -bestanden van Drupal niet weergegeven.
Multisite-structuur:
-- core
-- modules
-- contrib
-- custom
-- themes
-- contrib
-- custom
-- sites
-- site1
-- modules
-- custom
-- contrib
-- themes
-- custom
-- contrib
-- files
-- site2
-- modules
-- custom
-- contrib
-- themes
-- custom
-- contrib
-- files
-- site3
-- modules
-- custom
-- contrib
-- themes
-- custom
-- contrib
-- files
DevOps-scenario:
In multisite-omgevingen onderhoudt meestal elke sitebeheerder zijn eigen sitespecifieke code. In complexe omgevingen willen front-end ontwikkelaars ook dat productie-deployments onafhankelijk zijn van de standaard Drupal-deployments. Hieronder staat een voorbeeld van hoe de Drupal 8-multisite-mappen kunnen worden verdeeld over meerdere repositories. Hierbij wordt aangenomen dat elke site zijn eigen database heeft en een gedeelde codebase gebruikt, zoals hieronder getoond.
. ----> Repository1 (gemeenschappelijk voor alle ontwikkelaars)
-- core
-- modules
-- contrib
-- custom
-- themes
-- contrib
-- custom ----> Repository2 (beheerd door front-end ontwikkelaars)
-- sites
-- site1 ----> Repository3 (beheerd door site1-ontwikkelaars)
-- modules
-- custom
-- contrib
-- themes
-- custom
-- contrib
-- files
-- site2 ----> Repository4 (beheerd door site2-ontwikkelaars)
-- modules
-- custom
-- contrib
-- themes
-- custom
-- contrib
-- files
-- site3 ----> Repository5 (beheerd door site3-ontwikkelaars)
-- modules
-- custom
-- contrib
-- themes
-- custom
-- contrib
-- files
Dit model heeft de volgende voordelen:
1. Front-end ontwikkelaars kunnen onafhankelijke deployments uitvoeren van de gebruikelijke Drupal-deployments.
2. Elke sitebeheerder kan onafhankelijke deployments uitvoeren (bijvoorbeeld: elke sitebeheerder kan zijn eigen releasedata hebben).