<div dir="ltr"><span id="docs-internal-guid-32386b69-65b9-c74d-b765-c0ce506330b0"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Hi,</span></p><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">In the Juno release Murano team added a new feature - Actions. This feature allows to declare actions as specific application methods which should be executed when an action is triggered. When Murano deploys an application with actions new web hooks will be created and exposed by Murano API. These web hooks could be used by any 3rd party tools like monitoring systems, schedulers, UI tools to execute a related action at any time. </span></p><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">There are several use cases which could require Murano actions:</span></p><ol style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:decimal;font-size:17px;font-family:'Trebuchet MS';color:rgb(0,0,0);font-weight:bold;vertical-align:baseline;background-color:transparent"><h2 dir="ltr" style="line-height:1.15;margin-top:10pt;margin-bottom:0pt"><span style="font-size:17px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">AutoScaling.</span></h2></li></ol><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">There were couple discussions around AutoScaling implementation. The most well known solution is to use Heat AS resource. Heat autoscaling resource works perfectly with scaling other Heat resources and even Heat nested stacks. At the same time there are discussions about AS place in Heat and how it should be done. In Murano autoscaling is just a specific action which knows how to modify Heat stack in order to scale the application properly. It can just add a new instance or to do something more complex by scaling multiple resources simultaneously based on some calculations. Application author has a full control on what are specific steps to perform autoscaling for this particular application.</span></p><br><ol style="margin-top:0pt;margin-bottom:0pt" start="2"><li dir="ltr" style="list-style-type:decimal;font-size:17px;font-family:'Trebuchet MS';color:rgb(0,0,0);font-weight:bold;vertical-align:baseline;background-color:transparent"><h2 dir="ltr" style="line-height:1.15;margin-top:10pt;margin-bottom:0pt"><span style="font-size:17px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">HA</span></h2></li></ol><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">HA is another great example of a use case for a Murano actions feature. As Murano allows to bind different applications based on requirements, it is possible to select specific Monitoring tool for the application and configure this monitoring to call Murano API web hook generated for the application in case of failure. As all applications are different they usually require different steps performed for HA switchover. Murano actions allows to define different HA tactics like try to restart a service first, then reboot a VM, then evacuate a VM or recreate a VM.</span></p><br><ol style="margin-top:0pt;margin-bottom:0pt" start="3"><li dir="ltr" style="list-style-type:decimal;font-size:17px;font-family:'Trebuchet MS';color:rgb(0,0,0);font-weight:bold;vertical-align:baseline;background-color:transparent"><h2 dir="ltr" style="line-height:1.15;margin-top:10pt;margin-bottom:0pt"><span style="font-size:17px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Application operations</span></h2></li></ol><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Applications may expose different actions to perform specific operations. Database applications can expose ‘Backup” actions to perform DB backups. Some other application can expose action “Restart” or “Update” to perform related operations. </span></p><br><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Here is a link for a small recordings:</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="text-decoration:underline;font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><a href="http://www.youtube.com/watch?v=OvPpJd0EOFw" style="text-decoration:none">http://www.youtube.com/watch?v=OvPpJd0EOFw</a></span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><br></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Here is a code for the Java application with autoscaling actions: </span><span style="text-decoration:underline;font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><a href="https://github.com/gokrokvertskhov/murano-app-incubator/blob/monitoring-latest/io.murano.apps.java.HelloWorldCluster/Classes/HelloWorldCluster.murano#L92-L99" style="text-decoration:none">https://github.com/gokrokvertskhov/murano-app-incubator/blob/monitoring-latest/io.murano.apps.java.HelloWorldCluster/Classes/HelloWorldCluster.murano#L92-L99</a></span></p><div><br></div></span><div><br></div>-- <br><div dir="ltr"><font color="#999999"><span style="background-color:rgb(255,255,255)">Georgy Okrokvertskhov<br>
Architect,<br><span style="font-family:arial;font-size:small">OpenStack Platform Products,</span><br>
Mirantis</span><br>
<a href="http://www.mirantis.com/" target="_blank">http://www.mirantis.com</a><br>
Tel. +1 650 963 9828<br>
Mob. +1 650 996 3284</font><br></div>
</div>