Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Drupal deployments met Capistrano

joren
October 26, 2012

Drupal deployments met Capistrano

Deze techtalk zal gaan over Drupal site deployment met Capistrano. We gebruiken Drupal als voorbeeld, maar de theorie is grotendeels ook toepasbaar op andere technologieën.
Capistrano is een krachtige tool om deployments te automatiseren en deze veiliger en slimmer te maken.
In deze techtalk tonen we je hoe je met Capistrano:
verschillende versies kan bijhouden
veranderingen binnenhalen uit een Git repository
automatisch de database kan updaten
een release kan terugdraaien ("rollback")
kan deployen naar meerdere servers ("staging", "production")
automatisch database back-ups kan nemen
cache kan flushen
Alvorens je Capistrano kan gebruiken, wordt er uitgegaan van het idee dat je weet wat SSH keys zijn en hoe je met Git werkt. Mocht dit niet het geval zijn, de nodige links/resources om hiermee van start te gaan, zullen kort aangehaald worden in de techtalk.

De video kan je hier vinden: https://vimeo.com/51905907

joren

October 26, 2012
Tweet

More Decks by joren

Other Decks in Technology

Transcript

  1. Hoe deploy je nu? •Backup database •Code updaten (met git?

    scp? sftp?) •updatedb uitvoeren •cache flushen
  2. Ideaal scenario • Snel deployen door alle manuele processen te

    automatiseren • Manuele processen individueel oproepen adhv ‘tasks’ • Snel een deploy ‘ongedaan’ maken
  3. Versiecontrole •Git, SVN, ... •code bijhouden in versies •te ‘pushen’

    naar een repository (repo) •Capistrano zal code van repo halen
  4. • Geen benodigde software op de server • Capistrano voert

    commandos uit over ssh • Uitbreidbaar adhv tasks
  5. 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
  6. Probleem • alle configuratie zit in de database • Continuous

    Integration moeilijk • wat met meerdere developers?
  7. Ideale situatie 2-richtingsverkeer • Content komt terug upstream, naar Stag

    en Dev • Configuratie downstream: Stag en Prod
  8. Oplossing Configuratie in code • Versiecontrole (Git, SVN, ...) •

    Te debuggen • Te diffen • Reproduceerbare resultaten • opdeling tussen content en configuratie
  9. 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
  10. End