[openstack-dev] [Heat] A concrete proposal for Heat Providers
Zane Bitter
zbitter at redhat.com
Mon May 6 14:38:43 UTC 2013
On 02/05/13 19:39, Tripp, Travis S wrote:
> I agree with Clint. This essentially boils down to being able to describe my application(s) and how to deploy them separately from the resources where I want to deploy them. Then based on the target environment, I have a way to deploy my app to different resources without having to modify / copy paste my app model everywhere. In TOSCA terms, this is what the "relationship" concept provides. For example, I can design my application in one template and infrastructure(s) in another template. Then I essentially can have different deployments where I use the relationship to establish a source and a target for these relationship (App part A is associated to Infra part X). I just spoke with Thomas Spatzier and I think he is going to provide a simplified JSON or YAML representation of this concept.
This use case makes complete sense to me.
Here's the part I'm struggling with:
> For example, I can design my application in one template and infrastructure(s) in another template.
So... this exists, right?
We call the first part "configuration management" (Puppet, Chef) and the
second part "cloud orchestration" (Heat, CloudFormation).
The question here is how do we manage the interface between those two
parts. In doing so, there are two things I firmly believe we need to avoid:
1) Writing our own configuration management
- This is not a good use of the OpenStack project's resources. There is
no particular reason to think we could do it any better than existing
solutions. Even if we could the result does not belong in OpenStack,
since it would be just as desirable in other contexts.
2) Depending on one particular configuration management tool
- Neither is there any particular reason to think that the existing
solutions are the best that will ever exist, nor that one can ever
be universal. If we lock OpenStack in to one particular tool, we
also lock out any future innovation in the field and all users for
whom that tool does not work.
One thing that would be very useful to me - and maybe the folks with
TOSCA experience would be well-placed to help out here - would be to
describe what Heat would actually _do_ to deploy an application, with a
focus on data flow, rather than just looking at what the template would
look like.
Maybe take Travis's excellent diagram as a starting point. Where would
App Part A and App Part B be defined? Where would the deployments be
defined? Which actors could define them and their constituent parts? How
would Heat combine the data? What calls would Heat end up making as a
result?
Subject to the two constraints above, I am very supportive of this
concept. But I still don't feel like I understand how it would work in
practice.
cheers,
Zane.
More information about the OpenStack-dev
mailing list