stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Isuru Haththotuwa <isu...@apache.org>
Subject Service Grouping and Composite Application Deployment
Date Mon, 02 Jun 2014 05:22:44 GMT
Hi Devs,

This is an addition to the discussion happened in the thread [1]. I have
included a very basic sequence diagram to show the flow of how Service
Grouping would happen for the initial implementation.

​
 composite_app_1.png
<https://docs.google.com/a/wso2.com/file/d/0B4pCC9A49FwCRDhqQ0JDRl9tQjA/edit?usp=drive_web>
​
Short description of the flow:.

1, 2 & 3. Deploy Components' Definitions that would be included in the top
level Composite Application. Typically, a component would map to a single
cartridge. For sample JSON definitions of a component, please refer [1].

4. Deploy a Group Definition, which would logically group the relevant
components. This would include information on the Startup Order of each
component, and how to handle the termination/error situations as well (Kill
Behavior).

5. Deploy a Nested Group Definition, which would contain one/more of
Components and Groups.

6. Deploy the Composite Application Definition. This would map to the
operation 'Subscription' which we have currently, when spinning up a single
cartridge instance. As per the discussion that took place in the above
mentioned thread, this was decided to be called the 'Composite Application
Definition' deployment, rather than a Subscription.

For the initial version, we can restrict this Composite Application
Definition only to contain information for each group/component, such as
aliases, git repositories and relevant info as required, etc., and not
allow further grouping at this level.

A typical basic Composite Application Definition, in JSON format, would be
as follows:

{
  "name": "group2",
  "alias": "<group2_alias>",
  "components": [
    {
      "name": "component2",
      "alias": "<component2_alias>",
      "repoUrRL": "<repo_url>"
    }
  ],
  "groups": [
    {
      "name": "group1",
      "alias": "group1_alias",
      "components": [
        {
          "name": "component1",
          "alias": "<component1_alias>",
          "xxx": "<xxx>"
        },
        {
          "name": "component3",
          "alias": "<component3_alias>",
          "yyy": "<yyy>"
        }
      ]
    }
  ]
}

More information is available in the above mentioned mail thread and in
[2]. Please share your feedback on this.


[1]. [Discuss] Grouping of services (cartridges)
[2].
https://docs.google.com/a/wso2.com/document/d/1qnArxF8obhbjMLUbPAENQMn94fPSd3AVqO41mxhnJXE/edit#

Mime
View raw message