stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Eppel (meppel)" <mep...@cisco.com>
Subject Composite Application / grouping feature set (as in 4.0.0-grouping branch) / Planning for the next items in Grouping Feature
Date Wed, 02 Jul 2014 23:28:29 GMT

Here is a description of the functionality added (and ToDo list) for composite application
/ grouping feature (as uploaded to the stratos repository in the 4.0.0-grouping branch).


Currently implemented:

+ Grouping of subscribed cartridge types, simple and nested
  - a group is defined as component, components define group members which can be (subscribed)
cartridges or other groups (nested grouping)
    Cartridges are referenced by cartridge types

+ Defining dependencies between group members
  - defines start up, termination dependencies (see key / value pairs in attached json file)
  - dependencies are nested and computed as “per cartridge type and per group” (e.g. for
a group member to start up, and a dependency is declared on a nested group, all group members
of the nested group have to be up before a the group member is spun up)

+ Dependencies
  - start up dependencies:
    defines the sequence in which components will be brought up, for a component to be up
at least one VM in the cluster needs to be in Member.ACTIVE state
  - Terminating dependencies (kill-all, kill-none, kill-dependents):
    kill-all: if defined and a component is not up (no cluster member in MEMBER.ACTIVE state)
all dependencies will be killed
    kill-none:         if defined and a component is not up no dependency will be killed
    kill-dependents: if defined and a component is not, up all components depending on it
will be killed

+ Defining composite application
  - defines groups, group members (in application json referred to as subscribables) and dependencies
(key / value pairs).
  - Currently only a single application is supported


ToDo List (Missing features and limitations):
+ member scaling
+ group scaling
+ composite application subscription
+ adding / removing of groups
+ only a single composite application can deployed
+ proper naming of json fields in application definition
+ application event model (group events like up, down, terminated)
+ application monitoring
+ adding group information to cluster (currently derived from naming convention)
+ improvements to object model
+ ....

Example of a composite application definition is attached to the email.

In a nutshell, how is it implemented:

The application is deployed through an REST API (similar as deploying a cartridge) and SM
and updates the Topology in Orchestration Controller.
(StratosAdmin.deployApplicationDefinition ->
  ServiceUtils.deployCompositeApplicationDefinition ->
    CloudControllerServiceClient.deployCompositeApplicationDefinition ->
      CloudControllerServiceImpl.deployCompositeApplicationDefinition ->
         TopologyBuilder.handleCompositeApplicationCreated ->
             Topology.addConfigCompositeApplication)

The application is translated into an object model to calculate dynamically dependencies (cluster
state, upstream, downstream dependencies)

Dependency checks are performed as part of the periodic monitoring of the ClusterMonitor,
start up dependencies are check as part of the mincheck.drl rule (checkStartupDependencies)
and a new rule (terminatedependency.drl) has been added to perform the termination dependencies
(checkKillDependencies, kill-all, kill-none, kill-dependents).

From: Martin Eppel (meppel)
Sent: Thursday, June 26, 2014 1:42 PM
To: dev@stratos.apache.org; Reka Thirunavukkarasu
Cc: Lakmal Warusawithana
Subject: RE: Separate Branch to work on Cartridge Grouping feature


Hi Reka,

I created the new branch (4.0.0-grouping) with up to date code changes for grouping.

To https://git-wip-us.apache.org/repos/asf/stratos.git
* [new branch]      4.0.0-grouping -> 4.0.0-grouping

netiq@volte64:~/architecture/stratos_repo_delete/stratos$ git branch -a
* master
  remotes/origin/3.0.0-incubating
  remotes/origin/4.0.0
  remotes/origin/4.0.0-grouping
  remotes/origin/4.0.0-incubating
  remotes/origin/4.0.0-incubating-cli
  remotes/origin/4.0.0-incubating-prev
  remotes/origin/HEAD -> origin/master
  remotes/origin/carbon-4.2.0-upgrade
  remotes/origin/carbon-upgrade
  remotes/origin/master
  remotes/origin/stratos-651-cli-test-suite


Thanks

Martin

From: Martin Eppel (meppel)
Sent: Thursday, June 26, 2014 9:23 AM
To: Reka Thirunavukkarasu; dev
Cc: Lakmal Warusawithana
Subject: RE: Separate Branch to work on Cartridge Grouping feature

Hi Reka,

I go ahead and create a branch based on the RC4 label (all my changes are based on it), let
you know once it’s done

Thanks

Martin

From: Reka Thirunavukkarasu [mailto:reka@wso2.com]
Sent: Wednesday, June 25, 2014 11:14 PM
To: dev
Cc: Martin Eppel (meppel); Lakmal Warusawithana
Subject: Re: Separate Branch to work on Cartridge Grouping feature

Thank you all for the responses.
@Martin, Could you create the branch and incorporate your changes to the branch as you have
already started working on this? After you sync up with the branch, others can also to start
on work on that branch. Can we start another thread with the status of this feature? So that
it may help others to follow it up..

Thanks,
Reka

On Thu, Jun 26, 2014 at 11:03 AM, Maria Beckham <mariabeckham77@yahoo.com<mailto:mariabeckham77@yahoo.com>>
wrote:
thanks Dakshika

________________________________
From: Dakshika Jayathilaka <dakshika@wso2.com<mailto:dakshika@wso2.com>>
To: dev <dev@stratos.apache.org<mailto:dev@stratos.apache.org>>
Cc: Maria Beckham <mariabeckham77@yahoo.com<mailto:mariabeckham77@yahoo.com>>
Sent: Wednesday, June 25, 2014 10:30 PM
Subject: Re: Separate Branch to work on Cartridge Grouping feature

+1

@maria: check this: https://www.mail-archive.com/dev@stratos.incubator.apache.org/msg06300.html

Dakshika Jayathilaka
Software Engineer
WSO2, Inc.
lean.enterprise.middleware
0771100911


On Thu, Jun 26, 2014 at 5:19 AM, Reka Thirunavukkarasu <reka@wso2.com<mailto:reka@wso2.com>>
wrote:
Hi Maria,

On Thu, Jun 26, 2014 at 10:40 AM, Maria Beckham <mariabeckham77@yahoo.com<mailto:mariabeckham77@yahoo.com>>
wrote:
What do you mean by cartridge grouping feature?

Could you please refer to "[Discuss] Grouping of services (cartridges)" mail? It was sent
to dev@stratos.incubator.apache.org<mailto:dev@stratos.incubator.apache.org>. In simple
terms, cartridge grouping is to connect cartridges and apply scaling or any decision to a
set of cartridges (cartridge group). It will eventually provide the CAMP support in Aapche
stratos.
Thanks,
Reka

________________________________
From: Reka Thirunavukkarasu <reka@wso2.com<mailto:reka@wso2.com>>
To: dev <dev@stratos.apache.org<mailto:dev@stratos.apache.org>>
Cc: Lakmal Warusawithana <lakmal@wso2.com<mailto:lakmal@wso2.com>>; Martin Eppel
(meppel) <meppel@cisco.com<mailto:meppel@cisco.com>>
Sent: Wednesday, June 25, 2014 10:02 PM
Subject: Separate Branch to work on Cartridge Grouping feature

Hi all,
Can we create $subject as we are kind of doing major changes on Cartridge Grouping feature?
Please refer "[Discuss] Grouping of services (cartridges)" in the mail for more information
on this feature.
We can actively work on this feature in a separate branch until we bring it up to a stabilize
state and then we can merge the changes back to master? WDYT?
Please share you thoughts on this...

Thanks,
Reka

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





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






--
Reka Thirunavukkarasu
Senior Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007<tel:%2B94776442007>

Mime
View raw message