DrupalCon New Orleans 2016: From 4 releases per year to 4 releases per day
This session presents a case study where the delivery process for a large government web platform was dramatically improved by automating as much as possible.
When the European Commission adopted Drupal for their internal websites, this project grew organically from a single site to a large Drupal 7 distribution running over 70 websites, developed by a team of 200 developers from 28 different countries.
As the project grew the legacy workflow processes that were in use became unmaintainable. This session will show how we moved from a largely manual process to fully automated continuous deployment.
Moving from SVN to git.
Adopting the “successful git branching model”: feature branches, release branches, tags.
Making the development process accessible by external contractors by moving from a DMZ to third party services.
Automating many steps in the QA procedure.
Rejecting bad code through static analysis before it reaches a human QA engineer.
Providing automated tests using Behat to replace manual regression testing.
Testing compatibility with new releases of components in the stack (e.g. PHP 7) to catch problems early.
Deploying ticket branches to ephemeral acceptance servers hosted on Amazon AWS.
Automating Drupal site builds with Drush Make, Composer and Phing.
Providing a “starterkit” that includes standardized build tools to allow rapidly create new websites.
Adopting continuousphp to highly parallelize our delivery pipelines and get quick feedback.
When the European Commission adopted Drupal for their internal websites, this project grew organically from a single site to a large Drupal 7 distribution running over 70 websites, developed by a team of 200 developers from 28 different countries.
As the project grew the legacy workflow processes that were in use became unmaintainable. This session will show how we moved from a largely manual process to fully automated continuous deployment.
Moving from SVN to git.
Adopting the “successful git branching model”: feature branches, release branches, tags.
Making the development process accessible by external contractors by moving from a DMZ to third party services.
Automating many steps in the QA procedure.
Rejecting bad code through static analysis before it reaches a human QA engineer.
Providing automated tests using Behat to replace manual regression testing.
Testing compatibility with new releases of components in the stack (e.g. PHP 7) to catch problems early.
Deploying ticket branches to ephemeral acceptance servers hosted on Amazon AWS.
Automating Drupal site builds with Drush Make, Composer and Phing.
Providing a “starterkit” that includes standardized build tools to allow rapidly create new websites.
Adopting continuousphp to highly parallelize our delivery pipelines and get quick feedback.