Vai al contenuto

Ottimizza le Risorse con Azure Capacity Reservations e Consumo Automatico

Scopri come le Azure Capacity Reservations possono garantire risorse computazionali ai tuoi VM anche durante periodi di alta domanda.

Azure Capacity Reservations: Ottimizzazione Automatica delle Risorse

Le Azure Capacity Reservations rappresentano una rivoluzionaria funzionalità che consente di riservare risorse computazionali per le tue macchine virtuali (VM) in specifiche regioni o zone di disponibilità. Grazie a questa innovazione, puoi assicurarti che le tue VM abbiano accesso garantito alle risorse necessarie, anche in caso di alta domanda o eventi imprevisti.

Storicamente, l’impostazione di un Capacity Reservations Group doveva essere definita durante il deployment della VM o modificata quando la macchina era disallocata. Tuttavia, con l’introduzione di una nuova politica di Azure, questo passaggio può essere automatizzato, anche se non è stato specificato durante il processo di creazione della VM.

Cos’è una Azure Capacity Reservation?

Le Azure Capacity Reservations permettono di riservare risorse computazionali per le VM in una determinata regione e/o zona di disponibilità. Queste riserve assicurano che le VM abbiano accesso garantito alle risorse, eliminando problemi di scalabilità e garantendo un ambiente sano.

Le Reserved Virtual Machine Instances (RI) lavorano insieme alle riserve di capacità su richiesta: puoi applicare RIs esistenti o future alle riserve di capacità per ottenere sconti sulle RIs. Le RIs disponibili vengono applicate automaticamente alle Capacity Reservation, nello stesso modo in cui vengono applicate alle VM.

Creare Azure Capacity Reservations

Per iniziare a utilizzare le Azure Capacity Reservations, segui questi passaggi:

  • Crea un gruppo di prenotazione della capacità: un contenitore logico che contiene una o più prenotazioni. Puoi assegnare le VM a questo gruppo per usare le risorse riservate.
  • Crea una prenotazione della capacità: riserva una quantità specifica di risorse computazionali per una particolare dimensione di VM, regione e zona di disponibilità. Puoi creare più prenotazioni all’interno di un gruppo di prenotazione.

Utilizzare le Capacity Reservations

Per distribuire le tue VM nella capacità creata, puoi seguire questi approcci:

  • Assegna le VM a un gruppo di prenotazione: puoi assegnare VM esistenti dislocate o nuove VM a un gruppo di prenotazione, sia individualmente che come parte di un set di scalabilità. Le VM utilizzeranno le risorse riservate dal gruppo di prenotazione, a condizione che rispettino i criteri di prenotazione.
  • Sfrutta Azure Policy: Utilizzando Azure Policy, puoi distribuire una politica per sottoscrizione che specifica VM SKU, regione, prenotazione di capacità target e assegnare automaticamente le virtual machine al gruppo di prenotazione della capacità di Azure.

Implementare Azure Policy per le Capacity Reservations

Con i parametri impostati tramite policy per sottoscrizione, le VM del SKU desiderato e della disponibilità verranno automaticamente aggiunte alla prenotazione della capacità specificata:

  • Regione: la regione specificata nella policy.
  • SKU: la dimensione delle VM coperte dalla policy.
  • Zonale: specificare se la prenotazione è zonale.
  • ID della prenotazione della capacità: indirizzo della prenotazione alla quale le VM saranno aggiunte.

Grazie a questa funzionalità, è possibile garantire una quantità minima di capacità computazionale per le VM.

Esempio di Implementazione delle Policy

  1. Crea Capacity Reservation Group con le quantità corrette
  2. Crea la definizione della policy
  3. Assegna la policy per aggiungere automaticamente le VM
  4. Crea Virtual Machines

Creazione delle Prenotazioni in Produzione

Un esempio pratico di configurazione delle prenotazioni in un ambiente di produzione:

  • Regionale: CRGRG1-WUS3-r
  • Zonale: CRGRG1-WUS3-z

Imposta i gruppi di prenotazione della capacità in base all’allineamento regionale o zonale. Ad esempio, se riservi 3 nodi di E2s_v4 nella zona 1 ma tenti di distribuire 10 VM, 3 saranno garantite dalla tua riserva mentre le altre 7 dipenderanno dalla disponibilità.

Definizione di Azure Policy

Per semplificare l’esperienza, puoi creare una singola policy Azure che possa essere riferita per entrambi gli scenari. Ecco un esempio di definizione della policy:

{  "mode": "All",  "parameters": {    "allowedLocations": {"type": "Array", "metadata": {"displayName": "Specific Region that is covered under this CRG", "description": "The list of locations that resource groups can be created in.", "strongType": "location"}},    "listOfCRGSKUs": {"type": "Array", "metadata": {"displayName": "Allowed Size SKUs", "description": "The list of size SKUs that can be specified for virtual machines.", "strongType": "VMSKUs"}},    "CapacityReservationID": {"type": "String", "metadata": {"displayName": "Capacity Reservation ID", "description": "The resource ID for the capacity reservation target. Format: /subscriptions/{SubID}/resourceGroups/{RGName}/providers/Microsoft.Compute/capacityReservationGroups/{CRG Name}."}},    "Zonal": {"type": "String", "metadata": {"displayName": "Is this Zonal?", "description": "Specify if the reservation is zonal."}, "allowedValues": ["true", "false"]}  },  "policyRule": {    "if": {      "allOf": [        {"field": "type", "equals": "Microsoft.Compute/virtualMachines"},        {"field": "location", "in": "[parameters('allowedLocations')]"},        {"field": "Microsoft.Compute/virtualMachines/sku.name", "in": "[parameters('listOfCRGSKUs')]"},        {"field": "Microsoft.Compute/virtualMachines/zones", "exists": "[parameters('Zonal')]"},        {"field": "Microsoft.Compute/virtualMachines/capacityReservation.capacityReservationGroup.id", "notequals": "[parameters('CapacityReservationID')]"}      ]    },    "then": {      "effect": "modify",      "details": {        "roleDefinitionIds": ["/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c"],        "operations": [          {"operation": "addOrReplace", "field": "Microsoft.Compute/virtualMachines/capacityReservation.capacityReservationGroup.id", "value": "[parameters('CapacityReservationID')]"}        ]      }    }  }}

Usa queste linee guida e funzionalità per garantire che le tue VM abbiano sempre accesso alle risorse computazionali necessarie, migliorando la stabilità e scalabilità del tuo ambiente Azure.