Skip to main content
Warning This document has not been updated for a while now. It may be out of date.
Last updated: 16 Aug 2016

specialist-publisher: # Roll-out process

Roll-out process

Mid-way through the project, we decided that it would be safer to roll out formats one at a time, rather than as a "big bang" switchover to the rebuild application. In order to accommodate that, we needed to set up the infrastructure in a way that would let some of the formats be served from the old applications, whilst letting some be served from the rebuild.

To achieve this, we deployed the rebuild into staging and production alongside the existing app. We then configured the loadbalancer, through puppet, to control which application should serve each request. Initially, all traffic went to the existing app, apart from /rebuild-healthcheck that we used for monitoring. To roll out a new format, we'd make a puppet change here and promote puppet to staging / production.

We also added a "standlone" application that would always run the latest rebuild code, regardless of which formats had migrated. This was used in integration (only) for QA before formats went live. This diagram shows this setup: