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"
        }
      }
    ]