The problem with exposing Mistral DSL the way it is, is that there are many 
things the user should not be aware of.

Lets take the example Mistral DSL created here, 
https://review.openstack.org/#/c/95709/4/etc/solum/workbooks/build.yaml

Why should the end user know and define things like auth_token, base_image_id 
(which is the language pack id in the plan file), on-success actions, etc. 
Users should not be concerned with these things. All they should be able to do 
is say 'yes/no' to a task which Solum supports, and if Yes, configure it 
further. Dependency between tasks, internal solum/glance/keystone id's etc 
should be hidden, but are required by the mistral DSL.




On Jun 4, 2014, at 1:10 PM, Julien Vey 
<vey.jul...@gmail.com<mailto:vey.jul...@gmail.com>>
 wrote:

Murali, Roshan.

I think there is a misunderstood. By default, the user wouldn't see any 
"workflow" dsl. If the user does not specify anything, we would use a 
pre-defined mistral workbook defined by Solum, as Adrian described

If the user needs more, mistral is not so complicated. Have a look at this 
example Angus has done 
https://review.openstack.org/#/c/95709/4/etc/solum/workbooks/build.yaml
We can define anything as solum actions, and the users would just have to call 
one of this actions. Solum takes care of the implementation. If we have 
comments about the DSL, Mistral's team is willing to help.

Our end-users will be developers, and a lot of them will need a custom workflow 
at some point. For instance, if Jenkins has so many plugins, it's because there 
are as many custom build workflows, specific to each company. If we add an 
abstraction on top of mistral or any other workflow engine, we will lock 
developers in our own decisions, and any additional feature would require a new 
development in Solum, whereas exposing (when users want it) mistral, we would 
allow for any customization.

Julien




2014-06-04 19:50 GMT+02:00 Roshan Agrawal 
<roshan.agra...@rackspace.com<mailto:roshan.agra...@rackspace.com>>:
Agreeing with what Murali said below. We should make things really simple for 
the 99 percentile of the users, and not force the complexity needed by the 
minority of the “advanced users” on the rest of the 99 percentile users.

Mistral is a generic workflow DSL, we do not need to expose all that complexity 
to the Solum user that wants to customize the pipeline. “Non-advanced” users 
will have a need to customize the pipeline. In this case, the user is not 
necessarily the developer persona, but typically an admin/release manager 
persona.

Pipeline customization should be doable easily, without having the understand 
or author a generic workflow DSL.

For the really advanced user who needs to have a finer grained need to tweak 
the mistral workflow DSL (I am not sure if there will be a use case for this if 
we have the right customizations exposed via the pipeline API), we should have 
the “option” for the user to tweak the mistral DSL directly, but we should not 
expect 99.9% (or more) of the users to deal with a generic workflow.


From: Murali Allada 
[mailto:murali.all...@rackspace.com<mailto:murali.all...@rackspace.com>]
Sent: Wednesday, June 04, 2014 12:09 PM

To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [solum] reviews for the new API


Angus/Julien,

I would disagree that we should expose the mistral DSL to end users.

What if we decide to use something other than Mistral in the future? We should 
be able to plug in any workflow system we want without changing what we expose 
to the end user.

To me, the pipeline DSL is similar to our plan file. We don't expose a heat 
template to our end users.

Murali



On Jun 4, 2014, at 10:58 AM, Julien Vey 
<vey.jul...@gmail.com<mailto:vey.jul...@gmail.com>>
 wrote:


Hi Angus,

I really agree with you. I would insist on #3, most of our users will use the 
default workbook, and only advanced users will want to customize the workflow. 
"advanced" users should easily understand a mistral workbook, cause they are 
"advanced"

To add to the cons of creating our own DSL, it will require a lot more work, 
more design discussions, more maintenance... We might end up doing what mistral 
is already doing. If we have some difficulties with Mistral's DSL, we can talk 
with the team, and contribute back our experience of using Mistral.

Julien




2014-06-04 14:11 GMT+02:00 Angus Salkeld 
<angus.salk...@rackspace.com<mailto:angus.salk...@rackspace.com>>:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all

I have posted this series and it has evoked a surprising (to me) amount
of discussion so I wanted to clarify some things and talk to some of the
issues so we can move forward.

So first note is this is an early posting and still is not tested much.

https://review.openstack.org/#/q/status:open+project:stackforge/solum+branch:master+topic:new-api,n,z

First the terminology
   I have a pipeline meaning the association between a mistral workbook,
   a trigger url and a plan. This is a running entity not just a
   different workbook.

The main issue seems to be the extent to which I am exposing the mistral
workbook. Many of you expected a simpler workflow DSL that would be
converted into the mistral workbook.

The reason for me doing it this way are:
1) so we don't have to write much code
2) this is an iterative process. Let's try it the simple way first and
   only make it more complicated if we really need to (the agile way?).
3) to be consistent in the way we treat heat templates, mistral
   workbooks and language packs - i.e. we provide standard ones and
   allow you to customize down to the underlying openstack primitives
   if you want (we should aim for this to be only a small percentage
   of our users).
   eg. pipeline == (check-build-deploy mistral workbook +
                    basic-docker heat template + custom plan)
   here the user just choose the heat template and workbook from a list
   of options.

4) if the mistral dsl is difficult for our users to work with we should
   give the mistral devs a chance to improve it before working around
   it.
5) our users are primary developers and I don't think the current
   mistral DSL is tricky to figure out for someone that can code.
6) doing it this way we can make use of heat and mistral's horizon
   plugins and link to them from the pipeline instead of having to
   redo all of the same pages. In a similar why that heat links to
   servers/volumes etc from a running stack.

- -Angus


Some things to note:
- - the entire mistral engine can be replaced with an engine level plugin

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTjwz2AAoJEFrDYBLxZjWoEr0H/3nh66Umdw2nGUEs+SikigXa
XAN90NHHPuf1ssEqrF/rMjRKg+GvrLx+31x4oFfHEj7oplzGeVA9TJC0HOp4h6dh
iCeXAHF7KX+t4M4VuZ0y9TJB/jLxfxg4Qge7ENJpNDD/gggjMYSNhcWzBG87QBE/
Mi4YAvxNk1/C3/YZYx2Iujq7oM+6tflTeuoG6Ld72JMHryWT5/tdYZrCMnuD4F7Q
8a6Ge3t1dQh7ZlNHEuRDAg3G5oy+FInXyFasXYlYbtdpTxDL8/HbXegyAcsw42on
2ZKRDYBubQr1MJKvSV5I3jjOe4lxXXFylbWpYpoU8Y5ZXEKp69R4wrcVISF1jQQ=
=P0Sl
-----END PGP SIGNATURE-----

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

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

Reply via email to