[openstack-dev] [Heat] Autoscale and load balancers

Thomas Hervé therve at gmail.com
Thu Oct 3 07:59:02 UTC 2013


On Wed, Oct 2, 2013 at 11:07 PM, Thomas Spatzier <thomas.spatzier at de.ibm.com
> wrote:

A way to achieve the same behavior as you suggest but less verbose would be
> to use relationships in HOT. We had some discussion about relationships
> earlier this year and in other contexts, but this would fit here very well.
> And I think you express a similar idea on the wiki page you linked above.
> The model could look like:
>
> resources:
>   server1:
>     type: OS::Nova::Server
>   server2:
>     type: OS::Nova::Server
>   loadbalancer:
>     type: OS::Neutron::LoadBalancer
>     # properties etc.
>     relationships:
>       - member: server1
>       - member: server2
>
> From an implementation perspective, a relationship would be implemented
> similar to a resource, i.e. there is python code that implements all the
> behavior like modifying or notifying source or target of the relationship.
> Only the look in the template is different. In the sample above, 'member'
> would be the type of relatioship and there would be a corresponding
> implementation. I actually wrote up some thoughts about possible notation
> for relationship in HOT on this wiki page:
> https://wiki.openstack.org/wiki/Heat/Software-Configuration-Provider
>
> We have such concepts in TOSCA and I think it could make sense to apply
> this here. So when evolving HOT we should think about extending a template
> from just having resources to also having links (instead of association
> resources which are more verbose).
>

Thanks for the input, I like the way it's structured. In this particular
case, I think I'd like the relationships to be on server instead of having
a list of relationships on the load balancer, but the idea remains the same.

I didn't grasp completely the idea of components just yet, but it seems it
would be a useful distinction with resources here, as we care more about
the actual application here (the service running on port N on the server),
rather than the bare server. It becomes the responsibility of the
application to register with the load balancer, which it can do in a more
informed manner (providing the weight in the pool for example). We just
need a concise and explicit way to do that in a template.

-- 
Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131003/5cd3b5a9/attachment.html>


More information about the OpenStack-dev mailing list