Re: [openstack-dev] [Solum] Plan files and resources

2013-12-12 Thread Clayton Coleman


- Original Message -
> 
> > On Dec 11, 2013, at 4:45 PM, "Clayton Coleman"  wrote:
> > - Original Message -
> >> Devdatta,
> >> 
> >> On Dec 10, 2013, at 12:37 PM, devdatta kulkarni
> >>  wrote:
> >> 
> >>> Hi Adrian,
> >>> 
> >>> Thanks for creating https://etherpad.openstack.org/p/solum-demystified
> >>> 
> >>> I am really excited to see the examples. Especially cool is how
> >>> examples 2 and 3 demonstrate using a component ("solum_glance_id")
> >>> created
> >>> as part of example 1.
> >>> 
> >>> 
> >>> Some questions/comments:
> >>> 
> >>> 1) Summarizing the sequence of events just to make sure I understand them
> >>> correctly:
> >>>  a) User selects a language pack and specifies its id in the plan file
> >> 
> >> They could put the language pack reference into a Plan file, or we could
> >> generate a Plan file with a CLI command that feeds an auto-generated file
> >> to
> >> the API for the user. That might reduce the user complexity a bit for the
> >> general case.
> > 
> > It seems like the reasonable M1 and M2 scenarios are to get the bones of an
> > integration working that allow a flexible Plan to exist (but not
> > necessarily something an average user would edit).
> 
> To be clear, are you suggesting that we ask users to place stock plan files
> in their code repos as a first step? This would certainly minimize work for
> us to get to milestone-1.

Possibly - or that plan generation is as absolutely simple as possible (we 
either take a plan as input in the client, or pregenerate one with 1-2 
replacement variables).  

> 
> > M2 and M3 can focus on the support around making Plans that mere mortals
> > can throw together (whether generated or precreated by an operator), and a
> > lot of how that evolves depends on the other catalog work.
> 
> This would mean revisiting the simplicity of the plan file, documenting lots
> of examples of them so the are well understood. At that point we could
> demonstrate ways to tweak them to accommodate a variety of workload types
> with Solum, not just deploy simple web apps fitting a single system
> architecture.
> 
> > You could argue the resistance from some quarters to the current PaaS model
> > is that the "Plan" equivalent is hardcoded and non-flexible - what is
> > being done differently here is to offer the concepts necessary to allow
> > other types of plans and application models to coexist in a single system.
> 
> Agreed 100%.
> 
> >>>  b) User creates repo with the plan file in it.
> >> 
> >> We could scan the repo for a Plan file to override the auto-generation
> >> step,
> >> to allow a method for customization.
> >> 
> >>>  After this the flow could be:
> >>>  c.1) User uses solum cli to 'create' an application by giving reference
> >>>  to
> >>> the repo uri
> >> 
> >> I view this as the use of the cli "app create" command as the first step.
> >> They can optionally specify a Plan file to use for either the build
> >> sequence, or the app deployment sequence, or both (for a total of TWO Plan
> >> files). We could also allow plan files to be placed in the Git repo, and
> >> picked up there in the event that none are specified on the command line.
> >> 
> >> Note that they may also put a HOT file in their repo, and bypass HOT file
> >> generation/catalog-lookup and cause Solum to use the supplied template.
> >> This
> >> would be useful for power users who want the ability to further influence
> >> the arrangement of the Heat stack.
> >> 
> >>>  c.1.1) Solum creates a plan resource
> >>>  c.1.2) Solum model interpreter creates a Heat stack and does the
> >>>  rest
> >>>  of the
> >>>   things needed to create a assembly.
> >>>  (The created plan resource does not play any part in assembly
> >>>  creation as such.
> >>>   Its only role is being a 'trackback' to track the plan from which
> >>>   the assembly was created.)
> >> 
> >> It's also a way to find out what services the given requirements were
> >> mapped
> >> to. In a Plan file, the services array contains ServiceSpecfications (see
> >> the EX[1-3] YAML examples under the "services" node for an example of what
> >> those look like. In a Plan resource, the services array includes a list of
> >> service resources so you can see what Solum's model interpreter mapped
> >> your
> >> requirements to.
> >> 
> >>>  or,
> >>>  c.2) User uses solum cli to 'create/register' a plan by providing
> >>>  reference to the repo uri.
> >>>   c.2.1) Solum creates the plan resource.
> >>>  c.2) User uses solum cli to 'create' an application by specifying the
> >>>  created plan
> >>>   resource uri
> >>>   (In this flow, the plan is actively used).
> >> 
> >> Yes, this would be another option. I expect that this approach may be used
> >> by
> >> users who want to create multitudes of Assemblies from a given Plan
> >> resource.
> >> 
> >>> 2) Addition of new solum specific attributes in a plan specification is
> >>> interesting.
> >>>  I 

Re: [openstack-dev] [Solum] Plan files and resources

2013-12-11 Thread Adrian Otto

> On Dec 11, 2013, at 4:45 PM, "Clayton Coleman"  wrote:
> - Original Message -
>> Devdatta,
>> 
>> On Dec 10, 2013, at 12:37 PM, devdatta kulkarni
>>  wrote:
>> 
>>> Hi Adrian,
>>> 
>>> Thanks for creating https://etherpad.openstack.org/p/solum-demystified
>>> 
>>> I am really excited to see the examples. Especially cool is how
>>> examples 2 and 3 demonstrate using a component ("solum_glance_id") created
>>> as part of example 1.
>>> 
>>> 
>>> Some questions/comments:
>>> 
>>> 1) Summarizing the sequence of events just to make sure I understand them
>>> correctly:
>>>  a) User selects a language pack and specifies its id in the plan file
>> 
>> They could put the language pack reference into a Plan file, or we could
>> generate a Plan file with a CLI command that feeds an auto-generated file to
>> the API for the user. That might reduce the user complexity a bit for the
>> general case.
> 
> It seems like the reasonable M1 and M2 scenarios are to get the bones of an 
> integration working that allow a flexible Plan to exist (but not necessarily 
> something an average user would edit).  

To be clear, are you suggesting that we ask users to place stock plan files in 
their code repos as a first step? This would certainly minimize work for us to 
get to milestone-1.

> M2 and M3 can focus on the support around making Plans that mere mortals can 
> throw together (whether generated or precreated by an operator), and a lot of 
> how that evolves depends on the other catalog work.  

This would mean revisiting the simplicity of the plan file, documenting lots of 
examples of them so the are well understood. At that point we could demonstrate 
ways to tweak them to accommodate a variety of workload types with Solum, not 
just deploy simple web apps fitting a single system architecture.

> You could argue the resistance from some quarters to the current PaaS model 
> is that the "Plan" equivalent is hardcoded and non-flexible - what is being 
> done differently here is to offer the concepts necessary to allow other types 
> of plans and application models to coexist in a single system.

Agreed 100%. 

>>>  b) User creates repo with the plan file in it.
>> 
>> We could scan the repo for a Plan file to override the auto-generation step,
>> to allow a method for customization.
>> 
>>>  After this the flow could be:
>>>  c.1) User uses solum cli to 'create' an application by giving reference
>>>  to
>>> the repo uri
>> 
>> I view this as the use of the cli "app create" command as the first step.
>> They can optionally specify a Plan file to use for either the build
>> sequence, or the app deployment sequence, or both (for a total of TWO Plan
>> files). We could also allow plan files to be placed in the Git repo, and
>> picked up there in the event that none are specified on the command line.
>> 
>> Note that they may also put a HOT file in their repo, and bypass HOT file
>> generation/catalog-lookup and cause Solum to use the supplied template. This
>> would be useful for power users who want the ability to further influence
>> the arrangement of the Heat stack.
>> 
>>>  c.1.1) Solum creates a plan resource
>>>  c.1.2) Solum model interpreter creates a Heat stack and does the rest
>>>  of the
>>>   things needed to create a assembly.
>>>  (The created plan resource does not play any part in assembly
>>>  creation as such.
>>>   Its only role is being a 'trackback' to track the plan from which
>>>   the assembly was created.)
>> 
>> It's also a way to find out what services the given requirements were mapped
>> to. In a Plan file, the services array contains ServiceSpecfications (see
>> the EX[1-3] YAML examples under the "services" node for an example of what
>> those look like. In a Plan resource, the services array includes a list of
>> service resources so you can see what Solum's model interpreter mapped your
>> requirements to.
>> 
>>>  or,
>>>  c.2) User uses solum cli to 'create/register' a plan by providing
>>>  reference to the repo uri.
>>>   c.2.1) Solum creates the plan resource.
>>>  c.2) User uses solum cli to 'create' an application by specifying the
>>>  created plan
>>>   resource uri
>>>   (In this flow, the plan is actively used).
>> 
>> Yes, this would be another option. I expect that this approach may be used by
>> users who want to create multitudes of Assemblies from a given Plan
>> resource.
>> 
>>> 2) Addition of new solum specific attributes in a plan specification is
>>> interesting.
>>>  I imagine those can be contributed back as "Solum" profile to CAMP spec?
>> 
>> If we want, that input would certainly be welcomed.
>> 
>>> 3) Model interpreter for generating Heat stack from a plan is a nice idea.
>>>  For all: Are there any recommended libraries for this?
>> 
>> Good question. There are a number of orchestration systems that we could look
>> at as case studies. Anything that has a declarative DSL is likely to have
>> implementat

Re: [openstack-dev] [Solum] Plan files and resources

2013-12-11 Thread Clayton Coleman


- Original Message -
> Devdatta,
> 
> On Dec 10, 2013, at 12:37 PM, devdatta kulkarni
>  wrote:
> 
> > Hi Adrian,
> > 
> > Thanks for creating https://etherpad.openstack.org/p/solum-demystified
> > 
> > I am really excited to see the examples. Especially cool is how
> > examples 2 and 3 demonstrate using a component ("solum_glance_id") created
> > as part of example 1.
> > 
> > 
> > Some questions/comments:
> > 
> > 1) Summarizing the sequence of events just to make sure I understand them
> > correctly:
> >   a) User selects a language pack and specifies its id in the plan file
> 
> They could put the language pack reference into a Plan file, or we could
> generate a Plan file with a CLI command that feeds an auto-generated file to
> the API for the user. That might reduce the user complexity a bit for the
> general case.

It seems like the reasonable M1 and M2 scenarios are to get the bones of an 
integration working that allow a flexible Plan to exist (but not necessarily 
something an average user would edit).  M2 and M3 can focus on the support 
around making Plans that mere mortals can throw together (whether generated or 
precreated by an operator), and a lot of how that evolves depends on the other 
catalog work.  You could argue the resistance from some quarters to the current 
PaaS model is that the "Plan" equivalent is hardcoded and non-flexible - what 
is being done differently here is to offer the concepts necessary to allow 
other types of plans and application models to coexist in a single system.

> 
> >   b) User creates repo with the plan file in it.
> 
> We could scan the repo for a Plan file to override the auto-generation step,
> to allow a method for customization.
> 
> >   After this the flow could be:
> >   c.1) User uses solum cli to 'create' an application by giving reference
> >   to
> >  the repo uri
> 
> I view this as the use of the cli "app create" command as the first step.
> They can optionally specify a Plan file to use for either the build
> sequence, or the app deployment sequence, or both (for a total of TWO Plan
> files). We could also allow plan files to be placed in the Git repo, and
> picked up there in the event that none are specified on the command line.
> 
> Note that they may also put a HOT file in their repo, and bypass HOT file
> generation/catalog-lookup and cause Solum to use the supplied template. This
> would be useful for power users who want the ability to further influence
> the arrangement of the Heat stack.
> 
> >   c.1.1) Solum creates a plan resource
> >   c.1.2) Solum model interpreter creates a Heat stack and does the rest
> >   of the
> >things needed to create a assembly.
> >   (The created plan resource does not play any part in assembly
> >   creation as such.
> >Its only role is being a 'trackback' to track the plan from which
> >the assembly was created.)
> 
> It's also a way to find out what services the given requirements were mapped
> to. In a Plan file, the services array contains ServiceSpecfications (see
> the EX[1-3] YAML examples under the "services" node for an example of what
> those look like. In a Plan resource, the services array includes a list of
> service resources so you can see what Solum's model interpreter mapped your
> requirements to.
> 
> >   or,
> >   c.2) User uses solum cli to 'create/register' a plan by providing
> >   reference to the repo uri.
> >c.2.1) Solum creates the plan resource.
> >   c.2) User uses solum cli to 'create' an application by specifying the
> >   created plan
> >resource uri
> >(In this flow, the plan is actively used).
> 
> Yes, this would be another option. I expect that this approach may be used by
> users who want to create multitudes of Assemblies from a given Plan
> resource.
> 
> > 2) Addition of new solum specific attributes in a plan specification is
> > interesting.
> >   I imagine those can be contributed back as "Solum" profile to CAMP spec?
> 
> If we want, that input would certainly be welcomed.
> 
> > 3) Model interpreter for generating Heat stack from a plan is a nice idea.
> >   For all: Are there any recommended libraries for this?
> 
> Good question. There are a number of orchestration systems that we could look
> at as case studies. Anything that has a declarative DSL is likely to have
> implementations that are relevant to our need for a model interpreter. This
> includes Heat.
> 
> > 4) Just to confirm, I assume that the api-spec-review etherpad
> > (https://etherpad.openstack.org/p/solum-api-spec-review),
> >   is for fyi purpose only. If someone wants to know what is the current
> >   thinking about API, they should
> >   just look at the solum-demystified etherpad
> >   (https://etherpad.openstack.org/p/solum-demystified)
> 
> I just updated the solum-api-spec-review, as that's actually still WIP. I
> labeled it as such.
> 
> Thanks,
> 
> Adrian
> _

Re: [openstack-dev] [Solum] Plan files and resources

2013-12-10 Thread Adrian Otto
Devdatta,

On Dec 10, 2013, at 12:37 PM, devdatta kulkarni 
 wrote:

> Hi Adrian,
> 
> Thanks for creating https://etherpad.openstack.org/p/solum-demystified
> 
> I am really excited to see the examples. Especially cool is how
> examples 2 and 3 demonstrate using a component ("solum_glance_id") created
> as part of example 1.
> 
> 
> Some questions/comments:
> 
> 1) Summarizing the sequence of events just to make sure I understand them 
> correctly: 
>   a) User selects a language pack and specifies its id in the plan file

They could put the language pack reference into a Plan file, or we could 
generate a Plan file with a CLI command that feeds an auto-generated file to 
the API for the user. That might reduce the user complexity a bit for the 
general case.

>   b) User creates repo with the plan file in it.

We could scan the repo for a Plan file to override the auto-generation step, to 
allow a method for customization.

>   After this the flow could be:
>   c.1) User uses solum cli to 'create' an application by giving reference to 
>  the repo uri

I view this as the use of the cli "app create" command as the first step. They 
can optionally specify a Plan file to use for either the build sequence, or the 
app deployment sequence, or both (for a total of TWO Plan files). We could also 
allow plan files to be placed in the Git repo, and picked up there in the event 
that none are specified on the command line.

Note that they may also put a HOT file in their repo, and bypass HOT file 
generation/catalog-lookup and cause Solum to use the supplied template. This 
would be useful for power users who want the ability to further influence the 
arrangement of the Heat stack.

>   c.1.1) Solum creates a plan resource
>   c.1.2) Solum model interpreter creates a Heat stack and does the rest 
> of the
>things needed to create a assembly. 
>   (The created plan resource does not play any part in assembly creation 
> as such.
>Its only role is being a 'trackback' to track the plan from which the 
> assembly was created.)

It's also a way to find out what services the given requirements were mapped 
to. In a Plan file, the services array contains ServiceSpecfications (see the 
EX[1-3] YAML examples under the "services" node for an example of what those 
look like. In a Plan resource, the services array includes a list of service 
resources so you can see what Solum's model interpreter mapped your 
requirements to.

>   or, 
>   c.2) User uses solum cli to 'create/register' a plan by providing reference 
> to the repo uri. 
>c.2.1) Solum creates the plan resource.
>   c.2) User uses solum cli to 'create' an application by specifying the 
> created plan
>resource uri
>(In this flow, the plan is actively used).

Yes, this would be another option. I expect that this approach may be used by 
users who want to create multitudes of Assemblies from a given Plan resource. 

> 2) Addition of new solum specific attributes in a plan specification is 
> interesting.
>   I imagine those can be contributed back as "Solum" profile to CAMP spec?

If we want, that input would certainly be welcomed.

> 3) Model interpreter for generating Heat stack from a plan is a nice idea.
>   For all: Are there any recommended libraries for this?

Good question. There are a number of orchestration systems that we could look 
at as case studies. Anything that has a declarative DSL is likely to have 
implementations that are relevant to our need for a model interpreter. This 
includes Heat.

> 4) Just to confirm, I assume that the api-spec-review etherpad 
> (https://etherpad.openstack.org/p/solum-api-spec-review), 
>   is for fyi purpose only. If someone wants to know what is the current 
> thinking about API, they should
>   just look at the solum-demystified etherpad 
> (https://etherpad.openstack.org/p/solum-demystified)

I just updated the solum-api-spec-review, as that's actually still WIP. I 
labeled it as such.

Thanks,

Adrian
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev