Hi

Sent from my Samsung Galaxy S3
Apologies for any typos
On Jan 16, 2013 6:01 PM, "Shane Witbeck" <sh...@digitalsanctum.com> wrote:
>
> +1 for YAML. After all, YAML is a superset of JSON [1] which is the
primary objective of the 1.2 spec.
>
> Here are my pros and cons:
>
> Pros:
> - relational anchors and aliases (potential here for less verbosity
through reuse)
> - more readable
> - comments
> - projects which I respect, choose yaml over json for similar types of
configuration [2], [3]
>
> Cons:
> - more complex to parse, less mature libraries compared to json
>
> All this being said, I would advocate that more initial focus should be
on the "model" and how it solves the problem of defining the "blueprint".
Serialization format discussion should be secondary and around whatever
best fits the model, not the other way around.

+1 on that

>
>
> [1] http://yaml.org/spec/1.2/spec.html#id2759572
> [2] http://www.elasticsearch.org/guide/reference/setup/configuration.html
> [3] https://github.com/cloudfoundry/bosh-release/blob/master/micro/aws.yml
>
>
> --
> Shane Witbeck
>
>
> On Thursday, January 10, 2013 at 1:20 PM, Kelcey Damage (BT) wrote:
>
> > +1 for YAML, I find JSON good for when I never look at the data and
simply pass to a Python dictionary, however for interaction I am going to
back the YAML choice.
> >
> > KELCEY DAMAGE
> > Infrastructure Systems Architect
> > www.backbonetechnology.com (http://www.backbonetechnology.com)
> >
-------------------------------------------------------------------------
> > kel...@backbonetechnology.com (mailto:kel...@backbonetechnology.com)
> >
> > address: 55 East 7th Ave, Vancouver, BC, V5T 1M4
> > tel: +1 604 713 8560 ext:114
> > fax: +1 604 605 0964
> > skype: kelcey.damage
> >
> >
> >
> > > -----Original Message-----
> > > From: Alex Heneveld [mailto:alex.henev...@cloudsoftcorp.com]
> > > Sent: Wednesday, January 09, 2013 4:39 PM
> > > To: cloudstack-dev@incubator.apache.org (mailto:
cloudstack-dev@incubator.apache.org)
> > > Cc: Min Chen
> > > Subject: Re: [DISCUSS] PaaS Enablement: Composite Application
Blueprints
> > > (#576)
> > >
> > >
> > > Hi Min, Jie,
> > >
> > > Min, nice questions. I've given my answers in-line.
> > >
> > > Jie, my answers also respond to some of your points, re TOSCA and
> > > YAML/JSON.
> > >
> > >
> > > On 08/01/2013 17:50, Min Chen wrote:
> > > > +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.
> > > >
> > >
> > > Great use case. Introduces a _lot_ of complexity:
> > >
> > > (1) allow parameters to be passed to the blueprint (e.g. "size")
> > > (2) separate the components that are to be created from the
customizations
> > > performed
> > > (so you could define customizations for webserver, appserver, and
data,
> > > then either
> > > apply the customizations either to a single VM (small), distinct VM's
> > > (medium),
> > > or distinct VM groups (large))
> > > (3) allow blueprints to refer to other blueprints
> > > (so the "webserver customization" lives as its own reusable module)
> > > (4) allow conditional branching based on parameters
> > > (e.g. if user selects "size=small" then run all customisations on
single VM)
> > >
> > > I'd be inclined to DEFER them as features, until phase 2 or 3, but we
should
> > > consider how the description might support them as I'd like to see
some of
> > > this functionality eventually.
> > >
> > > What do other people think? This is obvious functionality to want,
what's the
> > > right way to support it but without making the description language
> > > complicated?
> > >
> > > (BTW one of the reasons I think TOSCA could be a good choice is that
it has
> > > considered many of these. You can define properties (1 above),
arbitrary
> > > nodes (2), and references to other definitions (3). It also has the
concepts of
> > > requirements / capabilities, relationships, policies, and plans --
some of which
> > > could be used to support (4)
> > > eventually.)
> > >
> > > > 2) Have you thought of creating Service offerings from your defined
> > > > blueprints? This may allow CloudStack to provide some SaaS
functionalities.
> > > >
> > >
> > > I like this idea, although it might break assumptions made elsewhere
about
> > > service offerings so we should look at it carefully.
> > >
> > > > 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.
> > > >
> > >
> > > Wow JSON seems popular so far. And yet YAML is more concise and
> > > expressive. Designed to be easy for people to read and write
configuration
> > > just like this. Whereas JSON is designed for serializing objects, in
a way that
> > > isn't too hard for people. YAML seems the right language for this
purpose to
> > > me -- and my experience has been that it is easier to read and to
write,
> > > without the litter of curly braces and quotes.
> > >
> > > But I don't want to be a language bigot! I can go with JSON if that's
what
> > > people want. :)
> > >
> > > > 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.
> > > >
> > >
> > > Yeah, this is where it gets interesting. A common trick I've seen is
to use
> > > hostnames for a lot of the connection configuration, and have a few
hard-
> > > coded patterns in there (e.g. for groups, load-balancers). But that
only gets
> > > you so far, and then you hit a wall (or spin up a different
orchestrator).
> > >
> > > Using requirements/capabilities and typed relationships gives a much
more an
> > > elegant solution. (Not necessarily TOSCA, but these concepts are well
> > > developed there!)
> > >
> > > In any case let's make sure the use cases include interesting
situations like
> > > this, and we can compare approaches. This absolutely DOES need to be
in
> > > phase 1 I think.
> > >
> > > > 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.
> > > >
> > >
> > > Nice to hear. Me too. The description, API, and backend come first,
with an
> > > initial set of features, but I'd love to see the GUI in phase 2.
> > >
> > > > Thanks
> > > > -min
> > > >
> > >
> > > Keep it coming please.
> > >
> > > --Alex
>

Reply via email to