Hi Graham,

There are many ways to tackle this problem - the general philosophy in Brooklyn is to do it in the way that is best practice for the software under management (sorry that's a bit vague!).

Are these "replicated components" stateless, which need upgraded?

If you can entirely replace individual servers within the composite app to achieve the upgrade, then that is the "most cloudy way". You'd want to use a policy to replace nodes N at a time (or an effector that would loop through the members of the cluster doing this).

---
Alternatively, you might need to upgrade the VM in-place. If there is no first-class support for this in the given blueprint (i.e. no existing effector to perform the upgrade), then you could invoke new scripts on the VM (e.g. via an effector) to make the change. And over time you could add first-class support for this upgrade process to the blueprint.

If upgrading in-place, you'll want to carefully follow the upgrade instructions in the software's admin guide. You'll also want to do it incrementally to the nodes that need upgraded.

---
If you can let us know a little more about your use-case and the blueprint, and which approach is most suitable for you then we can try to give more guidance as to how this would be done in Brooklyn.

Aled


On 19/07/2016 22:44, Mike Zaccardo wrote:
Hi Graham,

I don't have a complete answer for you now as this isn't my particular area
of expertise, but I can get you started and will ask around for more
information in order to provide a fuller answer.

I believe this functionality can be achieved using a combination of an
effector and the `ServiceReplacer` policy.  Here are two examples[1][2] of
this policy in use.  My understanding is that the service could be replaced
with a new instance running an upgraded version, on demand.  I will confirm
this.

I hope this helps for starters.

Cheers,
Mike

[1] https://brooklyn.apache.org/v/latest/start/policies.html
[2] https://brooklyn.apache.org/v/latest/java/topology-dependencies.html

On Tue, Jul 19, 2016 at 2:20 PM Graham Ashby <[email protected]>
wrote:

I've been investigating using Brooklyn with our product.  I've been
impressed with the out of box capabilities, plus the ease of extending it.

However, one thing I haven't seen addressed in the documentation is how
you patch running systems.  Say I have a composite application that has a
number of subsidiary applcations.  Now of those, there are a number of
replicated components tat all need upgrading.  How do I do this?  I would
have the blueprint for the entire system.  How do I indicate that certain
parts need updating?  I don't want to have to tear down the existing
system, and rebuild a new one.

Sorry if this is muddled -- I'm new to Brooklyn.

Thanks
Graham Ashby
IBM Canada



Reply via email to