Complete Guide to Automating Drupal Deployment by Dominique De Cooman

undefined
 
Automating Drupal Deployment
 
Dominique De Cooman
 
Developer for 5 years
Web agencies in Belgium
Contributions
Blog http://dominiquedecooman.com
 
Who am I
 
Faster
Less errors
Well documented
Reproducable
History
Continous Integration
 
Why deploying automaticaly
 
Vps with a Lamp stack
Version control – Git
Drush
Drupal of course
Dev – Staging – Production setup
Continous integration server
Deployment scripts
 
Basic components
 
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
 
How to set it up?
 
Plenty of installation scripts online
Example
http://www.dominiquedecooman.com/blog/automate-
installing-drupal-ubuntu-drupal-training-purpose
 
Install your lamp stack
 
Git
We will use the succesfull branching model
http://nvie.com/posts/a-successful-git-branching-model/
Git flow
Production branch
Development branch
Release branch
Hotfixes
Install
Git flow
Bash complete
 
Version control
 
DRUpal SHell
Install
http://drupal.org/project/drush
Drush aliasses
Simplyfies executing commands in builds
 
Drush
 
Create a proper repository layout
Bash
Updates
Installs
scripts
Docroot
Documentation
Etc
Drupal (settings files, robot.txt, htaccess, …)
Drush - aliases
Ssh
vhost
Configure you server to connect to drupal.
 
Drupal
 
Jenkins
Install
https://wiki.jenkins-
ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
Why?
Automate our workflow
Execute our tests
 
Continous integration server
 
Exporting database changes
Configuring jenkins jobs
Writing deployment scripts
 
Automating the workflow
 
Use features
Use hook_update()
D8 configuration management in core
 
Exporting database changes
 
Jenkins
Create jobs
Environments
Testbots
Basic setup
General settings
Repository configuration
Build triggers
Post build actions
 
Configuring the jobs
 
Copy files
Update the code
Settings file
Copy  build script
 
Build section
 
Enable/Disable ui modules
Set environment specific variables
Error_level
Cache
Revert features
Update the database
Flush cache
 
Deploy scripts
 
Modules
Leave the opportunity to debug
Error level
Caching settings
Staging and production must by identical
Representative
No testrun on production
 
Differences per environment
 
Develop on feature branch
Run testbot – fix error
Export changes
Commit
Merge feature in development branch
Deploy on development environment
Monitor job execution
Evaluate tests
Manual testing
Create release branch
Deploy release branch on staging environment
Evaluate tests
Merge branch into master and development
Deploy master on production environment
Create hotfix branch - maintenance
Test and deploy hotfix branch
Merge hotfix into master and merge into development
Deploy master
 
Demo
 
http://dominiquedecooman.com
http://durpal.org/user/199987
http://twitter.com/dominiquedc
 
References
 
Minimizing overhead 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
Install jenkins 
https://wiki.jenkins-
ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
https://www.gandi.net/hosting/trial/
Get all the code, job scripts and presentation overview:
http://dominiquedecooman.com/blog/automating-drupal-
deployment
 
Resources
Slide Note
Embed
Share

Dominique De Cooman shares insights on automating Drupal deployment for faster, error-free, well-documented, reproducible, and easily controllable processes. Learn about essential components, setting up a VPS, installing LAMP stack, version control with Git, using Drush, organizing Drupal repository layout, continuous integration with Jenkins, and more.

  • Drupal Deployment
  • Automating Processes
  • Dominique De Cooman
  • Version Control
  • Continuous Integration

Uploaded on Oct 08, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

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 will use the succesfull branching model http://nvie.com/posts/a-successful-git-branching-model/ Git flow Production branch 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 repository layout Bash Updates Installs scripts Docroot Documentation Etc Drupal (settings files, robot.txt, htaccess, ) Drush - aliases Ssh vhost Configure you server to connect to drupal.

  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 Repository configuration 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 Mergefeature in developmentbranch Deploy on development environment Monitor job execution Evaluate tests Manual testing Createrelease branch Deploy release branchon stagingenvironment Evaluate tests Mergebranchinto master and development Deploy master on productionenvironment Createhotfix branch - maintenance Test and deployhotfix branch Mergehotfix into master and mergeinto development Deploy master

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

  19. Resources Minimizing overhead 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 Install jenkins https://wiki.jenkins- ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu https://www.gandi.net/hosting/trial/ Get all the code, job scripts and presentation overview: http://dominiquedecooman.com/blog/automating-drupal- deployment

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#