Scenario DTO breakdown
Scenario DTO overview
A scenario DTO assembles configuration settings that you use to set up and run a plan. To run a plan, you will POST the scenario to a market. For most plans, this will be the real-time market. In the case of a plan-over-plan, this will be the market created from the first scenario.
Turbonomic will then run a plan based on the combination of the scenario and the market state.
These configuration settings fall into one of several groups:
-
Configuration Changes (ConfigChangesApiDTO)
Adding and removing placement policies, removing constraints, and providing automation settings, OS migration settings, reserved instance settings, and associated business units.
-
Load Changes (LoadChangesApiDTO)
Modifications to the current and max utilization values, and peak baseline values.
-
Time-Based Topology Changes (TimeBasedTopologyChangesApiDTO)
Settings to include reserved VMs and periodically add historical workload to the environment.
-
Topology Changes (TopologyChangesApiDTO)
Settings to add, remove, replace, and migrate workload, or to specify the clusters for an Alleviate Pressure plan.
DTO configuration changes
The scenario configuration changes, located in the configChanges
parameter of the ScenarioApiDTO, enable you to perform the
following tasks:
-
addPolicyList
Add a placement policy to the market generated for this plan.
-
automationSettingList
Change one of the available automation plan settings: VM Resize, Host Provision/Suspend, and Storage Provision/Suspend.
-
osMigrationSettingList
For a Migrate to Cloud plan, this parameter will contain the source and destination OS platforms, and their BYOL (Bring Your Own License) status.
-
removeConstraintList
Remove a constraint from the market generated for this plan.
-
removePolicyList
Remove a placement policy from the market generated for this plan.
-
riSettingList
Add information about your reserved cloud instances.
-
subscription
Associate a business unit to the plan.
Adding and Removing Placement Policies
Referenced Endpoint: Policies
When running plans, you might want to see what your environment would look like with or without certain policies enabled, or with a new policy present. You can see the effects of these changes by passing the UUIDs of current policies, or a PolicyApiDTO for a new policy.
Example input (Current Policies):
"addPolicyList": [
{
"uuid": "_VnNS0CsqEemvEL3szcXU1Q",
"uuid": "522a3317-39f5-1a97-3b53-d725927a6ae8",
"uuid": "52672058-a93b-d0a9-bbd9-5acd33f27882"
}
]
Example input (New Policy):
"addPolicyList": [
{
"capacity": null,
"consumerGroup": {
"uuid": "8c17d8e79c3db85ed5d3868de622cb89187849ce",
"displayName": "PMs_Beta DC6\\Cluster-2",
"className": "Group",
"groupType": "PhysicalMachine",
"isStatic": true,
"logicalOperator": "AND"
},
"enabled": true,
"mergeGroups": null,
"mergeType": null,
"name": "DalTestPolMerge",
"displayName": "DalTestPolMerge",
"providerGroup": {
"uuid": "91ff08749fd278925d73b61b0f0f69d79c99fc3a",
"displayName": "PMs_Beta DC6\\Cluster-1",
"className": "Group",
"groupType": "PhysicalMachine",
"isStatic": true,
"logicalOperator": "AND"
},
"type": "MERGE",
"uuid": ""
}
]
Setting Plan Automation Settings
Use the plan automation settings to see the effect of your scenario if VM resizes, Host Provisioning / Suspension, and Storage Provisioning / Suspension are enabled or disabled.
Example Input:
"automationSettingList":[
{
"uuid":"resize",
"displayName":"Resize for VMS disabled",
"value":"false",
"entityType":"VirtualMachine"
},
{
"uuid":"provisionPM",
"displayName":"Provision for PHYSICALMACHINES disabled",
"value":"false",
"entityType":"PhysicalMachine"
},
{
"uuid":"suspendPM",
"displayName":"Suspend for PHYSICALMACHINES disabled",
"value":"false",
"entityType":"PhysicalMachine"
},
{
"uuid":"provisionDS",
"displayName":"Provision for STS disabled",
"value":"false",
"entityType":"Storage"
},
{
"uuid":"suspendDS",
"displayName":"Suspend for STS enabled",
"value":"true",
"entityType":"Storage"
}
]
Additionally, you can use these settings to adjust operational constraints, such as provisioned values for CPU and MEM:
Example Input:
"automationSettingList":[
{
"uuid":"capacity_MemProvisioned",
"displayName":"Mem Overprovisioned Percentage",
"value":"9876.0",
"defaultValue":"1000.0",
"categories":[
"utilizationThresholds"
],
"valueType":"NUMERIC",
"min":1,
"max":1000000,
"entityType":"PhysicalMachine",
"sourceGroupName":"Global"
}
Providing Cloud Reserved Instance Information
Turbonomic enables you to upload RI pricing information specific to the scenario.
Example Input:
"riSettingList": [
{
"uuid": "preferredTerm",
"displayName": "Term",
"value": "YEARS_1",
"entityType": "YEARS_1"
},
{
"uuid": "preferredPaymentOption",
"displayName": "Payment",
"value": "PARTIAL_UPFRONT",
"entityType": "PARTIAL_UPFRONT"
},
{
"uuid": "preferredOfferingClass",
"displayName": "Type",
"value": "STANDARD",
"entityType": "STANDARD"
},
{
"uuid": "preferredCoverage",
"displayName": "Coverage",
"value": "80",
"entityType": "80"
},
{
"uuid": "riCoverageOverride",
"displayName": "RI Coverage Override",
"value": "false",
"entityType": "false"
}
]
Removing Constraints
Referenced Endpoint: Entities
When running plans, you might want to see what your environment would look like with or without certain constraints. For example, if a group of virtual machines was allowed to move to any cluster of your environment.
In order to remove a constraint, you must know its UUID. To get a list of constraints for this entity, execute the
/entities/ENTITY_UUID/constraints
request for the entity whose constraint you wish to remove.
"removeConstraintList":[
{
"constraintType":"ClusterCommodity",
"projectionDay":0,
"target":{
"uuid":"a6d365f4fbf03fb9a2e8cdb29e38045e31cee41b",
"displayName":"Beta DC6_vm",
"className":"VirtualMachine"
}
}
]
Setting OS Migration Settings for a Migrate to Cloud Plan
When performing a Migrate to Cloud plan, you might want to use custom OS migration settings. You can specify both the OS mapping, and the BYOL (bring your own license) status of each OS in the mapping.
Example Input:
"osMigrationSettingList":[
{
"uuid":"linuxTargetOs",
"displayName":"linuxTargetOs",
"value":"LINUX"
},
{
"uuid":"linuxByol",
"displayName":"linuxByol",
"value":"true"
},
{
"uuid":"rhelTargetOs",
"displayName":"rhelTargetOs",
"value":"RHEL"
},
{
"uuid":"rhelByol",
"displayName":"rhelByol",
"value":"false"
},
{
"uuid":"slesTargetOs",
"displayName":"slesTargetOs",
"value":"WINDOWS"
},
{
"uuid":"slesByol",
"displayName":"slesByol",
"value":"true"
},
{
"uuid":"windowsTargetOs",
"displayName":"windowsTargetOs",
"value":"WINDOWS"
},
{
"uuid":"windowsByol",
"displayName":"windowsByol",
"value":"true"
},
{
"uuid":"showMatchSourceToTargetOsOption",
"displayName":"showMatchSourceToTargetOsOption",
"value":"true"
},
{
"uuid":"showByolOption",
"displayName":"showByolOption",
"value":"false"
},
{
"uuid":"showCustomOsOption",
"displayName":"showCustomOsOption",
"value":"true"
},
{
"uuid":"matchToSource",
"displayName":"matchToSource",
"value":"false"
},
{
"uuid":"selectedMigrationProfileOption",
"displayName":"selectedMigrationProfileOption",
"value":"CUSTOM_OS"
}
]
Scenario DTO load changes
The scenario load changes, located in the loadChanges
parameter of the ScenarioApiDTO, make workload utilization changes
that enable you to change the following values:
-
baselineDate
If your plan should be run using historical data, the date of the data to be used.
-
maxUtilizationList
Changes the max utilization values for a group of entities in your plan.
-
peakBaselineList
Changes the peak baseline values for a group of entities in your plan.
-
utilizationList
Changes the utilization values for a group of entities in your plan.
Changing the Baseline Date
Example input:
"baselineDate": 1552622400000
Changing the Utilization For a Group of Entities
Example input:
"utilizationList": [
{
"percentage": -12,
"projectionDay": 0,
"target": {
"displayName": "Global Environment",
"uuid": "Market"
}
}
]
Changing the Maximum Utilization For a Group of Entities
Example input:
"maxUtilizationList": [
{
"maxPercentage": 82,
"projectionDay": 0,
"target": {
"displayName": "All On-prem Hosts",
"className": "Group",
"uuid": "_PE0v-YEUEee_hYfzgV9uYg"
}
},
{
"maxPercentage": 85,
"projectionDay": 0,
"target": {
"displayName": "ACM_datastore",
"className": "Group",
"uuid": "c31a6f99f4409700115fc61fca71e5449ad68700"
}
},
{
"maxPercentage": 77,
"projectionDay": 0,
"target": {
"displayName": "Beta DC6_datastore",
"className": "Group",
"uuid": "5544c35ed3d7fc0d33879d3457c219d7e40fc176"
}
}
]
}
Scenario DTO time-based topology changes
The scenario time-based topology changes, located in the timebasedTopologyChanges
parameter of the ScenarioApiDTO, make
time-dependent topology changes to your scenario, such as:
-
addHistoryVMs
If
true
, Turbonomic will add additional workload to your scenario each month equal to the workload added to the real-time market in the previous month. -
includeReservation
If
true
, Turbonomic will take current reservations and reflect their resource utilization when the scenario runs.
Adding Historical VM Usage and/or Including VM Reservations
Example input:
"timebasedTopologyChanges": [
{
"addHistoryVMs": "true",
"includeReservation": "true"
}
]
Scenario DTO topology changes
The scenario topology changes, located in the topologyChanges
parameter of the ScenarioApiDTO, make topology changes to your
scenario, such as:
-
addList
A list of entities to add to your environment as part of plan configuration.
-
migrateList
A list of entities to move from one set of providers to another as part of plan configuration.
-
relievePressureList
In a Relieve Pressure plan, the source and target clusters.
-
removeList
A list of entities to be removed from your environment as part of plan configuration.
-
replaceList
A list of entities and the templates to replace them in your environment as part of plan configuration.
Adding Workload
Adding workload to a scenario simulates the effect of increased VM or container density in your environment. You can add multiple copies of VM groups or individual VMs.
Example input:
"addList": [
{
"count": 3,
"projectionDays": [
0
],
"target": {
"uuid": "421dd4ce-a4c1-231a-71e7-64fbf598bc65",
"displayName": "AJ_Test",
"className": "VirtualMachine"
}
},
{
"count": 10,
"projectionDays": [
0
],
"target": {
"uuid": "421e503d-d0c0-75f9-8cce-79421924a90d",
"displayName": "olg_test",
"className": "VirtualMachine"
}
},
{
"count": 5,
"projectionDays": [
0
],
"target": {
"uuid": "420f1840-297f-5a39-9543-b72046b9126f",
"displayName": "opensuse_with_stress_template",
"className": "VirtualMachine"
}
},
{
"count": 1,
"projectionDays": [
0
],
"target": {
"uuid": "53523c9a4c5d67962a96f90f59456b0c3e72aca0",
"displayName": "Development67_vm",
"className": "VirtualMachine"
}
}
]
Migrating Workload to the Cloud
Turbonomic includes a special plan to simulate migration of on-prem workload to the cloud, or migration of workloads from one cloud to another. This plan focuses on optimizing your costs on the cloud by choosing the best templates (most adequate compute resources) and regions to host your workloads. If analysis discovers on-prem workloads that are good candidates for Reserved Instances (RIs), then it recommends migrating to those templates, and can even recommend purchasing more RI capacity. For each group of virtual machines to be migrated (source), you must provide a destination.
Example input:
"migrateList": [
{
"projectionDay": 0,
"source": {
"uuid": "4656c0ba6b976d05d1a9470ee673672022e8e926",
"displayName": "ACM_vm",
"className": "VirtualMachine",
"severity": "Major"
},
"destination": {
"uuid": "GROUP-PMsByTargetType_Azure",
"displayName": "PMs_Azure",
"className": "PhysicalMachine"
}
},
{
"projectionDay": 0,
"source": {
"uuid": "fe23c8642efc5ad2ed4fa1cc502dfb179b8dc9d2",
"displayName": "Development DC1_vm",
"className": "VirtualMachine",
"severity": "Major"
},
"destination": {
"uuid": "GROUP-PMsByTargetType_Azure",
"displayName": "PMs_Azure",
"className": "PhysicalMachine"
}
},
{
"projectionDay": 0,
"source": {
"uuid": "f0e26cb417d8143173270b7f01c7213e027cd9e5",
"displayName": "Development DC7_vm",
"className": "VirtualMachine",
"severity": "Major"
},
"destination": {
"uuid": "GROUP-PMsByTargetType_Azure",
"displayName": "PMs_Azure",
"className": "PhysicalMachine"
}
}
]
Relieve Pressure
Including this parameter creates an Alleviate Pressure plan to find out how to migrate workloads from a stressed or hot cluster over to a cluster with more headroom.
Example input:
"relievePressureList": [
{
"projectionDay": 0,
"sources": [
{
"uuid": "11c63ebd77647e7b9c9fb85dd2d4c77464cbeac2",
"displayName": "DC13\\DC13-Cluster",
"className": "Cluster"
}
],
"destinations": [
{
"uuid": "57a4026a69ba4b46ebc430cb62d5c55eeea00695",
"displayName": "DC13\\Physical Hosts_Cluster2 - Intel",
"className": "Cluster"
}
]
}
]
Removing Workload
Removing workload in a scenario configuration simulates the effect of decreased VM or container density in your environment. You can remove VM groups or individual VMs.
Example input:
"removeList": [
{
"projectionDay": 0,
"target": {
"uuid": "5E4F6056-8783-45BC-9070-35CF09457E98",
"displayName": "AH-TestHyperV-VM001",
"className": "VirtualMachine"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "421d62c2-964a-0f4f-32cb-ec4cec9e26db",
"displayName": "Anshuman_MidServer",
"className": "VirtualMachine"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "421e048b-f66b-539c-f743-7dcc7b40943b",
"displayName": "Gilad_XL_Storage_Testing - Pure-1",
"className": "VirtualMachine"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "421e9199-7159-04f2-29fc-6a501f44d1be",
"displayName": "Gilad_XL_Storage_Testing - Pure-2",
"className": "VirtualMachine"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "421d9ec6-ab97-84d0-4b12-2db88ae43e2a",
"displayName": "MS-SQLServer-3",
"className": "VirtualMachine"
}
}
]
Replacing Workload
When you replace workload, you select one or more VMs or containers that you want to change (target), and then you select a template to use in their place.
Example input:
"replaceList": [
{
"projectionDay": 0,
"target": {
"uuid": "421ef003-e152-5a25-6e03-19698340cd01",
"displayName": "centos_imp_7",
"className": "VirtualMachine",
"severity": "Minor"
},
"template": {
"uuid": "_wIBz8Jj4EeC6nYMiQT1jqA",
"displayName": "Microsoft_SQL2008-small",
"className": "VirtualMachineProfile"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "42001807-bc8f-b144-8ff6-eb0d0d32cc7a",
"displayName": "cheuk-OpsMgr-172.113",
"className": "VirtualMachine",
"severity": "Minor"
},
"template": {
"uuid": "_wIBz8Jj4EeC6nYMiQT1jqA",
"displayName": "Microsoft_SQL2008-small",
"className": "VirtualMachineProfile"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "4211806a-65f2-8be1-1015-a4abe1a2ab6f",
"displayName": "dim-dc13amd-6.2.7_01",
"className": "VirtualMachine",
"severity": "Minor"
},
"template": {
"uuid": "_wIBz8Jj4EeC6nYMiQT1jqA",
"displayName": "Microsoft_SQL2008-small",
"className": "VirtualMachineProfile"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "42008beb-264e-b0f6-2295-f3443e4ce7d6",
"displayName": "enOpenShiftInfra1",
"className": "VirtualMachine",
"severity": "Minor"
},
"template": {
"uuid": "_wIBz8Jj4EeC6nYMiQT1jqA",
"displayName": "Microsoft_SQL2008-small",
"className": "VirtualMachineProfile"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "420036f6-27c3-0252-439d-e23bcff63d02",
"displayName": "enOpenShiftInfra2",
"className": "VirtualMachine",
"severity": "Minor"
},
"template": {
"uuid": "_wIBz8Jj4EeC6nYMiQT1jqA",
"displayName": "Microsoft_SQL2008-small",
"className": "VirtualMachineProfile"
}
},
{
"projectionDay": 0,
"target": {
"uuid": "4200ba09-71eb-3084-026e-1770c23abaa4",
"displayName": "enOpenshiftDNS",
"className": "VirtualMachine",
"severity": "Minor"
},
"template": {
"uuid": "_wIBz8Jj4EeC6nYMiQT1jqA",
"displayName": "Microsoft_SQL2008-small",
"className": "VirtualMachineProfile"
}
}
]