"Deploy the transit beam"
The Guardian's scala-based deployment system is designed to help automate deploys by providing:
- a library (Magenta) that localises knowledge about how to orchestrate deploys within a single system, but having defined interfaces with the applications and the system on to which the deploys will happen.
- a web application (Riff-Raff) that initiates and audits 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 has
- has tight integration with TeamCity (we have experimented with adding Jenkins and TravisCI with some success)
- uses Prism to do service discovery
- stores all configuration, history and logs in a MongoDB instance
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.
How do I run Riff-Raff locally if I want to hack on it?
Assuming you have a reasonably recent version of Java installed,
- Create a basic configuration file at ~/.gu/riff-raff.properties (teamcity and mondo config if probably the minimum)
- Run the sbt script
project riff-raffat the SBT prompt
runat the SBT prompt
- visit http://localhost:9000/
- Details of how to configure Riff-Raff can then be found at http://localhost:9000/docs/riffraff/properties
What is still left to do?
TODO.txt file in this project