Another very important Mistral use case is published on the project wiki:
For convenience, below is the description of it. Please let us know your
thoughts on additional things that should be taken into account. We invite
everyone to the discussion.
Cloud Environment Deployment
Cloud environment deployment procedure typically involves many steps that
include infrastructure provision (instances, networks etc) and software
installation and configuration. Those actions often depend on each other and
thus need to be performed in some specific order. Also this process often
involves more than one tool. This is a perfect fit for Mistral
There are several approaches how cloud environment deployment can be addressed
in OpenStack with Heat as a software orchestration tool.
Solution A. External approach
With this approach each task in tasks graph corresponds to some deployment
action. Those may be infrastructure related tasks (like create instance) and
software related task (like execute shell script on VM via SSH). Because we
have Heat in OpenStack all infrastructure tasks can be done via addition
(merging) of additional parts to Heat HOT templates. This can be achieved by
built-in Mistral’s data flow capabilities. Besides HOT template building there
must be also explicit task to create/update Heat stack with built template.
Software configuration actions can be performed by execution of shell scripts,
puppet manifests etc. on VM. Mistral’s data flow can help with passing data
between software configuration tasks.
Because Mistral is going to be integrated with Software Configuration
Management (SCM) tools and because it can natively access various OpenStack
REST APIs all of the tasks mentioned above can be performed by Mistral alone
without a need for additional software to handle callback actions. The graph
itself can be created either manually by a user of auto-generated using some
third party tool. This can be useful for cloud deployment/management tools like
PaaSes, software catalogs and other similar tools that wish to take advantage
of Heat and SCM tools integration.
Solution B. Internal approach
Heat itself can use Mistral for processing HOT templates. With this approach
components and resources directly map to Mistral tasks and Fn::GetAtt/hosten_on
map to task dependencies. Handling of resource/component deployment remains in
Heat but the order and context passing between those activities are delegated
to Mistral. SCM integration may be done using Heat components but users also
have ability to hook custom workflows to Heat-generated task graph. Using
Mistral for task-dependency tracking and context passing as well as task
distribution may be a basis for Heat engine HA and further scalability. This
also opens new possibilities for integration of Heat and 3rd party tools.
It is also possible to have both approaches simultaneously or some mix of them
@ Mirantis Inc.
OpenStack-dev mailing list