Cloud Cruiser e integrazione delle API di fatturazione di Microsoft Azure

In questo articolo viene descritto in che modo le informazioni raccolte dalle nuove API di fatturazione di Microsoft Azure possono essere utilizzate in Cloud Cruiser per l'analisi e la simulazione dei costi e l’analisi dei flussi di lavoro.

API RateCard di Azure

L'API RateCard fornisce informazioni sui costi da Azure. Dopo l'autenticazione con le credenziali appropriate, è possibile eseguire query all’API per raccogliere i metadati relativi a servizi disponibili in Azure, insieme ai costi associati al proprio ID di offerta.

Di seguito viene fornita una risposta di esempio dell'API in cui sono mostrati i prezzi per l'istanza A0 (Windows):

{
    "MeterId": "0e59ad56-03e5-4c3d-90d4-6670874d7e29",
    "MeterName": "Compute Hours",
    "MeterCategory": "Virtual Machines",
    "MeterSubCategory": "A0 VM (Windows)",
    "Unit": "Hours",
    "MeterRates":
    {
        "0": 0.029
    },
    "EffectiveDate": "2014-08-01T00:00:00Z",
    "IncludedQuantity": 0.0,
    "MeterStatus": "Active"
},

Interfaccia di Cloud Cruiser per l’API RateCard di Azure

Cloud Cruiser può utilizzare le informazioni dell’API RateCard in modi diversi. In questo articolo verrà illustrato come può essere utilizzata per eseguire la simulazione dei costi e l’analisi del carico di lavoro IaaS.

Per illustrare questo caso di utilizzo, si immagini un carico di lavoro di diverse istanze in esecuzione in Microsoft Azure Pack (WAP). L'obiettivo è quello di simulare questo stesso carico di lavoro in Azure e di stimare i costi dell’esecuzione di tale migrazione. Per creare questa simulazione, è necessario eseguire due attività principali:

  1. Importare ed elaborare le informazioni sul servizio raccolte dall'API RateCard. Questa attività viene eseguita anche sulle cartelle di lavoro, dove l'estratto dall'API RateCard viene trasformato e pubblicato in un nuovo piano tariffario. Questo nuovo piano tariffario verrà utilizzato nelle simulazioni per stimare i prezzi di Azure.
  2. Normalizzare i servizi WAP e i servizi di Azure per IaaS. Per impostazione predefinita, i servizi WAP sono basati sulle singole risorse, come CPU, dimensioni della memoria, dimensioni del disco e così via, mentre i servizi di Azure si basano sulle dimensioni dell'istanza, come A0, A1, A2 e così via. Questa prima attività può essere eseguita dal motore ETL di Cloud Cruiser, denominato cartelle di lavoro, in cui queste risorse possono essere inserite in dimensioni di istanza, in modo analogo ai servizi di istanza di Azure.

Importare dati dall’API RateCard

Le cartelle di lavoro di Cloud Cruiser consentono di raccogliere ed elaborare informazioni dall'API RateCard in modo automatico. Le cartelle di lavoro ETL (extract-transform-load) consentono di configurare la raccolta, la trasformazione e la pubblicazione dei dati nel database Cloud Cruiser.

Ogni cartella di lavoro può avere una o più raccolte consentendo di correlare le informazioni provenienti da origini diverse per integrare o estendere i dati di utilizzo. I due screenshot seguenti illustrano come creare una nuova raccolta in una cartella di lavoro esistente e l'importazione di informazioni nella raccolta dall'API RateCard:

Figura 1 - Creazione di una nuova raccolta

Figura 2 - Importare i data dalla nuova raccolta

Dopo aver importato i dati nella cartella di lavoro, è possibile creare più passaggi e processi di trasformazione per modificare e modellare i dati. Poiché in questo esempio l'interesse è incentrato unicamente su IaaS, è possibile usare la procedura di trasformazione per rimuovere le righe o i record non necessari correlati a servizi diversi da IaaS.

Lo screenshot seguente illustra la procedura di trasformazione usata per elaborare i dati raccolti dall'API RateCard:

Figura 3 - Procedura di trasformazione per elaborare i dati raccolti dall'API RateCard

Definizione di nuovi servizi e piani tariffari

Esistono diversi modi per definire i servizi in Cloud Cruiser. Una delle opzioni consiste nell’importare i servizi dai dati di utilizzo. Questo metodo viene in genere utilizzato quando si lavora con i cloud pubblici, in cui i servizi sono già definiti dal provider.

Un piano tariffario è un set di costi o i prezzi che possono essere applicati a diversi servizi, in base alle date di validità oppure a un gruppo di clienti, tra le altre opzioni. I piani tariffari possono essere utilizzati in Cloud Cruiser per creare una simulazione o scenari di simulazione, per comprendere in che modo le modifiche apportate ai servizi possano influire sul costo totale di un carico di lavoro.

In questo esempio, si utilizzeranno le informazioni dell'API RateCard per definire nuovi servizi in Cloud Cruiser. Nello stesso modo, è possibile utilizzare i costi associate ai servizi per creare un nuovo piano tariffario in Cloud Cruiser.

Al termine del processo di trasformazione, è possibile creare un nuovo passaggio e pubblicare i dati dell'API RateCard come nuovi servizi e costi.

Figura 4 - Pubblicazione di dati dall'API RateCard come nuovi servizi e tariffe

Verificare i servizi e i costi di Azure

Dopo la pubblicazione di servizi e costi, è possibile verificare l'elenco dei servizi importati nella scheda Servizi di Cloud Cruiser:

Figura 5 - Verifica dei nuovi servizi

Nella scheda Piani tariffari è possibile controllare il nuovo piano tariffario denominato "AzureSimulation" con i costi importati dall'API RateCard.

Figura 6 - Verifica dei nuovi piani tariffari e delle tariffe associate

Normalizzare i servizi WAP e Azure

Per impostazione predefinita, WAP fornisce informazioni sull'utilizzo basate sull'uso delle risorse di calcolo, memoria e rete. In Cloud Cruiser è possibile definire i servizi direttamente in base all'allocazione o all’utilizzo a consumo di queste risorse. È possibile, ad esempio, impostare un costo di base per ogni ora di utilizzo della CPU o addebitare i GB di memoria allocata a un'istanza.

Per questo esempio, al fine di confrontare i costi tra WAP e Azure, è necessario aggregare l'utilizzo delle risorse in bundle WAP, che possono quindi essere mappati ai servizi di Azure. Questa trasformazione può essere implementata facilmente nelle cartelle di lavoro:

Figura 7 - Trasformazione dei dati WAP in servizi normalizzati

L'ultimo passaggio nella cartella di lavoro consiste nel pubblicare i dati nel database Cloud Cruiser. Durante questo passaggio, i dati di utilizzo sono ora aggregati in servizi (che eseguono il mapping ai servizi di Azure) e associati a costi predefiniti per creare gli addebiti.

Dopo avere completato la cartella di lavoro, è possibile automatizzare l'elaborazione dei dati aggiungendo un'attività nell'utilità di pianificazione e specificando la frequenza e l'ora di esecuzione della cartella di lavoro.

Figura 8 - Pianificazione della cartella di lavoro

Creare report per l'analisi di simulazione dei costi del carico di lavoro

Dopo che l'utilizzo viene raccolto e le spese vengono caricate nel database Cloud Cruiser, è possibile usare il modulo Insights di Cloud Cruiser per creare la simulazione dei costi del carico di lavoro desiderato.

Per illustrare questo scenario, è stato creato il report seguente:

Confronto dei costi

Il grafico superiore illustra un confronto dei costi per servizi confrontando il costo dell'esecuzione del carico di lavoro per ogni specifico servizio tra WAP (blu scuro) e Azure (blu chiaro).

Il grafico inferiore riporta gli stessi dati suddivisi per reparto. Mostra i costi sostenuti da ogni reparto per eseguire il carico di lavoro in WAP e in Azure e le relative differenze nella barra dei risparmi (verde).

API di utilizzo di Azure

Introduzione

Microsoft ha introdotto di recente l'API di utilizzo di Azure, che consente ai sottoscrittori di inserire dati di utilizzo a livello di codice per ottenere informazioni significative sul consumo. Questa è un'ottima notizia per i clienti di Cloud Cruiser che possono usufruire del set di dati più completo disponibile attraverso questa API.

Cloud Cruiser può sfruttare l'integrazione con l'API di utilizzo in diversi modi. La granularità (informazioni di utilizzo ogni ora) e i metadati delle risorse disponibili con l'API offrono il set di dati necessario per supportare modelli Showback o Chargeback flessibili.

In questa esercitazione verrà presentato un esempio di come Cloud Cruiser possa trarre vantaggio dalle informazioni sull'API di utilizzo. In particolare verrà creato un gruppo di risorse in Azure, verranno associati tag per la struttura dei conti e quindi verrà descritto il processo di estrazione ed elaborazione delle informazioni sui tag in Cloud Cruiser.

L'obiettivo finale è riuscire a creare report come quello seguente e ad analizzare i costi e il consumo in base alla struttura del conto popolata dai tag.

Figura 10 - Report con suddivisioni usando i tag

Tag di Microsoft Azure

I dati disponibili attraverso l'API di utilizzo di Azure includono non solo le informazioni sul consumo, ma anche i metadati delle risorse che includono eventuali tag associati. I tag offrono un modo semplice di organizzare le risorse, ma per essere efficaci, è necessario assicurarsi che:

  • I tag vengano applicati correttamente alle risorse in fase di provisioning
  • I tag vengano usati correttamente nel processo Showback/Chargeback per collegare l'utilizzo alla struttura dei conti dell'organizzazione.

Entrambi questi requisiti possono essere complessi, specialmente quando esiste un processo manuale sul lato del provisioning e degli addebiti. I clienti spesso si lamentano di tag errati, non corretti o addirittura mancanti quando li usano e questi errori possono creare molti problemi sul lato degli addebiti.

Cloud Cruiser con la nuova API di utilizzo di Azure può ottenere informazioni sull'aggiunta di tag alle risorse e attraverso uno strumento ETL sofisticato chiamato cartelle di lavoro, correggere i comuni errori di aggiunta tag. Attraverso la trasformazione che sfrutta le espressioni regolari e la correlazione dei dati, Cloud Cruiser riesce a identificare le risorse provviste di tag non corretti e applicare quelli corretti e assicurando l'associazione corretta delle risorse al consumatore.

Sul lato degli addebiti Cloud Cruiser automatizza il processo Showback/Chargeback e può sfruttare le informazioni sui tag per collegare l'utilizzo al consumatore appropriato (reparto, divisione, progetto e così via). Questa automazione offre un notevole miglioramento e può assicurare un processo di addebito coerente e controllabile.

Creazione di un gruppo di risorse con tag in Microsoft Azure

Il primo passaggio in questa esercitazione consiste nel creare un gruppo di risorse nel portale di Azure e quindi creare nuovi tag da associare alle risorse. Per questo esempio verranno creati i seguenti tag: reparto, ambiente, proprietario, progetto.

Lo screenshot seguente illustra un gruppo di risorse di esempio con i tag associati.

Figura 11 - Gruppo di risorse con tag associati nel portale di Azure

Il passaggio successivo è estrarre le informazioni dall'API di utilizzo in Cloud Cruiser. L'API di utilizzo attualmente fornisce risposte nel formato JSON. Segue un esempio dei dati recuperati:

{
  "id": "/subscriptions/bb678b04-0e48-4b44-XXXX-XXXXXXX/providers/Microsoft.Commerce/UsageAggregates/Daily_BRSDT_20150623_0000",
  "name": "Daily_BRSDT_20150623_0000",
  "type": "Microsoft.Commerce/UsageAggregate",
  "properties":
  {
    "subscriptionId": "bb678b04-0e48-4b44-XXXX-XXXXXXXXX",
    "usageStartTime": "2015-06-22T00:00:00+00:00",
    "usageEndTime": "2015-06-23T00:00:00+00:00",
    "meterName": "Compute Hours",
    "meterRegion": "",
    "meterCategory": "Virtual Machines",
    "meterSubCategory": "Standard_D1 VM (Non-Windows)",
    "unit": "Hours",
    "instanceData": "{\"Microsoft.Resources\":{\"resourceUri\":\"/subscriptions/bb678b04-0e48-4b44-XXXX-XXXXXXXX/resourceGroups/DEMOUSAGEAPI/providers/Microsoft.Compute/virtualMachines/MyDockerVM\",\"location\":\"eastus\",\"tags\":{\"Department\":\"Sales\",\"Project\":\"Demo Usage API\",\"Environment\":\"Test\",\"Owner\":\"RSE\"},\"additionalInfo\":{\"ImageType\":\"Canonical\",\"ServiceType\":\"Standard_D1\"}}}",
    "meterId": "e60caf26-9ba0-413d-a422-6141f58081d6",
    "infoFields": {},
    "quantity": 8

  },
},

Importare dati dall'API di utilizzo in Cloud Cruiser

Le cartelle di lavoro di Cloud Cruiser consentono di raccogliere ed elaborare informazioni dall'API di utilizzo in modo automatico. Una cartella di lavoro ETL (extract-transform-load) consente di configurare la raccolta, la trasformazione e la pubblicazione dei dati nel database Cloud Cruiser.

Ogni cartella di lavoro può contenere una o più raccolte. In tal modo è possibile correlare le informazioni provenienti da origini diverse per integrare o estendere i dati di utilizzo. In questo esempio verrà creato un nuovo foglio nella cartella di lavoro del modello di Azure (UsageAPI) e verrà impostata una nuova raccolta per importare informazioni dall'API di utilizzo.

Figura 3 - Uso dei dati API importati nel foglio UsageAPI

Si noti che questa cartella di lavoro ha già altri fogli per importare servizi da Azure (ImportServices) ed elabora le informazioni sul consumo dall'API di fatturazione (PublishData).

Verrà quindi usata l'API di utilizzo per popolare il foglio UsageAPI e correlare le informazioni con i dati di consumo provenienti dall'API di fatturazione nel foglio PublishData.

Elaborazione delle informazioni sui tag provenienti dall'API di utilizzo

Dopo aver importato i dati nella cartella di lavoro, verranno creati passaggi di trasformazione nel foglio UsageAPI per elaborare le informazioni provenienti dall'API. Il primo passaggio consiste nell'usare un processore "JSON split" per estrarre i tag da un campo singolo e creare campi per ogni tag (reparto, progetto, proprietario e ambiente).

Figura 4 - Creare nuovi campi per le informazioni sui tag

Si noti che nel servizio "Reti" mancano le informazioni sui tag (riquadro giallo), ma è possibile verificare che questo servizio fa parte dello stesso gruppo di risorse esaminando il campo ResourceGroupName . Dal momento che ci sono tag per le altre risorse di questo gruppo di risorse, è possibile usare queste informazioni per applicare i tag mancanti a questa risorsa più avanti nel processo.

Il passaggio successivo è creare una tabella di ricerca associando le informazioni dei tag a ResourceGroupName. Questa tabella di ricerca verrà usata nel passaggio successivo per migliorare i dati sul consumo con le informazioni sui tag.

Aggiunta delle informazioni sui tag ai dati di consumo

Ora è possibile passare al foglio PublishData , che elabora le informazioni sul consumo provenienti dall'API di fatturazione e aggiungere i campi estratti dai tag. Questo processo viene eseguito guardando la tabella di ricerca creata nel passaggio precedente, usando ResourceGroupName come chiave per le ricerche.

Figura 5 - Popolamento della struttura dei conti con le informazioni provenienti dalle ricerche

Si noti che sono stati applicati i campi appropriati della struttura dei conti per il servizio "Reti", correggendo l'errore con i tag mancanti. Sono stati anche popolati i campi della struttura dei conti per risorse diverse dal gruppo di risorse di destinazione allo scopo di differenziarli nei report.

Ora è necessario solo aggiungere un passaggio per pubblicare i dati di utilizzo. Durante questo passaggio le tariffe appropriate per ogni servizio definito nel piano tariffario verranno applicate alle informazioni sull'utilizzo con l'addebito risultante caricato nel database.

Il vantaggio è che questo processo si deve eseguire solo una volta. Quando la cartella di lavoro è completata, è necessario solo aggiungerla all'utilità di pianificazione e verrà eseguita su base oraria o giornaliera all'ora pianificata. Poi si tratta solo di creare nuovi report o di personalizzare quelli esistenti, per analizzare i dati per ottenere informazioni significative dall'utilizzo del cloud.

Passaggi successivi

Ulteriori informazioni