SPA Conference session: Hands-On: Continuous Deployment

One-line description:A hands-on tutorial giving the opportunity to experience rapid automated release and continuous deployment techniques
 
Session format: Long tutorial (330 mins) [read about the different session types]
 
Abstract:Release and deployment is often still a stressful part of software delivery. We still often see teams producing large releases and problems occurring at release time. Following the principle of "if it hurts, do it more often", we aim to automate releases as much as possible, and to do them as often as possible.

Continuous Delivery is all about making the process from idea conception to software running in production as smooth as possible. Continuous Deployment is a hot topic in the startup community. It involves iterating very quickly, releasing many times per day, pushing every good build into production. This helps to get real feedback from users using our features in production, so we can really test whether the software we have produced is what the users want.

In this session we will look at some of the techniques that allow us to get to this point, and try them out in hands on exercises and simulations.
 
Audience background:- anyone interested in experiencing rapid iterative development including the "last mile", deploying to production.
- mostly of interest to developers, and the hands on exercises will involve coding and the use of development tools.
 
Benefits of participating:A chance to experience setting up a complete continuous deployment pipeline, which people might not get the chance to do in their day jobs depending on organisational constraints. Hopefully we can learn something, have a good discussion, try some things out, and have some fun.
 
Materials provided:- Short presentation
- Instruction sheets for exercises
- Links, downloads, access to necessary tools and resources
 
Process:We will start with a short presentation and discussion, but for the majority of the session do hands on exercises working in small groups. We will provide starting points and instructions for setting up tools. Some of the exercises will have step-by-step instructions, then we will move onto a game where pairs/teams can use the techniques to rapidly iterate, release and test their implementation again simulated demand. We will conclude with a wrap-up discussion and retrospective.

NB to do these exercises effectively requires a good internet connection, as we will (for instance) deploy to a cloud platform.
 
Detailed timetable:Approximate timetable:

00:00 - 00:30 : Introduction: presentation and discussion of release automation techniques

00:30 - 01:30 : set up continuous integratation and automated build
01:30 - 02:30 : set up deployment to cloud platform, then set up continuous deployment environment, where CI server deploys automatically on commit
02:30 - 02:45 : rolling back
02:45 - 03:15 : putting it all together - using the continuous deployment pipeline in a delivery scenario
03:15 - 03:45 : metrics, monitoring and automated rollback
03:45 - 04:30 : continue simulation exercise, employing monitoring and automated rollback.
04:30 - 05:00 : wrap-up and retrospective
 
Outputs:Each attendee should end up building a working continuous deployment, and know the steps to recreate it later. We will write up the session as a blog post.
 
History:The larger release and deployment exercise will has been run once as part of http://www.cs.ox.ac.uk/softeng/subjects/APE.html and will be run again before SPA.
The delivery simulation exercise has been run successfully at XP2011, Agile Cambridge and XPDay Benelux, but the emphasis here would be different.
The (more advanced) monitoring and rollback part is new for SPA.
 
Presenters
1. Robert Chatley
Develogical Ltd
2. 3.