The glu agent is an active process that needs to run on every host where applications need to be deployed
In the context of the orchestration engine, bounce means stop followed by start.
In a glu script, a closure is a groovy closure which is essentially a piece of groovy/java code (between curly braces) assigned to an attribute.
Any kind of (unix) shell command (ex: uptime, echo foo > /tmp/file.txt, etc...)
An application/tool that runs and then exists when the task is complete. In glu, clis are self contained and packaged under a directory structure with a bin/ to start the application/tool.
The webapp/REST api built on top of ZooKeeper which is the orchestrator of the system.
The differences between the desired state and the live state.
deployment plan
A deployment plan is a set of instructions that the orchestration engine executes to deploy and start (resp. stop and undeploy) applications on various hosts.
desired state
The state you want the entire system to be in. It is represented by the model.
dotted notation

This notation is how groovy allows you to access any entry in a map:

// with the following map
Map m = [
  p1: 'v1',
  p2: [ p3: 'v3'] // nested map!
  c1: [ [p4: 'v4'], [p4: 'v5'] ] // a collection of maps

// the dotted notation allows you to write
m.p1 // which is 'v1'
m.p2.p3 // which is 'v3'
m.c1[0].p4 // which is 'v4'
m.c1[1].p4 // which is 'v5'
A fabric defines a group of agents. When an agent starts it is assigned a fabric (a string). A fabric is then defined as the group of agents that were started with the same value for the fabric.
A filter is used in the orchestration engine to select a set of entries based on some criteria.
glu script
A glu script is a set of instructions backed by a state machine that the agent knows how to run. View more information.

A host represents a physical or virtual instance of a machine running 1 os. Examples

  • a laptop with Mac OS X is 1 host
  • a unix desktop running 4 Xen virtual machine is 5 hosts (unix destop + 4 VMM)


in a production setup, there is usually one (and only one) glu agent running on each host

live model
Representation of the live state as json document. More information about the live model.
live state
The state of the live system as reported by the agents in ZooKeeper. This state is dynamically collected by the orchestration engine.
meta model
The model which describes the glu setup itself (agents, consoles, fabrics, etc...). Do not confuse with the model described below.

Metadata in the context of glu represents a map that can be represented as a json object:

def goodMetadata =
  p1: 'v1',
  p2: [1, 2, 3], // array
  p3: [p31: 'v31'] // another nested map

// in json format, it would look like this
// note that you cannot have comments in json!
  "p1": "v1",
  "p2": [1, 2, 3],
  "p3": { "p31": "v31" }

// bad because the value is a java object
def badMetadata =
  color: java.awt.Color.BLACK
The model is a json document which describes what applications need to run, on which host and what it means to deploy and run an application.
mount point

The unique key on which a glu script get ‘mounted’ on a given agent. It is a String which has a (unix) path like syntax (must start with a /):

Example: /a/b/c
Synonym for host
orchestration engine
The orchestration engine is the process that listens to ZooKeeper updates coming from the agents, compute differences (delta) with the model in order to visualize them and/or execute a deployment plan. The orchestration engine is in charge of orchestrating deployments making sure they happen either sequentially or in parallel (or a combination of both).
An application that is long lived and usually terminates when asked to do so. In glu, servers are self contained and packaged under a directory structure with a bin/ shell script. The command bin/ start is used to start the server. The command bin/ stop is used to stop the server.
static model
Synonym for model. More information about the static model.
The system represents the set of hosts and applications running in a fabric. Its static representation is the model.
A piece of logic that gets executed at a given frequency by the agent. Scheduled/Cancelled by a glu script.
View more information about ZooKeeper