Ning Galaxy deployment management system open sourced
Ning, provider of the social web site platform of the same name, has released its internal deployment management system, Galaxy, as open source. For the past four years Ning has used Galaxy to manage the various services its engineering produces.
Galaxy's main components are the console, the repository and the agents. It also provides a Ruby library and a command line client for interacting with the agents. The Galaxy agents are small daemons that run on each host in an environment and are responsible for deploying, starting, stopping and reporting on a service. The agents are also responsible for sending a heartbeat message regularly to the console.
The console maintains an in-memory representation of all hosts in a system and how they are deployed. It offers convenient APIs for examining the system state. The console also keeps track of the state of the agents and detects the failiure of agents and their associated services. The configuration and packages which the console refers to are held in the repository, Gepo, which stores all the binary packages that can be deployed to agents and host configuration.
Associated tools include the command line client
galaxy which communicates with the console and agents in order to report on, and to make changes to, the system. Galaxy has a simple packaging model. A package in Galaxy needs only two scripts included in its tar.gz archive:
bin/xndeploy, which is invoked when the package is deployed for the first time and
bin/launcher which is called when the agent wants to start, stop or check on the service provided by the package.