Introducing Docman (available on github, alpha state, but used already in production environment): the Swiss Army Knife for Drupal multisite docroot management and deployment. Docman acts as a layer between your docroot – usually a git repository somewhere, but not limited to it– and multiple vendors working on different websites using your standards and predefined sets of modules.
Remember how hosting sales teams always tried to push you to buy more docroots "because otherwise it would be hard to manage websites in a Drupal multisite environment"? Docman can simplify your life so you will be able to stick to one docroot and multiple independent websites in it using the same Drupal core.
Have you ever tried to oblige different vendors to work with one Drupal core for completely different websites, inside a multisite environment, without making them break everything and with clear deployment schema? Find out how docman can make the once daunting task of multisite deployment more efficient.
Does the governance of multiple projects in one multisite environment scare you? Docman has hooks, like Drupal, to launch your tests whenever needed and for each website in multisite environment independently.
During this presentation you will peek inside the inner workings of the docman tool and see:
All the advantages it will bring to your multisite /single doc root deployments
A real-world case study of setting up a stable platform using this concept and the tools needed
A development process using docman ('docman build local development' command and others)
Real-world example:
You have a docroot at Acquia Cloud
You have a small governance team setting up standards (Drupal core, list of contrib modules)
You have 3 vendors working on three different websites in multisite environment
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
Docman : ultimate solution to manage site factories using Drupal.
1. DOCMAN
The swiss army knife for Drupal multisite
http://corp.adyax.com/themes/adyax/logo.png
docroot management and deployment
A L E K S E Y T K A C H E N K O A N D A L E K S A N D R T O L S T I K O V
D E V O P S H T T P : / / B I T . L Y / D O C M A N 2 0 1 4
2. WHO AM I
Oleksiy Tkachenko
http://corp.adyax.com/themes/adyax/logo.png
PM, Drupal architect
With Drupal from 2007
With Adyax from 2009
France / Ukraine
3. LARGEST DRUPAL SHOP IN EUROPE
350 PROJECTS
150 DRUPALERS
7 YEARS OF GROWTH
10K HOURS PROJECTS
5. / VAR / WWW
DOCROOT?
Acquia: your docroot folder is the root-level of your Drupal
installation and its websites and contains its files and directories,
including Drupal's index.php, includes directory, and modules directory.
7. PROBLEM 1:
Deployment is painful - fatal errors, incompatibility
Production environment - never stable
How to merge and integrate the work of multiple people?
How to merge and integrate the work of multiple teams?
9. PROBLEM 2:
No development standards. Panels? Contexts?
Standards exists, but not respected
Drupal best-practices are not respected
Modules in /all or in /default?
No team discipline (features are overridden, environments omitted,
etc)
11. PROBLEM 3:
Who should update Drupal?
What modules needs to be updated?
What is happening in my docroot?
What are the latest changes and stable versions?
26. FEATURES
Focused on cloud hosting: Acquia Cloud, Pantheon and others, but not
limited to.
Clear separation of the websites code in multisite environments
Incremental pushes of the finished docroot to the cloud hosting
Code separation for easy deployment
27. FEATURES
Drupal version agnostic Drupal 8 ready!
Force people to keep features by default, updb, features revert, registry
rebuild on each push to environments
IF SOMETHING HURTS, DO IT MORE OFTEN.
http://evan.bottch.com/2010/05/26/continuous-integration-if-something-hurts-do-it-more-
often
28. FEATURES
Multiple docroots to support? Not a problem!
Stable & versioned production environment
Jenkins friendly workflow
Deployment pipelines organisation (with Jenkins integration)
http://www.infoq.com/minibooks/continuous-delivery-overview
Different deployment scenarios achievable through config:
Continuous integration
Continuous delivery
Continuous deployment
33. AVAILABLE HELPERS
CHANGELOG file in each repo
automatically generated using
commit comments
!
VERSION file in each repo
automatically generated with the
latest version (all branches)
!
info.yaml files everywhere helps
you with what is what
34. CASE STUDY 1: BEFORE
INITIAL CODEBASE
CLONE
SITE 2 CODEBASE SITE 3 CODEBASE
35. CASE STUDY 1: PROBLEMS
Conflict with Features (modules) on the cloned website
Manual deployment for each website
Pain to maintain
Standards? Which one?
Code duplication
36. CASE STUDY 1: AFTER
GIT:
SITE A
DOCROOT docman
GIT:
SITE B
!
GIT:
CORE СOMMON
git GIT:
SITES
37. CASE STUDY 2: SERIOUS
Global company
Drupal is a company level standard for websites (yay!)
At least 3 different Drupal shops independently delivering websites
constantly
38. CASE STUDY 2: PROBLEMS
At least 3 different Drupal shops independently delivering websites.
Maintenance? Each agency defines.
Standards? Each agency defines. (Panels? Context?)
Deployment? Approach is different per agency (capistrano, manual, ftp,
you name it).
Hosting is in the same place but each time configured differently
39. CASE STUDY 2: SOLUTION
GIT:
SITE A
GIT:
SITE B
DOCROOT Acquia Cloud
!
GIT:
CORE COMMON GIT:
SITES
GIT:
CLOUD
HOOKS
INTEGRATION PLATFORM
git hooks >
Jenkins > docman
Gitlab
41. ROADMAP
@Todo: Vagrant image generation per website for easy local
development
@Todo: wizard to generate repository with configs
@Todo: Documentation
42. NEED HELP
@Todo: Config templates for various cloud hosting systems
@Todo: Better config error handling
@Todo: More deployment targets
@Todo: More docroot templates (Pantheon, Aberdeen Cloud, etc)