1 / 19

Automating D rupal Deployment

Automating D rupal 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

coby
Download Presentation

Automating D rupal 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. AutomatingDrupal Deployment Dominique De Cooman

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

  3. Whydeployingautomaticaly Faster Lesserrors Well documented Reproducable History Continous Integration

  4. Basic components Vpswith a Lamp stack Version control – Git Drush Drupal of course Dev – Staging – Production setup Continousintegration server Deployment scripts

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

  6. Installyour 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 • DRUpalSHell • Install • http://drupal.org/project/drush • Drushaliasses • Simplyfiesexecutingcommands 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. Continousintegration server • Jenkins • Install • https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu • Why? • Automateour workflow • Executeour tests

  11. Automating the workflow Exporting database changes Configuringjenkins jobs Writingdeployment scripts

  12. Exporting database changes Use features Usehook_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. Buildsection • 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 todebug • Error level • Cachingsettings • Stagingandproduction must byidentical • 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