1 / 19

Automating Drupal Deployment

Automating Drupal Deployment. Dominique De Cooman. Who am I. Developer for 5 years Web agencies in Belgium http://drupal.org/user/199987 Contributions Blog http://dominiquedecooman.com. Why deploying automaticaly. Faster Less errors Well documented Reproducable History

elan
Download Presentation

Automating Drupal Deployment

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Automating Drupal Deployment Dominique De Cooman

  2. Who am I Developer for 5 years Web agencies in Belgium http://drupal.org/user/199987 Contributions Blog http://dominiquedecooman.com

  3. Why deploying automaticaly Faster Less errors Well documented Reproducable History Continous Integration

  4. Basic components Vps with a Lamp stack Version control – Git Drush Drupal of course Dev – Staging – Production setup Continous integration server Deployment scripts

  5. How to set it up? • Vps • You can get a vps from 12€/month on most hosting platforms. There are trials available everywhere • Example: • https://www.gandi.net/hosting/trial/ • https://control.vps.net/trial-signup

  6. Install your lamp stack • Plenty of installation scripts online • Example • http://www.dominiquedecooman.com/blog/automate-installing-drupal-ubuntu-drupal-training-purpose

  7. Version control • Git • We willuse the succesfullbranching model • http://nvie.com/posts/a-successful-git-branching-model/ • Git flow • Productionbranch • Development branch • Release branch • Hotfixes • Install • Git flow • Bash complete

  8. Drush • DRUpal SHell • Install • http://drupal.org/project/drush • Drush aliasses • Simplyfies executing commands in builds

  9. Drupal • Create a proper repositorylayout • Bash • Updates • Installs • scripts • Docroot • Documentation • Etc • Drupal (settings files, robot.txt, htaccess, …) • Drush - aliases • Ssh • vhost • Configureyou server toconnecttodrupal.

  10. Continous integration server • Jenkins • Install • https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu • Why? • Automate our workflow • Execute our tests

  11. Automating the workflow Exporting database changes Configuring jenkins jobs Writing deployment scripts

  12. Exporting database changes Use features Use hook_update() D8 configuration management in core

  13. Configuring the jobs • Jenkins • Create jobs • Environments • Testbots • Basic setup • General settings • Repositoryconfiguration • Build triggers • Post build actions

  14. Build section • Copy files • Update the code • Settings file • Copy build script

  15. Deploy scripts • Enable/Disable ui modules • Set environment specific variables • Error_level • Cache • Revert features • Update the database • Flush cache

  16. Differences per environment • Modules • Leave the opportunity to debug • Error level • Caching settings • Staging and production must by identical • Representative • No testrun on production

  17. Demo Develop on feature branch Run testbot – fix error Export changes Commit Merge feature in developmentbranch Deploy on development environment Monitor job execution Evaluate tests Manual testing Create release branch Deploy release branch on staging environment Evaluate tests Mergebranchinto master anddevelopment Deploy master on production environment Createhotfixbranch - maintenance Test anddeployhotfixbranch Mergehotfixinto master andmergeintodevelopment Deploy master

  18. References http://dominiquedecooman.com http://durpal.org/user/199987 http://twitter.com/dominiquedc

  19. Resources Minimizingoverhead with git flow http://dominiquedecooman.com/blog/git-flow-minimizing-overhead Installing lamp stack http://www.dominiquedecooman.com/blog/automate-installing-drupal-ubuntu-drupal-training-purpose Go live checklist http://www.dominiquedecooman.com/blog/drupal-7-tip-how-automate-and-control-your-go-live-checklist Installjenkinshttps://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu https://www.gandi.net/hosting/trial/ Get all the code, job scripts andpresentationoverview: http://dominiquedecooman.com/blog/automating-drupal-deployment

More Related