Hi all,
A few of us have been discussing off-list the idea of making it simpler
to attach Brooklyn to already-existing machines in a user-friendly way.
The use case is roughly:
As a user I want to get Brooklyn to manage and monitor a set of machines
I already own. I want to apply policies to these machines. I (probably)
do not want Brooklyn to manage their lifecycle. I want to do this in the
web UI.
Of course, all of this is already possible if you deploy an app to a
BYON location. For example, to connect Brooklyn to three machines at
10.9.1.1, 2 and 3 you can write:
name: MyApp
location: byon:(hosts="[email protected].{1,2,3}")
services:
- type: brooklyn.entity.machine.MachineEntity
- type: brooklyn.entity.machine.MachineEntity
- type: brooklyn.entity.machine.MachineEntity
The immediate question is whether it would be useful to provide a
jsgui-interface for constructing these applications without needing to
write YAML or learn the BYON spec.
If the answer to that is yes then follow up questions include:
* How hard do we try to map the resultant application to Brooklyn's
entity hierarchy? Do we make a flat set of MachineEntities or try to let
the user incorporate clusters and other relationships?
* Is MachineEntity the right entity type? Should it be customisable?
* How do we manage SSH keys? Do we always _need_ to manage SSH keys?
It's straightforward to imagine an app that monitors a set of machines
without ever having to SSH to them (e.g. by polling some URL).
For a simple first pass I imagine adding a tab to the 'Create
Application' wizard. It will present a basic form of inputs for
user/host that are pieced together into YAML like that above and POSTed
to the ApplicationResource, as text entered into the YAML tab is currently.
Any thoughts or other questions?
Sam