"Deploy the transit beam"
The Guardian's scala-based deployment system is designed to automate deploys by providing a web application that performs and records deploys, as well as providing various integration points for automating deployment pipelines.
Riff-Raff and Magenta have been built with the tools we use at the Guardian and you will find it easiest if you use a similar set of tools. Riff-Raff:
- relies on artifacts and
riff-raff.yaml
files describing builds being in S3 buckets with the artifacts having paths of the formproject-name/build-number
- uses the AWS SDK and Prism to do resource discovery
- stores configuration, history and logs in a PostgreSQL database and a handful of DynamoDB tables (the eventual aim is to ditch DynamoDB altogether)
The documentation is available in the application (under the Documentation menu) but can also be viewed under riff-raff/public/docs in GitHub.
Screenshots don't do a lot to show how Riff-Raff works in practice - but here are a handful anyway, just to give a hint.
The deploy history view - this shows all deploys that have ever been done (in this case filtered on PROD and projects containing 'mobile')
This is what a single deploy looks like - displaying the overall result and the list of tasks that were executed.
The simple form for requesting a deploy can be seen here (further options are available after previewing)
Riff-Raff polls our build server frequently and can be configured to automatically start a deploy for newly completed builds
See CONTRIBUTING.md.
See the TODO.txt
file in this project