Features
Blueprinting
Composable blueprints
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
Policy-Based Management
Live metrics
Collect live metrics for use in policies,
either from metric stores or directly using REST, JMX, SSH, and more.
Management policies
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.
Dynamic reconfiguration
Reconfigure policies, suspend them, or add new ones on-the-fly
through the REST API.
Operations
Brooklyn console
Brooklyn runs with a GUI console giving easy access to the
management hierarchy, sensors, and activities.
High availability
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.
State persistence
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.
REST API
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
leading #
. For instance the data for
#/v1/applications/
is available at /v1/applications/
.
And in all cases, Swagger doc is available in the product.
Groovy console
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!)
Versioning
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.
Java
Discoverable configuration
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.
Type hierarchy
Use interfaces and mix-ins to share and inherit behavior in a strongly typed way.
Sensor feeds
Fluent builder-style API's are included for collecting sensor information
from REST endpoints, SSH commands, JMX connectors, and more.
Task libraries
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.