Hi all,

In grouping, as we are supporting deployment Policy in the *group level or
in the cluster level*, it would be easy if we have a single place to define
all the deployment policy of children. The advantages of defining global
deployment policy as below:

- Same application can be deployed in HA or in burst manner using different
deployment Policy.
       * will be starting actual VMs after deploying the deployment Policy
rather than starting it, once the application got deployed.
      * deployment Policy will be coupled with an application always.

- No need to define multiple deployment policy per cluster level or group
level

- Validation can also happen in the single place
      * Each children's policy can be validated against the
applicationPolicy whether relevant partition/Network partition is already
defined or not
     * Each leave cluster should have a deployment policy either inherit
from one of the parent group or define it by its own.

- Partition can also be defined in the Deployment Policy itself

Please find the proposed format for the deployment Policy for application
as following:

+ id
+ applicationPolicy[1..1]
        + appId
        + networkPartition[1..n]
                  + id
                  + activeByDefault
                  + partition[1..n]
                          + id
                          + provider
                          + properties[1..n]
+ childPolicies[1..n]
        + childId (Group alias or cartridge alias)
        + networkPartition[1..n]
                  + id
                  + partition[1..n]
                          + id
                          + max

Please find the definition of new elements in the Deployment Policy as
below:

*applicationPolicy* : will have definition of all the network partition and
partition which will be used throughout the application.

*activeByDefault* : If true means, that network partition will be used by
default. If false, means it can be used when all the resources are
exhausted(in bursting)

*childPolicies* : Each child policy will refer the network partition and
relevant partition from applicationPolicy to define their own deployment
pattern. Please note that, if you define a childPolicy by referring to
group, then underlying clusters/group will inherit the same policy.

*max: *Maximum no of instances that can be handled by a partition.
         For group: max group instances can be in a partition
         For Cluster: max members that can be kept for a cluster instance
in a partition.

FYI: A sample Policy is attached here with.

Please share your suggestions on this...


Thanks,
Reka




-- 
Reka Thirunavukkarasu
Senior Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007

Attachment: Application_Global_Dep_Policy.json
Description: application/json

Reply via email to