d8 deployment and continuous integration
DESCRIPTION
Up until D7, continuous integration has been a luxury for most Drupal projects. It is really hard to implement and the underlying Drupal architecture simply was not built with continuous integration in mind. One of the biggest issues developers face during deployment in D7 is configuration management. With the new features being developed for D8 under the Configuration Management Initiative, lots of these issues should be resolved. In this session we will explore some of the benefits and advantages you get from implementing CI, check some examples of workflows and tools and see how far D8 got in terms of improving deployment and continuous integration practices.TRANSCRIPT
D8 Deployment and Continuous Integration
Amin Alid, CTO, Anolim GmbH
Web and mobile developmentB2B solutions, financial solutions
Amin Alid, CTO, Anolim [email protected]
Virtual Data Centers for devsProgrammable Infrastructure
http://anolim.com
http://www.safeswisscloud.ch
Why CI?How is it done?How will D8 improve things?
3Things..
Why CI??
Ever had to...
Spend hours preparing to go live?
Spend an unplanned week of bug fixing after each deployment?
Ever had to...
Deal with a fragile website that breaks everytime you touch it?
Integration time…
What would it take to...
Deliver faster & increase quality?
What would it take to...
Do more meaningful work Less bug fixing
Happy client & happy team
What we did...
Maintain a code repository Understand your branching model
What we did...
Quick, automated builds
What we did...
Integrate into a live like environment
What we did...
Commit and build often Make the build self testing
What we did...
Test on a clone of production
Automate deployment to production
Results...
Painful deployment to one click deployment
Results...
From 3h to 15 min
Results...
From days to prepare and stabilize to
barely any maintenance
Results...
From bug fixing to new features
How is CI done?7Drupal
Tools and practices...
Update hook, Features, Drush, Configuration module, WF Tools
Features, workflow
DrushEnable, disable modules and featuresdrush en -y devel views_ui
Put site on maintenance, set variablesdrush vset --yes maintenance_mode 1
Sync and sanitize datadrush sql-sync -y @user.prod --sanitizedrush -y rsync @user.prod:%files/ @self:%files
Evaluate codedrush ev ‘$user = user_load(112)’drush sqlq “UPDATE block SET ...”
Any custom drush command
SaltStack
Vagrant, CloudStack
Tools and practices...
Jenkins, Phing SimpleTest, Selenium
D7: Limitations, problems
Hard to track configurations with FeaturesLimited integration with external tools
How will D8 help me?8Drupal
D8 Improvements...
Core Configuration Management API File based configurations!
D8 Configuration Management
D8 Improvements...
Features 3.XState APIComposer for dependenciesSimpleTest to PHPUnit
To Do...
Finalize APIsContributed modules on top of new APIsIntegration into different external CI tools
Conclusion...
CI is good for you D8 is here to help We need contribution
Happy client & Happy team
Thanks!http://prague2013.drupal.org/session/drupal-8-deployment-and-continuous-integration