VM Scale Set and Capacity Reservations
Epic EMR Scale Set and Capacity Reservations
1. Purpose
This SOP provides operational and maintenance guidelines for the Epic VM Scale Sets (VMSS) and Azure Capacity Reservations.
2. Scope
Applies to cloud engineering, operations, and audit teams managing VM, Scale Set, network, storage, diagnostics, capacity reservations, and monitoring resources for Epic environments.
3. Resource Overview
a. General Info
| Property | Value |
|---|---|
| Region | West US3 |
| Admin User | locadm |
b. Tagging Standards
All resources must be tagged as per the following:
{
"aide-id": "AIDE_0085665",
"item-assignment-group": "EPIC NATIONAL INSTANCE - SPT",
"DR": "No",
"DataClassification": "NONPHI",
"Division": "Optum Health",
"environment": "NONPROD",
"Product": "Epic EMR",
"workspace-id": "testvmdeploy-wus3-01",
"source-code-repo": "https://github.com/optum-tech-compute/ohemr-epic-npd-001",
"working-directory": "westepicnpd/testvmdeploy-wus3",
"platform-managed": "Managed",
"service-tier": "p3",
"risk-record": ".",
"dr-tier": "none"
}
4. Resource Groups
| Resource Group Name | Type/Usage | Notes |
|---|---|---|
| ohemr-rg-epic_storage-npd-wus3-001 | Diags Storage | VM/net diagnostics |
| ohemr-rg-west_epic_clarity_console-pro-wus3-001 | VMSS | Scale set target |
| ohemr-rg-epic-prod-capacityreserve-wus3-01 | Capacity Reserve | Reservation target |
5. Networking
| Property | Value |
|---|---|
| VNet Name | ohemr-vnet-west_epic_main-npd-001 |
| RG | ohemr-rg-epic_network-npd-001 |
6. Diagnostics & Logging
- VM Diagnostics: ohemr-rg-epic_storage-npd-wus3-001
- Network Diagnostics: ohemr-rg-epic_storage-npd-wus3-001
- Event Hub (diagnostic logs):
- RG: lp-central-logging
- Namespace: lp-cl-westus3-eventhub-6a9ba7a4
- Hub Rule: lp-cl-auth-rule
- Namespace Rule: RootManageSharedAccessKey
7. VM Scale Set (VMSS) Configuration
| Property | Value |
|---|---|
| Name | ohemr-vmss-west_epic_clarity_console-pro-wus3-001 |
| Type | windows |
| Single Placement Group | false |
| Resource Group | ohemr-rg-west_epic_clarity_console-pro-wus3-001 |
| Zones | 1, 2, 3 |
| Zone Balance | false |
| Platform Fault Domain Count | 1 |
| Tags | aide-id, DR, DataClassification, Division, GL Code, Product, platform-managed, service-tier, environment, item-assignment-group |
VMSS Tag Example
{
"aide-id": "AIDE_0085665",
"DR": "No",
"DataClassification": "Non PHI",
"Division": "Optum Health",
"GL Code": "44770-01530-USASS800-169950",
"Product": "Epic EMR",
"platform-managed": "true",
"service-tier": "p1",
"environment": "prd",
"item-assignment-group": "EPIC NATIONAL INSTANCE - SPT"
}
VMSS Details
- Single Placement Group: false – allows for scaling beyond 100 VMs, distributed across zones.
- Zone Balance: false – manual balancing required for distribution.
- Platform Fault Domain Count: 1 per zone.
- Platform Managed: true – managed by Azure for patching and health.
8. Capacity Reservation Configuration
| Reservation Group Name | Resource Group | Location | Zones | Tags |
|---|---|---|---|---|
| ohemr-crg-epic-prod-wus3-01 | ohemr-rg-epic-prod-capacityreserve-wus3-01 | West US3 | 1,2,3 | Workspace: tfews-epic-wssweb-westepic-pro-wus3-001 |
Reservations
| Reservation Name | SKU Name | Capacity | Zone |
|---|---|---|---|
| ohemr-cr-d16asv5-az2-wus3-01 | Standard_D16as_v5 | 3 | 2 |
Capacity Reservation Tags Example
{
"platform-managed": "true",
"service-tier": "p1",
"environment": "prd",
"Workspace": "tfews-epic-wssweb-westepic-pro-wus3-001"
}
10. VM/Workload Object Requirements
When defining a VM/workload using this scale set and reservation, include:
"scale_set": {
"name": "ohemr-vmss-west_epic_clarity_console-pro-wus3-001",
"type": "windows",
"single_placement_group": false,
"zones": ["1", "2", "3"],
"zone_balance": false,
"platform_fault_domain_count": 1,
"tags": { /* as above */ }
},
"capacity_reservation": {
"group_name": "ohemr-crg-epic-prod-wus3-01",
"resource_group": "ohemr-rg-epic-prod-capacityreserve-wus3-01",
"location": "West US3",
"zones": ["1", "2", "3"],
"tags": { "Workspace": "tfews-epic-wssweb-westepic-pro-wus3-001" },
"reservations": [
{
"name": "ohemr-cr-d16asv5-az2-wus3-01",
"sku_name": "Standard_D16as_v5",
"capacity": "3",
"zone": "2"
}
]
}
11. Operational Procedures
- Validate scale set and capacity reservation settings during initial deployment and after any scaling event.
- Review capacity usage monthly; adjust reservations based on forecasted workloads.
- Confirm zone alignment between VMSS instances and reservations.
- Ensure tags are up-to-date for all scale set and reservation objects.
- Document any changes in scale set configuration or capacity reservations.
- Monitor health and alerts from Azure for VMSS and reservation failures.
12. Audit & Review
- Quarterly review of VMSS deployment, scaling, and capacity usage.
- Annual review and update of SOP and associated resource documentation.
13. Contacts
| Role | Contact |
|---|---|
| Tech Owner | [add contact] |
| Account Owner | [add contact] |
| Scale Set Owner | [add contact] |
| Reservation Owner | [add contact] |
| Operations Contact | [add contact] |
Addendum: Scale Set and Capacity Reservation Parameter Mapping
1. Purpose
This addendum clarifies how to use capacity_reservation_group, capacity_reservation_group_id, and scale_set_name parameters in deployment maps for VMs, depending on where the capacity reservation is defined relative to the VM deployment.
2. Parameter Usage
a. capacity_reservation_group_id
-
Use this parameter when the reservation is deployed in a different directory or resource group from the VM.
-
Value: Full Azure Resource ID of the reservation.
Example:
/subscriptions/<sub-id>/resourceGroups/<other-rg>/providers/Microsoft.Compute/capacityReservations/<reservation-name>
b. capacity_reservation_group
-
Use this parameter when the reservation is present in the same directory/resource group as the VM.
-
Value: Name of the reservation resource. Example:
"capacity_reservation_group": "ohemr-cr-d16asv5-az2-wus3-01"
c. scale_set_name
- Always include this to reference the scale set the VM is part of.
- Value: Name of the scale set resource.
Example:
"scale_set_name": "ohemr-vmss-west_epic_clarity_console-pro-wus3-001"
3. Deployment Map Example
When reservation is in another directory/resource group:
{
"vms": {
"server1": {
"scale_set_name": "ohemr-vmss-west_epic_clarity_console-pro-wus3-001",
"capacity_reservation_group_id": "/subscriptions/<sub-id>/resourceGroups/other-rg/providers/Microsoft.Compute/capacityReservations/ohemr-cr-d16asv5-az2-wus3-01"
}
}
}
When reservation is in the same directory/resource group:
{
"vms": {
"server1": {
"scale_set_name": "ohemr-vmss-west_epic_clarity_console-pro-wus3-001",
"capacity_reservation_group": "ohemr-cr-d16asv5-az2-wus3-01"
}
}
}
4. Operational Guidance
- Confirm the location of the capacity reservation before mapping.
- Use the resource ID (
capacity_reservation_group_id) for cross-directory/group links. - Use the resource name (
capacity_reservation_group) for local references. - Always specify the target scale set with
scale_set_name. - Include these parameters in the VM deployment map for correct attachment and resource allocation.
5. Audit & Review
- Periodically review deployment maps for correct parameter usage.
- Validate that VM instances are properly attached to both scale sets and reservations.