A YAML service spec can refer to other blueprints, either in the catalog or by URL, and can supply custom configuration.
Portable machines specs -- or location-specific identifiers
Define machine specs using portable constraints,
or, when you need to, use specific
imageId, hardware profiles, and more
Collect live metrics for use in policies, either from metric stores or directly using REST, JMX, SSH, and more.
Choose from built-in policies including auto-scaling, failover, and follow-the-sun, or create new policies to perform custom runtime management.
Use config keys to customize the policies to suit your systems, right in the YAML blueprint.
Reconfigure policies, suspend them, or add new ones on-the-fly through the REST API.
Brooklyn runs with a GUI console giving easy access to the management hierarchy, sensors, and activities.
Run standby nodes which can optionally automatically promote to master in the event of master failure. Hot standby nodes can provide additional read-only access to entity information.
Blueprint, catalog, topology and sensor information can be automatically persisted to any file system or object store to stop Brooklyn and restart resuming where you left off.
The console is pure JS-REST, and all the data shown in the GUI is available through a straightforward REST/JSON API.
In many cases, the REST API is simply the GUI endpoint without the
#. For instance the data for
#/v1/applications/ is available at
And in all cases, Swagger doc is available in the product.
With the right permissions, Groovy scripts can be sent via the GUI or via REST, allowing open-heart surgery on your systems. (Use with care!)
Blueprints in the catalog can be versioned on-the-fly. Running entities are attached to the version against which they were launched to preserve integrity, until manual version updates are performed.
Deep task information
The console shows task flows in real-time, including the `stdin` and `stdout` for shell commands, making it simpler to debug those pesky failures.
Config keys, sensors, and effectors can be defined on the classes such that they are automatically discoverable at runtime. Type information, parameters, documentation, and default values are returned through the REST API and shown in the GUI.
Use interfaces and mix-ins to share and inherit behavior in a strongly typed way.
Fluent builder-style API's are included for collecting sensor information from REST endpoints, SSH commands, JMX connectors, and more.
Fluent builder-style task libraries are included for building activity chains which run in parallel or sequentially, executing SSH, REST, or arbitrary Java commands. Task status, result, hierarchies, and errors are exposed through the REST API and in the GUI.