D8 Deployment and Continuous Integration

Post on 08-May-2015

171 views 3 download

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 of D8 Deployment and Continuous Integration

D8 Deployment and Continuous Integration

Amin Alid, CTO, Anolim GmbH

Web and mobile developmentB2B solutions, financial solutions

Amin Alid, CTO, Anolim GmbHamin.alid@anolim.com

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