Wat is daar mis mee?
Teveel manuele handelingen verhogen de kans
op fouten.
Slide 4
Slide 4 text
Ideaal scenario
• Snel deployen door alle manuele processen te
automatiseren
• Manuele processen individueel oproepen adhv
‘tasks’
• Snel een deploy ‘ongedaan’ maken
Slide 5
Slide 5 text
• Open Source
• Gemaakt om Rails Apps te deployen
• Ruby
Versiecontrole
•Git, SVN, ...
•code bijhouden in versies
•te ‘pushen’ naar een repository (repo)
•Capistrano zal code van repo halen
Slide 9
Slide 9 text
DEMO
Slide 10
Slide 10 text
• Geen benodigde software op de server
• Capistrano voert commandos uit over ssh
• Uitbreidbaar adhv tasks
Slide 11
Slide 11 text
Aanpassen voor Drupal
Bij deploy:setup:
• Symlink voor sites/default/files -> shared/files
• sites/default/settings.php -> shared/settings.php
Na deploy:
• Tasks voor drush commands
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
capistrano-drupal gem
• Veelvoorkomende Drupal deployment tasks
(Drush commands)
• implementeert before en after hooks
Slide 14
Slide 14 text
capistrano-drupal gem
deploy:setup
• files directory in shared
• settings.php in shared
Slide 15
Slide 15 text
capistrano-drupal gem
drupal:symlink_shared
• settings.php en files directory symlinken naar
shared
• after deploy:symlink
Slide 16
Slide 16 text
capistrano-drupal gem
drush:update
• drush updatedb
• after ‘deploy:symlink’
Slide 17
Slide 17 text
capistrano-drupal gem
drush:cache_clear
• drush cc
• after ‘deploy:symlink’
Probleem
• alle configuratie zit in de database
• Continuous Integration moeilijk
• wat met meerdere developers?
Slide 21
Slide 21 text
Ideale situatie
2-richtingsverkeer
• Content komt terug upstream, naar Stag en
Dev
• Configuratie downstream: Stag en Prod
Slide 22
Slide 22 text
Oplossing
Configuratie in code
• Versiecontrole (Git, SVN, ...)
• Te debuggen
• Te diffen
• Reproduceerbare resultaten
• opdeling tussen content en configuratie
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
Context en Features
Module
• Context zijn set regels tijdens page load, ziet
wat actief is
• Features pakt dit in met ‘code’ (views, node,
types)
• Features te enablen met ‘drush’
• Drush runnen vanuit capistrano
Slide 25
Slide 25 text
Features Drush
• drush features-update feature_name
• drush features-revert feature_name