DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
| Info | ||||
|---|---|---|---|---|
| ||||
For information on all the properties that can be used in a cartridge group definition, see the Cartridge Group Resource Definition. |
...
Within a group or an application you can define the startup order that needs to be maintained between two or more dependent cartridges or groups.
...
An application JSON is a structured JSON, that you can define the runtime of your application by using, cartridges, cartridge groups, dependencies, artifact repositories and auto-scaling policies. The application JSON can be converted into an application template, that can be reused to deploy the same application with different deployment patterns. The deployment policy is the way to define the deployment pattern (e.g., high availability, disaster recovery, cloud bursting, multi-cloud with 4 nines or 5 nines etc.).
The following is the structure of a basic application JSON definition:
applicationId
alias
components
groups
alias
min/max
group scaling enable/disable
cartridges
min/max
subscribable info
groups
alias
min/max
group scaling enable/disable
cartridges
min/max
subscribable info
cartridges
min/max
subscribable info
dependencies
startup order
termination behavior
dependent scaling In Stratos, deployment policies are used to define the deployment patterns that need to be used. In grouping, deployment policies are supported at the group level or at the cluster level. Global deployment policies provide a single place to define the deployment policies that correspond to the children (nested groups). Thereby, each application will have a single deployment policy, which defines all the children deployment policies as well. There are many advantages of defining global deployment policies, which are as follows:
The following is the basic structure of an application deployment policy:
idapplicationPolicy[1..1]idproviderproperties[1..n]childPolicies[1..n]Descriptions on the terminology used in deployment policy definitions are as follows:
NP1: EC2-US-WEST
NP2: EC2-US-EAST
NP3: OPENSTACK-NY-RegionOne NP1:P1 -> US-WEST -> us-west-1 (N. California)
NP1:P2 -> US-WEST -> us-west-2 (Oregon) Child policy : sample1
Partitions : P1, P2
P1 Max : 4
P2 Max : 3
Algorithm : Round robin
Child policy : sample2
Partitions : P3, P4
P3 Max : 2
P4 Max : 3
Iteration 2 : In cartridge C3 the predicted memory consumption is 85%, which exceeds the threshold. When the above instances count formula is applied, the required instances count for C3 is 85/80 * 1 = 1.06. Therefore, P3 will increase its count to 2. As C2 is dependent on C3 with a 2:1 (C2 minimum instances : C3 minimum instances) ratio, C2 will need to increase its instance count to 4. As C2 is based on the round robin algorithm, the instance count will be increased by 1 in P1 and P2 .
Iteration 3: In this case, C2's predicted CPU consumption is 150%. When the above instances count formula is applied, the required instances count for C2 is 150/60 * 2 = 5. As C2 is based on the round robin algorithm and because the instance count was last adjusted in the P2 partition, the instance count in P1 will be increased by 1. Based on the dependent ratio, the instance count in C3 needs to be increased to 3. As P3 has reached its maximum instance count limit, one instance will be created in P4.
Iteration 4: In this scenario, C3 is under the defined threshold. However, C2 has exceeded the threshold. When the above instances count formula is applied, the required instances count for C2 is 90/60 * 2 = 3. This means that we need to scale down C2's instances to 3 instances. As C2 is based on the round robin algorithm and because the instance count was last adjusted in the P1 partition, the instance count in P2 needs to be scaled down to 1 instance. Based on the dependent ratio, C3 should be in scaled down to 2 instances. As C3 is based on one after the other algorithm, the instance in P4 will be terminated.
Many REST APIs have been exposed to add, fetch and delete metadata in the metadata service. Therefore, when there are multiple cartridges all the instances will invoke REST APIs to publish their details to the metadata service. When information sharing is required between the cartridge instances in a composite application, the respective cartridge instance will invoke a REST API to retrieve the required metadata.
The metadata client is used when third party Stratos components (e.g., Cloud Controller, Auto-scaler, Stratos Manager) need to communicate with the metadata service. However, other clients (e.g., Cartridge Agent) that have the JW OAuth token can communicate with metadata service without the use of the metadata client. The metadata client is a Java API that wraps the client to transform the requests and responses. Therefore, third party Stratos components will be able to use the metadata client to add, fetch and delete metadata in the metadata service. For example, the metadata client will be used when the Git repository URL, which is in the Cloud Controller, needs to be added to the metadata table.
| Info | ||||
|---|---|---|---|---|
| ||||
|
...
Add a network partition.
| Info | ||
|---|---|---|
| ||
For more information on how to add a network partition via REST API, CLI or UI, see Working with Network Partitions , and see Network Partition Resource Definition to learn about all the properties that can be defined in a network partition. |
Add a deployment policy.
| Info | ||
|---|---|---|
| ||
For more information on how to add a deployment policy via REST API, CLI or UI, see Working with Deployment Policies , and see Deployment Policy Resource Definition to learn about all the properties that can be defined in a deployment policy. |
Add an auto-scaling policy.
| Info | ||
|---|---|---|
| ||
For more information on how to add an auto-scaling policy via REST API, CLI or UI, see Working with Auto-scaling Policies , and see Auto-scaling Policy Resource Definition to learn about all the properties that can be defined in an auto-scaling policy. |
Add a cartridge.
| Info | ||
|---|---|---|
| ||
For more information on how to add a cartridge via REST API, CLI or UI, see Working with Cartridges , and see Cartridge Resource Definition to learn about all the properties that can be defined in a cartridge. |
Add a cartridge group.
| Info | ||
|---|---|---|
| ||
For more information on how to add a cartridge group via REST API, CLI or UI, see Working with Cartridge Groups , and see C artridge Group Resource Definition to learn about all the properties that can be defined in a cartridge group. |
Add the application.
| Info | ||
|---|---|---|
| ||
For more information on how to add a application via REST API, CLI or UI, see Working with Applications, and see Application Resource Definition to learn about all the properties that can be defined in an application. |
Add the application policy.
| Info | ||
|---|---|---|
| ||
For more information on how to add a application policies via REST API, CLI or UI, see Working with Application Policies , and see Application Policy Resource Definition to learn about all the properties that can be defined in an application policy. |
Deploy the application.
| Info | ||
|---|---|---|
| ||
For more information on how to deploy an application via REST API, CLI or UI, see Working with Application Deployment. |
After the composite application is deployed, all the clusters that belong to the composite application are brought up by Stratos, based on the dependency information provided in the cartridge group definition and in the application definition.