Archivi categoria: Azure Governance

Come individuare e ottimizzare i costi del cloud con Azure Cost Management

Una delle principali caratteristiche del cloud è la possibilità di creare nuove risorse con estrema facilità e rapidità. Allo stesso tempo una sfida importante e fondamentale è riuscire a mantenere sempre sotto controllo le spese da sostenere per le risorse create in ambiente cloud. Lo strumento Azure Cost Management consente di individuare facilmente da quali servizi vengono generati i costi, prevenire spese non necessarie e ottimizzare i costi delle risorse. In questo articolo vengono riportate le caratteristiche della soluzione e vengono fornite le indicazioni per poterla utilizzare al meglio al fine di massimizzare e ottimizzare gli investimenti nelle risorse cloud.

Caratteristiche della soluzione

Azure Cost Management è attivo di default e accessibile dal portale Azure per tutte le subscription Microsoft Enterprise Agreement e Pay-As-You-Go. La disponibilità della soluzione per le subscription CSP (Cloud Solution Providers) è prevista per la seconda metà dell’anno. Azure Cost Management contempla i servizi Azure, comprese le reservations, e i costi dati dall’utilizzo di soluzioni di terze parti provenienti dal Marketplace Azure. Tutti i costi riportati sono basati sui prezzi negoziati e i dati vengono aggiornati con una frequenza di quattro ore.

Azure Cost Management consente di effettuare le seguenti operazioni riguardanti le spese delle risorse cloud.

Monitor delle spese del cloud

Grazie a questa soluzione è possibile fornire, ai vari dipartimenti aziendali coinvolti nell’utilizzo delle risorse cloud, visibilità dei costi delle risorse per le quali sono responsabili. Inoltre, si ha la possibilità di entrare nel dettaglio e visualizzare i trend delle spese con una experience interattiva e molto intuitiva. Dalla sezione Cost analysis è possibile visualizzare i costi, con la possibilità di mettere dei filtri sul periodo temporale ed eventualmente raggrupparli secondo differenti parametri.

Figura 1 – Cost analysis – costi accumulati nell’ultimo mese

Impostando per il periodo selezionato la granularità giornaliera è possibile avere un grafico che riporta con precisione i costi sostenuti giorno per giorno.

Figura 2 – Cost analysis – costi sostenuti giornalmente

Azure Cost Management offre anche la possibilità di esportare i dati in formato Excel oppure in CSV, dopo aver impostato la vista necessaria nella sezione Cost analysis.

Figura 3 – Export dei dati della vista creata in Cost analysis

Il file scaricato riporta i dettagli relativi al contesto utilizzato per la generazione del file:

Figura 4 – Summary del foglio Excel generato

Questa funzionalità può essere utile per effettuare analisi di dettaglio che richiedono un consolidamento di queste informazioni con altri dati.

Nel caso ci sia la necessità di maggiori funzionalità in termini di integrazione e personalizzazione è possibile utilizzare Power BI connectors per la creazione di dashboard specifiche e le APIs di Azure Cost Management per elaborare le informazioni con altre soluzioni.

Assegnazione di responsabilità verso i vari team di progetto

Per sensibilizzare i vari team di progetto ad un adeguato utilizzo delle risorse in termini di spesa, si possono definire dei budget. In questo modo si può ottenere una sensibile ottimizzazione dei costi, senza impattare in termini di agilità nella creazione delle risorse .

Figura 5 – Creazione di un budget

In fase di creazione di un budget si definisce la spesa per un determinato periodo temporale e si possono definire degli alert per avvisare i diretti responsabili quando viene raggiunta una determinata percentuale della soglia prestabilita.

Ottimizzazione delle spese

Nonostante si possa optare per far gestire ai vari team i costi delle risorse Azure assegnando loro un budget, non sempre può essere scontato sapere come ottimizzare l’efficienza delle risorse e ridurre i costi. Azure Cost Management è in grado di fornire delle raccomandazioni specifiche per ottenere dei risparmi.

Figura 6 – Advisor recommendations

Nel caso specifico, per ottimizzare i costi delle risorse Azure, viene consigliato l’acquisto di Virtual Machine Reserved Instances (VM RIs), stimando l’effettivo risparmio annuale che si potrebbe ottenere adottando VM RIs.

Azure Cost Management presto sarà arricchito con una nuova funzionalità (attualmente in public preview) che prevede la gestione delle spese sostenute in AWS, con le stesse caratteristiche mostrate per Azure. Questa integrazione consente di semplificare la gestione dei costi in scenari multi-cloud.

Costo della soluzione

Azure Cost Management è possibile utilizzarlo gratuitamente, in tutte le sue funzionalità, per l’ambiente Azure. Per quanto riguarda la gestione dei costi di AWS è previsto, al rilascio definitivo, un addebito pari all’1% della spesa totale gestita per AWS. Per maggiori dettagli in merito al costo della soluzione è possibile consultare la pagina del pricing di Cost Management.

Conclusioni

Azure Cost Management è un ottimo strumento che consente di mantenere una visibilità totale dei costi e pilotare al meglio le spese delle risorse presenti nel cloud. Grazie alla flessibilità di questo strumento, in costante evoluzione, è possibile ottenere il massimo dai propri investimenti nel cloud in modo semplice e intuitivo.

Azure Governance: introduzione alle Azure Policy

L’IT governance è quel processo attraverso il quale è possibile garantire a un’organizzazione un utilizzo efficace ed efficiente delle risorse IT, al fine di poter raggiungere i propri obiettivi. Azure Policy è un servizio disponibile nel cloud pubblico di Microsoft che è possibile utilizzare per creare, assegnare e gestire dei criteri per controllare le risorse presenti in Azure. Le Azure Policy, integrate nativamente nella piattaforma, sono un elemento chiave per la governance dell’ambiente cloud. In questo articolo vengono riportati i principi di funzionamento e le caratteristiche della soluzione.

Negli ambienti Azure si possono trovare differenti subscription sulle quali sviluppano e operano diversi gruppi di operatori. L’esigenza comune è di standardizzare, e in alcuni casi imporre, come vengono configurate le risorse nel cloud. Tutto questo viene fatto per ottenere ambienti che rispettano specifiche normative di conformità, controllare la sicurezza, i costi delle risorse e uniformare il design di differenti architetture. Questi obiettivi si possono ottenere con un approccio tradizionale, che prevede un blocco degli operatori (Dev/Ops) nell’accesso diretto alle risorse cloud (tramite portale, api oppure cli). Questo approccio tradizionale risulta però poco flessibile, in quanto implica una perdita di agilità nel controllare il deployment delle risorse. Utilizzando invece il meccanismo che viene fornito in modo nativo dalla piattaforma Azure è possibile pilotare la governance per ottenere il controllo desiderato, senza impattare sulla velocità, elemento fondamentale nelle operations dell’IT moderno.

Figura 1 – Approccio tradizionale vs cloud-native governance

In ambito Azure Policy è possibile fare quanto in seguito riportato:

  • Attivare policy built-in o configurarle in base alle proprie esigenze.
  • Effettuare in tempo reale la valutazione dei criteri presenti nelle policy e forzarne l’esecuzione.
  • Valutare la compliance delle policy periodicamente oppure su richiesta.
  • Attivare dei criteri di controllo anche sull’ambiente guest delle macchine virtuali (VM In-Guest Policy).
  • Applicare Policy a dei Management Group al fine di ottenere un controllo sull’intera organizzazione.
  • Applicare contemporaneamente più criteri e aggregare i vari stati delle policy.
  • Configurare scope sui quali vengono applicate delle esclusioni.
  • Attivare operazioni per la remediation in tempo reale, anche per risorse già esistenti.

Tutto questo si traduce nella possibilità di applicare e forzare su larga scala dei criteri di compliance e le relative azioni di remediation.

Il meccanismo di funzionamento delle Azure Policy è semplice e integrato nella piattaforma.  Nel momento in cui viene fatta una richiesta di configurazione di una risorsa Azure tramite ARM, questa viene intercettata dal layer contenente il motore che effettua la valutazione delle policy. Tale engine effettua una valutazione sulla base delle policy Azure attive e stabilisce la legittimità della richiesta.

Figura 2 – Principio di funzionamento delle Azure Policy nella creazione di risorse

Lo stesso meccanismo viene poi ripetuto periodicamente oppure su specifica richiesta per valutare lo strato di compliance delle risorse esistenti.

Figura 3 – Principio di funzionamento delle Azure Policy nel controllo delle risorse

In Azure sono già presenti molte policy built-in pronte per essere applicate. Inoltre, in questo repository GitHub è possibile trovare diverse definizioni di Azure Policy, che possono essere utilizzate direttamente oppure modificate in base alle proprie esigenze. La definizione delle Azure Policy è fatta in JSON e segue una struttura ben precisa, descritta in questo documento Microsoft. Si ha inoltre la possibilità di creare delle Initiatives, che sono un insieme di più policy.

Figura 4 – Esempio di definizione di una Azure Policy

Nel momento in cui si possiede la definizione della policy desiderata, è possibile assegnarla a una subscription ed eventualmente in modo più circoscritto ad un Resource Group specifico. Si ha inoltre la possibilità di escludere determinate risorse dall’applicazione della policy.

Figura 5 – Processo di assegnazione di una Azure Policy

In seguito all’assegnazione è possibile valutare lo stato di compliance nel dettaglio e se lo si ritiene necessario applicare delle azioni di remediation.

Figura 6 – Stato di compliance

Figura 7 – Esempio di azione di remediation

 

Conclusioni

Grazie all’utilizzo delle Azure Policy si ha la possibilità di controllare totalmente il proprio ambiente Azure, in modo semplice ed efficace. Statistiche fornite da Microsoft citano che considerando i 100 top Azure Customers, 92 di questi utilizzano le Azure Policy per controllare il proprio ambiente. Questo perché aumentando la complessità e la quantità di servizi su Azure è indispensabile adottare degli strumenti, come Azure Policy, per avere delle politiche efficaci di governance.