stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Eppel (meppel)" <mep...@cisco.com>
Subject Summary of Composite Application Definition with Reference to Deployed Service Groups discussion
Date Tue, 08 Jul 2014 14:37:09 GMT
I browsed over the previously exchanged emails, compiled and summarized it below (please correct
me when my understanding is incorrect).

+ service Groups definitions are deployed independently of each other (similar to deploying
a cartridge or policy)
   (something along the lines like “deploy-service-group service-group- definition.json”,
for sample definition see [1], [2])
+ service Groups are named and can be referenced in a composite application
+ generally, service groups logically groups other service group definitions and cartridge
types and describes their interdependencies
+ dependencies are described as part of the service group definition
+ For the format and examples of a service group see [1], [2] below
+ other characteristics of service groups like auto-scaling, deployment restrictions  are
describes as part of the composite application


+ Composite application is deployed independent of service groups
+ composite application references (already deployed) service groups and cartridges
+ provides required subscription and deployment  information for service group definitions
and cartridge types
+ creates a specific instance of a service group / cartridge type by defining a service group
alias and cartridge alias and also by assigning characteristics like auto-scaling, deployment
policy, etc … which are specific for the application (for instance another application could
define other deployment policies for the same service group definition)
+ composite application format and example see [3]
+ N number of applications will be supported ?



{
    "name": "group1",
    "cartridges": [
        "mysql", "mongoDB"
    ],
    "dependencies": {
        "killBehaviour": "kill-none"
    }
}

[2].
{
    "name": "group2",
    "subGroups": [
        "group1"
    ],
    "cartridges": [
        "php"
    ],
    "dependencies": {
        "startupOrder": [
            {
                "start": "group.group1",
                "after": "cartridge.php"
            }
         ],
        "killBehaviour": "kill-dependents"

    }
}

[3]

{
  "applicationId": "test_app",
  "alias": "myapp1",
  "components": [
    {
      "group": "group1",
      "alias": "mygroup1",
      "deploymentPolicy": "dep_policy_group1",
      "autoscalingPolicy": "autoscale_policy_group1",
      "subscribables": [
        {
          "type": "mysql",
          "alias": "mygroup1.mysql",
          "deploymentPolicy": "dep_policy_mysql",
          "autoscalingPolicy": "autoscale_policy_mysql"
        },
        {
          "type": "php",
          "alias": "mygroup1.php",
          "deploymentPolicy": "dep_policy_php",
          "autoscalingPolicy": "autoscale_policy_php",
          "repoURL": "www.mygit.com/php.git",
          "privateRepo": "true",
          "repoUsername": "admin",
          "repoPassword": "xxxx"
        }
      ]
    },

  ],
  "cartridges": [
    {
      "type": "tomcat",
      "alias": "mytomcat",
      "deploymentPolicy": "dep_policy_tomcat",
      "autoscalingPolicy": "autoscale_policy_tomcat",
      "repoURL": "www.mygit.com/tomcat.git",
      "privateRepo": "false",
      "repoUsername": "admin",
      "repoPassword": "yyyy"
    }
  ]
}

From: Shaheedur Haque (shahhaqu)
Sent: Tuesday, July 08, 2014 3:16 AM
To: dev@stratos.apache.org; Martin Eppel (meppel)
Subject: RE: Composite Application Definition with Reference to Deployed Service Groups

Hi Isuru,

See below…

From: isuruh@wso2.com<mailto:isuruh@wso2.com> [mailto:isuruh@wso2.com] On Behalf Of
Isuru Haththotuwa
Sent: 04 July 2014 09:11
To: dev; Martin Eppel (meppel)
Subject: Composite Application Definition with Reference to Deployed Service Groups

Hi all,
Since we have the Service Group persistence now, we can change the Composite Application to
refer the previously deployed Service Groups [1]. WDYT?
[srh] I think I missed groups being deployed/persisted separately. Does the “subscription”
information (meaning deployment and autoscaling only for a group, everything for a cartridge),
get persisted with each group?


The Subscribable section will carry subscription level information related to each cartridge
in the group. Even for a nested group, we can specify this information as a flat structure
(an array) since we already have captured dependency information from the deployed Service
Groups. I believe this will reduce the complexity of this JSON definition. Note that there
are policies (autoscaling/deployment) defined per group and per Subscribable. This is for
the purpose of member/group wise scaling. Also note the alias I have used for two Subscribables
in the group; I believe we can derive that from the group alias without the user having to
give an explicit alias for each Subscribable. Sent a separate mail to the dev list suggesting
that earlier with subject [2].

[srh] Some questions:


1.      I think I don’t understand what application.components is, I imagined it rather
as application.groups? That way, the application is itself just a subclass of group, albeit
the one at the top and carrying any specialisation that implies.

2.      In [1] you don’t show nested groups. How should those be represented? Or are they
not needed because groups are being deployed/persisted separately, and this application only
specifies the top level groups/cartridges and their respective “subscriptions”?

I’m a little uneasy about the inline model of the “subscription” information. I tend
to think that this can be factored out (though it is not the end of the world to keep it inline)
subject to my understanding of questions 1 and 2.

BTW, I saw this email after I responded to [2] ☺

Thanks, Shaheed

[1].
{
  "applicationId": "test_app",
  "alias": "myapp1",
  "components": [
    {
      "group": "group1",
      "alias": "mygroup1",
      "deploymentPolicy": "dep_policy_group1",
      "autoscalingPolicy": "autoscale_policy_group1",
      "subscribables": [
        {
          "type": "mysql",
          "alias": "mygroup1.mysql",
          "deploymentPolicy": "dep_policy_mysql",
          "autoscalingPolicy": "autoscale_policy_mysql"
        },
        {
          "type": "php",
          "alias": "mygroup1.php",
          "deploymentPolicy": "dep_policy_php",
          "autoscalingPolicy": "autoscale_policy_php",
          "repoURL": "www.mygit.com/php.git<http://www.mygit.com/php.git>",
          "privateRepo": "true",
          "repoUsername": "admin",
          "repoPassword": "xxxx"
        }
      ]
    },

  ],
  "cartridges": [
    {
      "type": "tomcat",
      "alias": "mytomcat",
      "deploymentPolicy": "dep_policy_tomcat",
      "autoscalingPolicy": "autoscale_policy_tomcat",
      "repoURL": "www.mygit.com/tomcat.git<http://www.mygit.com/tomcat.git>",
      "privateRepo": "false",
      "repoUsername": "admin",
      "repoPassword": "yyyy"
    }
  ]
}


[2]. Composite Application Deployment and Subscription - Single Alias for a Group

--
Thanks and Regards,

Isuru H.
+94 716 358 048
Mime
View raw message