+1 on the feature and comments below. > *As a core native format*, what do people think of Oasis TOSCA's XML > vocabulary [1] ? I've worked with it for a while, and it has the right > general > concepts I think we'd need, done well, and in a way which won't bite us > down the line. (Alex Huang, in answer to your question, I strongly suspect > that re-using cloudformation or vapp/OVF as _native_ will end up being too > restrictive.) It's not very user friendly, however, so we'd definitely > want... > * Easy-to-use description formats* layered on top of this: AWS > CloudFormation is an obvious desire; OVA/OVF/vApp could be useful; and > personally I'd like to see a lightweight YAML dialect based on Cloudstack- > specific concepts (to make it super-simple to create blueprints).
I like the CloudFormation JSON format, which is readable. I agree that it is difficult to take it exactly because the entities in AWS is different from CloudStack. We can use CloudFormation as a reference to create something native for CloudStack, and align as much as possible. In addition, we can implement import/export utilities for CloudFormation and OVF in the future. As for TOSCA, there are quite a few PaaS vendors participating. The focus seems to be on software package deployment rather than creating multi-VM application deployment on IaaS (although the model is flexible enough to support both). It is in early stage. I am not sure if we should use this standard as the core native format for CloudStack. But I don't have much experience with TOSCA. So love to hear others' opinion. Jie > -----Original Message----- > From: Min Chen [mailto:min.c...@citrix.com] > Sent: Tuesday, January 08, 2013 9:51 AM > To: cloudstack-dev@incubator.apache.org > Subject: Re: [DISCUSS] PaaS Enablement: Composite Application Blueprints > (#576) > > +1 on this feature to extend CloudStack from pure IaaS to PaaS or SaaS > area. Some questions in my mind: > > 1) Does your proposed blueprint only contain functional component > description or contain both functional and deployment aspects? For > example, for a 3-tier app containing three functional components like web > tier, server, and DB, users can define different deployment models for the > same functional components, like small deployment (co-hosting all > components on one VM), or medium or large deployment. > 2) Have you thought of creating Service offerings from your defined > blueprints? This may allow CloudStack to provide some SaaS functionalities. > 3) As for blueprint description language, easy-to-read and easy-to-edit by > human being should be necessary if we don't provide any visual GUI tools to > create/edit a blueprint. I have seen some JSON format before in BMC Cloud > LifeCycle product 2.0. > 4) For a multi-tier application, blueprint should not only describe different > components, but also connections among those components, like open port, > LB and FW rules among them. I assume that your blueprint is also taking that > into consideration, and your backend orchestration layer can provide enough > flexibility to provision any such app, seems not an easy task to me since I am > new to CS. > 5) From a normal user perspective, I would really love to see a GUI tool > developed around this to allow user to visually create/edit a multi-tier app > blueprint instead of using a TextEditor. > > Thanks > -min > > On 1/8/13 6:34 AM, "Alex Heneveld" <alex.henev...@cloudsoftcorp.com> > wrote: > > > > >Thanks for all the comments and support so far! Great to have so much > >interest and especially so many volunteers. > > > >Some of the main points in my mind, on the discussion so far: > > > >*"A new unit of deployment"* is a perfect description of this, Chris. > >And +1 to once it is deployed mapping it on to "projects" -- seems like > >a good fit to me, although I'm no projects expert. Thoughts? > > > >*The description format* is crucial to this feature's success, I think. > >For me priorities are to make it simple to use and simple to > >understand, and to align / be compatible with standards where feasible. > >But there are multiple choices as people have noted. The logical > >architecture to me would be a core description format which is an > >extensible standard, with some easy-to-use formats available on top of > these. > >*As a core native format*, what do people think of Oasis TOSCA's XML > >vocabulary [1] ? I've worked with it for a while, and it has the right > >general concepts I think we'd need, done well, and in a way which won't > >bite us down the line. (Alex Huang, in answer to your question, I > >strongly suspect that re-using cloudformation or vapp/OVF as _native_ > >will end up being too restrictive.) It's not very user friendly, > >however, so we'd definitely want... > >* Easy-to-use description formats* layered on top of this: AWS > >CloudFormation is an obvious desire; OVA/OVF/vApp could be useful; and > >personally I'd like to see a lightweight YAML dialect based on > >Cloudstack-specific concepts (to make it super-simple to create > >blueprints). > > Disclaimer: I'm just suggesting this for discussion. I'm not at > >all sure what is "right"; I'm just sure it's important to get it close > >to right! > > > >*The API *portion I think is straightforward. It's REST, you can list > >'em, upload new ones, delete, and get info (on templates). Perhaps in > >time you could extend. For deployed instances, it's just the Projects > >REST API. > > DMTF CIMI model & REST draft [2] (thanks for the pointer Chris) is > >a good guide to functionality/concepts but I think not as far as API > >goes? Wouldn't people want the API to be consistent with the rest of > >cloudstack API? (But a CIMI skin, e.g. deltaclouds, mapping on to the > >blueprints API in cloudstack, that I like.) > > > >*The GUI* is something that hasn't been discussed much. What should > >this look like? A searchable library (like for VMs) seems the obvious > >choice, as a separate module in the CS GUI, populated by uploading > >description files as noted above? All using the REST API of course. > >(And in time there might be "designer" features where you can > >build/extend blueprints in the GUI.) Once deployed things they appear > >as projects, perhaps extending that GUI+API to support additional info > >for things which come from blueprints. Is that what people were thinking? > > > >*On the topic of in-guest automation,* +1 to calling this out as a > >separate _task_, but is it by itself a feature? I see it as a code > >library -- which this blueprints feature obviously needs, and which > >should be modular, and which would be useful for other features (e.g. > >possibly having GUI hooks where a user can right click on a VM and > >invoke in-guest automation, assuming password hasn't changed). But the > >use case of defining a VM with files installed and a command invoked > >would be handled by a simple blueprint. So I think add such a use > >case, and make sure this library is modular, but not sure it should be > >a separate feature. (Unless there is a precedent for "developer > >features" ?) > > > >*As for PaaS* total agreement here that PaaS-enablement is just a use > >case -- an important one -- but the feature itself is independent of > >PaaS and useful in non PaaS. > > > >*For planning, more generally, *(and again answering Alex Huang's other > >question) once we have some support and consensus (which we're starting > >to get) I think we definitely need to phase in the features, and break > >those in to smaller tasks. There is a lot here. Ideally I'd like to > >identify some core where we could get something indicative pretty > >quickly (a couple months) then adjust this in response to feedback, and > >build upon it for additional features. (This bit at least isn't > >controversial, is it?!) > > > >Thanks folks and please keep it coming. > > > >--A > > > >[1] http://docs.oasis-open.org/tosca/TOSCA/v1.0/TOSCA-v1.0.html > >[2] > >http://dmtf.org/sites/default/files/standards/documents/DSP0263_1.0.0a. > >pdf > > > > > >On 08/01/2013 07:50, Mohammad Nour El-Din wrote: > >> Big +1 > >> > >> I would also take the chance mentioning that I would like to help > >> coding wise and planning also if/when possible > >> > >> Allow me to take this thread one step further and say that I can see > >>at least an initial consensus if not a good enough one to start > >>taking it into a one or more separate threads where we can discuss > >>more planning and technical details > >> > >> Thoughts ? > >> > >> On Tue, Jan 8, 2013 at 7:25 AM, Koushik Das <koushik....@citrix.com> > >>wrote: > >> > >>> +1 to the feature. > >>> This will definitely help in doing initial application prototype and > >>>testing on a test cloud and once everything is tuned up properly the > >>>application can be exported as a package and imported to a production > >>>cloud and with minimal configuration changes should be up and > >>>running. > >>> > >>> -Koushik > >>> > >>>> -----Original Message----- > >>>> From: Alex Heneveld [mailto:alex.henev...@cloudsoftcorp.com] > >>>> Sent: Saturday, January 05, 2013 3:34 AM > >>>> To: cloudstack-dev@incubator.apache.org > >>>> Subject: [DISCUSS] PaaS Enablement: Composite Application > >>>> Blueprints > >>>> (#576) > >>>> > >>>> > >>>> Hi All, > >>>> > >>>> At the CCC, and in jira [1] late last year, we started discussing > >>>> this > >>> feature > >>>> request, but going foward we'd like to get broader feedback. A > >>>> couple > >>> folks > >>>> have suggested we bring it back to the mailing list to get this. > >>>> > >>>> In brief, we're responding to a desire for high-level composite > >>> blueprints on > >>>> top of Cloudstack. For instance: > >>>> > >>>> (a) An app team wants to have a single entity in Cloudstack > >>>>which represents their application, > >>>> consisting of a load-balancer, a scalable appserver tier, > >>>>and a > >>> SQL > >>>> database > >>>> > >>>> (b) A middleware team wants to have a mechanism for > >>>> describing a > >>> PaaS > >>>> which they can > >>>> deploy, manage (e.g. scale out, back), track costs, and > >>>>destroy > >>> as a unit > >>>> in Cloudstack > >>>> > >>>> These get mapped on to Cloudstack components (IaaS and services), > >>>>but what distinguishes them from Projects is that they are reusable > >>>>portable definitions. This is similar to what VMware have in vApp > >>>>and AWS in CloudFormation; but there is (so far) a preference to > >>>>base these around CloudStack concepts and have them accessible in > >>>>the GUI. > >>>> > >>>> Cloudsoft (me and others here) want to work on this, together with > >>>>like- > >>>> minded folks. > >>>> > >>>> Here are some feature ideas for starters: > >>>> > >>>> * IaaS mapping > >>>> - ability to refer to specific templates and offerings (eg > >>>> id="1234") > >>>> - ability to refer to portable descriptions of templates and > >>>> offerings > >>> (eg > >>>> os("ubuntu"), userdata("myappsrv"), minram("2gb")) > >>>> - ability to define subnets, DNS, public IP and firewall rules > >>>> > >>>> * Wiring > >>>> - ability to write files to VM's with permissions, mode, etc > >>>> - ability to embed references to other blueprint entities (ie other > >>>>VM > >>>> IP's/hostnames) in such files > >>>> - ability to execute commands on VM's, with order constraints > >>>> - ability to use puppet/chef/bash/juju/cartridges/brooklyn (e.g. > >>>>via the above capabilities) > >>>> > >>>> * Management > >>>> - ability to access blueprints and deployments via REST and via GUI > >>>> - ability to define clusters and groups of entities (which could be > >>> scaled) > >>>> - ability to deploy policies (eg elasticity, HA/DR logic) to > >>>> various > >>> management > >>>> systems > >>>> > >>>> What would you like to see? Would you be able to help? > >>>> > >>>> Many thanks, > >>>> Alex > >>>> > >>>> [1] https://issues.apache.org/jira/browse/CLOUDSTACK-576 > >>> > >> > >