Archivi categoria: Azure Governance

Scopri le strategie infallibili per ottimizzare i costi su Azure

Le peculiarità e i vantaggi innegabili del cloud computing possono, in determinate situazioni, celare delle insidie se non gestite con la dovuta attenzione. Una gestione dei costi oculata rappresenta uno degli aspetti cruciali della governance del cloud. In questo articolo, verranno esplorati e delineati i principi e le tecniche che si possono impiegare per ottimizzare e minimizzare le spese relative alle risorse implementate nell’ambiente Azure.

La questione dell’ottimizzazione dei costi legati al cloud è un argomento che riscuote un interesse sempre più marcato tra numerosi clienti. Tanto che, per il settimo anno di fila, emerge come la principale iniziativa nel settore cloud, secondo quanto riportato nel rapporto annuale di Flexera del 2023.

Figura 1 – Iniziative riportate nel rapporto di Flexera del 2023

Principi per gestire al meglio i costi

Per una gestione efficace dei costi associati ad Azure, è fondamentale adottare i principi delineati nei paragrafi che seguono.

Progettazione

Un processo di progettazione ben strutturato, che includa un’analisi meticolosa delle necessità aziendali, è essenziale per personalizzare l’adozione delle soluzioni cloud. Diventa quindi cruciale delineare l’infrastruttura da implementare e il modo in cui verrà utilizzata, attraverso un piano di progettazione che mira a ottimizzare l’efficienza delle risorse allocate nell’ambiente Azure.

Visibilità

È vitale dotarsi di strumenti che offrano una visione globale e che permettano di ricevere notifiche relative ai costi di Azure, facilitando così un monitoraggio costante e proattivo delle spese.

Responsabilità

Assegnare i costi delle risorse cloud alle rispettive unità organizzative all’interno dell’azienda è una pratica sagace. Ciò assicura che i responsabili siano pienamente consapevoli delle spese attribuibili al loro team, promuovendo una comprensione approfondita delle spese di Azure a livello organizzativo. A tale scopo, è consigliabile strutturare le risorse Azure in modo da facilitare l’identificazione e l’attribuzione dei costi.

Ottimizzazione

È consigliabile intraprendere revisioni periodiche delle risorse Azure con l’intento di minimizzare le spese ove possibile. Avvalendosi delle informazioni disponibili, è possibile identificare con facilità le risorse sottoutilizzate, eliminare gli sprechi e capitalizzare le opportunità di risparmio sui costi.

Iterazione

È fondamentale che il personale IT sia impegnato in maniera continua nei processi iterativi di ottimizzazione dei costi delle risorse Azure. Questo rappresenta un elemento chiave per una gestione responsabile e efficace dell’ambiente cloud.

Tecniche per ottimizzare i costi

Indipendentemente dagli specifici strumenti e dalle soluzioni impiegate, per affinare la gestione dei costi in Azure, è possibile aderire alle seguenti strategie:

  • Spegnere le risorse inutilizzate, dato che la tariffazione dei diversi servizi Azure si basa sull’effettivo utilizzo delle risorse. Per quelle risorse che non richiedono un funzionamento ininterrotto e che consentono, senza alcuna perdita di configurazioni o dati, una disattivazione o una sospensione, è possibile implementare un sistema di automazione. Questo sistema, regolato da una programmazione predefinita, facilita l’ottimizzazione dell’utilizzo e, di conseguenza, una gestione più economica delle risorse stesse.
  • Dimensionare adeguatamente le risorse, consolidando i carichi di lavoro e intervenendo proattivamente sulle risorse sottoutilizzate, permette di evitare sprechi e di garantire un utilizzo più efficiente e mirato delle capacità disponibili.
  • Per le risorse utilizzate in modo continuativo nell’ambiente Azure, valutare l’opzione delle Reservations può rivelarsi una strategia vantaggiosa. Le Azure Reservations offrono la possibilità di beneficiare di una significativa riduzione dei costi, che può arrivare fino al 72% rispetto alle tariffe pay-as-you-go. Questo vantaggio è ottenibile impegnandosi a pagare per l’utilizzo delle risorse Azure per un periodo di uno o tre anni. Tale pagamento può essere effettuato in anticipo o su base mensile, senza alcun costo aggiuntivo. L’acquisto delle Reservations può essere effettuato direttamente dal portale Azure ed è disponibile per i clienti con i seguenti tipi di abbonamento: Enterprise Agreement, Pay-As-You-Go e Cloud Solution Provider (CSP).
  • Per attenuare ulteriormente i costi associati ad Azure, è opportuno considerare l’implementazione dell’Azure Hybrid Benefit. Questo vantaggio consente di realizzare un notevole risparmio, in quanto Microsoft permette di sostenere unicamente i costi relativi all’infrastruttura Azure, mentre le licenze per Windows Server o per SQL Server sono coperte da un contratto di Software Assurance o da una subscription già esistente.

L’Azure Hybrid Benefit può essere esteso anche ad Azure SQL Database, ai SQL Server installati su macchine virtuali Azure e alle SQL Managed Instances. Questi benefici facilitano la transizione verso soluzioni cloud, offrendo fino a 180 giorni di diritto di doppio utilizzo, e contribuiscono a valorizzare gli investimenti preesistenti in termini di licenze SQL Server. Per approfondire le modalità di utilizzo dell’Azure Hybrid Benefit per SQL Server, si invita a consultare le FAQ presenti in questo documento. È importante notare che questo vantaggio è applicabile anche alle sottoscrizioni di RedHat e SUSE Linux, ampliando ulteriormente le opportunità di risparmio e ottimizzazione dei costi.

L’Azure Hybrid Benefit può essere combinato con le Azure Reserved VM Instances, creando un’opportunità di risparmio significativo che può toccare l’80% del totale, specialmente quando si opta per un acquisto di Azure Reserved Instance della durata di 3 anni. Questa sinergia non solo rende l’investimento più economico, ma massimizza anche l’efficienza operativa.

  • Considerare l’integrazione di nuove tecnologie e l’applicazione di ottimizzazioni architetturali è cruciale. Questo processo implica la selezione del servizio Azure più appropriato per le specifiche esigenze dell’applicazione in questione, garantendo non solo un allineamento tecnologico ottimale, ma anche una gestione dei costi più efficiente.
  • Allocare e de-allocare risorse in modo dinamico è fondamentale per rispondere alle fluttuanti esigenze di prestazioni. Questo approccio è noto come “autoscaling”, un processo che facilita l’allocazione flessibile delle risorse per incontrare le specifiche necessità di prestazioni in ogni momento. Con l’intensificarsi del carico di lavoro, un’applicazione potrebbe necessitare di risorse supplementari per mantenere i livelli di prestazioni desiderati e adempiere agli SLA (Service Level Agreement). Al contrario, quando la domanda si riduce e le risorse aggiuntive non sono più indispensabili, queste possono essere de-allocate per minimizzare i costi. L’autoscaling capitalizza sull’elasticità degli ambienti cloud, permettendo non solo una gestione dei costi più efficace, ma anche riducendo il carico amministrativo, poiché le risorse possono essere gestite in modo più fluido e con meno interventi manuali.
  • Per gli ambienti dedicati a test e sviluppo, è consigliabile considerare l’utilizzo delle sottoscrizioni Dev/Test, che offrono la possibilità di accedere a sconti significativi sulle tariffe di Azure. Queste sottoscrizioni possono essere attivate nell’ambito di un contratto di Enterprise Agreement, facilitando così una gestione dei costi più vantaggiosa e una sperimentazione più agile e economica durante le fasi di sviluppo e test.

Conclusioni

L’adozione di un approccio metodologico nella gestione dei costi del cloud, unitamente all’impiego di strategie adeguate, rappresenta un pilastro fondamentale per navigare con successo nella complessa sfida della gestione economica del cloud. Attingendo dai principi e dalle tecniche delineate in questo articolo, gli utenti possono non solo ottimizzare le spese, ma anche valorizzare al massimo il loro investimento nel cloud, garantendo un equilibrio tra costi e benefici.

Rivoluziona la gestione dei costi cloud con l’IA: scopri il nuovo copilot di Microsoft Cost Management!

Nell’era digitale, il cloud computing è diventato una componente essenziale per molte aziende, offrendo flessibilità, scalabilità e agilità. Tuttavia, con l’adozione sempre più diffusa del cloud, la gestione dei costi associati è diventata una sfida sempre più complessa e le aziende sono alla ricerca di soluzioni innovative per ottimizzare le loro spese nel cloud. In questo contesto, Microsoft ha introdotto “Copilot” in Cost Management, una nuova funzionalità basata sull’intelligenza artificiale, progettata per aiutare le aziende a navigare in questo panorama complesso. In questo articolo vengono riportate le principali caratteristiche di questa integrazione, che promette di rivoluzionare il modo in cui le aziende gestiscono ed ottimizzano le loro spese per le risorse cloud.

Una visione chiara dei costi con Microsoft Cost Management

Microsoft Cost Management, disponibile direttamente dal portale Azure, offre una visione dettagliata dei costi operativi, permettendo alle aziende di comprendere meglio come vengono spesi i loro fondi. Questo strumento fornisce informazioni dettagliate sulle spese, evidenziando eventuali anomalie e modelli di spesa. Inoltre, permette di impostare budget, condividere i costi tra diversi team e identificare opportunità di ottimizzazione.

L’IA al servizio della gestione dei costi

Con l’introduzione dell’IA in Microsoft Cost Management, gli utenti possono ora fare domande in linguaggio naturale per ottenere rapidamente le informazioni di cui hanno bisogno. Ad esempio, per comprendere una fattura recente, è possibile chiedere una suddivisione dettagliata delle spese. L’IA fornirà una panoramica delle diverse categorie di spesa e del loro impatto sul totale.

Oltre a fornire una panoramica dei costi, l’IA offre suggerimenti su come analizzare ulteriormente le spese. Gli utenti possono confrontare le fatture mensili, esaminare le spese specifiche o indagare su eventuali anomalie. L’IA fornisce anche informazioni dettagliate su eventuali variazioni nei costi e suggerisce azioni correttive.

L’IA integrata in Microsoft Cost Management interpreta le intenzioni dell’utente e recupera i dati necessari da diverse fonti. Queste informazioni vengono poi presentate a un modello di linguaggio avanzato che genera una risposta. È importante notare che i dati recuperati non vengono utilizzati per addestrare il modello, ma solo per fornire il contesto necessario per generare una risposta pertinente.

Prospettive future

Le capacità dell’IA in Microsoft Cost Management sono in continua evoluzione. In futuro, gli utenti potranno sfruttare simulazioni e modellazioni “what-if” per prendere decisioni informate. Ad esempio, potranno esplorare come varieranno i costi di archiviazione in caso di crescita aziendale o valutare l’impatto di spostare risorse da una regione all’altra.

Figura 1 – Esempio di simulazione e modellazione “what-if”

Benefici

L’introduzione dell’AI in Microsoft Cost Management permette di ottenere i seguenti benefici:

  • Maggiore visibilità e controllo dei costi: con una maggiore visibilità e comprensione dei costi delle risorse cloud, le organizzazioni possono prendere decisioni in modo più consapevole e gestire meglio i loro budget.
  • Efficienza operativa: l’uso dell’IA per analizzare e interpretare i dati riduce il tempo e lo sforzo necessari per ottenere intuizioni preziose. Inoltre, gli utenti possono porre domande specifiche in linguaggio naturale e ricevere risposte dettagliate, personalizzate per le loro esigenze.

Figura 2 – Esempi di domande

  • Ottimizzazione: con suggerimenti e raccomandazioni guidati dall’IA, le organizzazioni possono identificare e attuare opportunità di ottimizzazione per ridurre ulteriormente i costi.

Conclusione

L’integrazione di Copilot in Microsoft Cost Management rappresenta un passo avanti significativo nella gestione dei costi del cloud. Con l’aiuto dell’intelligenza artificiale, le aziende ora hanno uno strumento potente per ottimizzare le loro spese e assicurarsi di operare al massimo della loro efficienza. Con l’evoluzione costante dell’intelligenza artificiale, si prospettano ulteriori e interessanti innovazioni nell’ambito della gestione dei costi del cloud e non solo.

La nuova soluzione per gestire e governare gli aggiornamenti dei sistemi

Le comuni pratiche in materia di sicurezza informatica prevedono, tra i molteplici accorgimenti, l’applicazione tempestiva degli aggiornamenti software. Infatti, questa attività risulta di fondamentale importanza anche per eliminare le vulnerabilità che permettono l’attuazione di specifici attacchi informatici sui sistemi aziendali. Per facilitare l’applicazione delle patch, relative al sistema operativo, alle macchine della propria infrastruttura, Microsoft ha recentemente annunciato la disponibilità di una nuova soluzione denominata “Update management center”. In questo articolo vengono riportate le caratteristiche e le peculiarità di questa soluzione che aiuta a semplificare la gestione degli aggiornamenti e a raggiungere la conformità per quanto concerne questi aspetti legati alla sicurezza.

Cosa consente di fare questa soluzione?

Update management center è la nuova soluzione che aiuta a gestire e a governare centralmente gli aggiornamenti di tutte le macchine presenti nella propria infrastruttura. Infatti, mediante questa soluzione risulta possibile:

  • Controllare la conformità degli aggiornamenti per l’intero parco macchine.
  • Distribuire istantaneamente aggiornamenti critici per proteggere i propri sistemi oppure pianificare l’installazione all’interno di una finestra di manutenzione definita.
  • Sfruttare le differenti opzioni di applicazione delle patch, come Automatic VM guest patching in Azure, hot patching, e le pianificazioni delle manutenzioni definite dal cliente.

Ad oggi, Update management center è in grado di gestire e governare gli aggiornamenti su:

  • Sistemi operativi Windows e Linux.
  • Macchine che risiedono in Azure, in locale e su altre piattaforme cloud, grazie ad Azure Arc.

Il diagramma seguente illustra come Update management center effettua la valutazione e l’applicazione degli aggiornamenti su tutti i sistemi Azure e sui server abilitati per Arc, sia Windows sia Linux.

Figura 1 – Panoramica di Update management center

Update Management Center si basa su una nuova Azure extension progettata per fornire tutte le funzionalità necessarie per interagire con il sistema operativo per quanto riguarda la valutazione e l’applicazione degli aggiornamenti. Questa extension viene installata automaticamente all’avvio di qualsiasi operazione di Update Management Center. La distribuzione dell’extension è supportata sulle macchine virtuali di Azure oppure sui server abilitati per Arc e viene installata e gestita utilizzando:

  • L’agente Windows oppure l’agente Linux per le macchine virtuali di Azure.
  • L’agente Azure Arc per computer o server fisici non Azure (sia Linux, sia Windows).

L’installazione e la configurazione dell’extension viene gestita dalla soluzione e non è necessario alcun intervento manuale, purché gli agenti delle macchine virtuali di Azure o gli agenti per Azure Arc siano funzionanti. L’extension dell’Update management center esegue il codice in locale sul computer per interagire con il sistema operativo e consente di:

  • Recuperare le informazioni di valutazione sullo stato degli aggiornamenti di sistema, specificati dall’agente di Windows Update oppure dal Linux package manager*.
  • Avviare il download e l’installazione degli aggiornamenti approvati dal client Windows Update oppure dal Linux package manager.
  • Ottenere tutte le informazioni sui risultati dell’installazione degli aggiornamenti, le quali vengono riportate nell’Update management center dall’extension e sono disponibili per essere analizzate tramite Azure Resource Graph. La visualizzazione dei dati delle valutazioni è possibile consultarla per gli ultimi sette giorni ed i risultati riguardanti l’installazione degli aggiornamenti è disponibile per gli ultimi trenta giorni.

* Le macchine erogano le segnalazioni sugli aggiornamenti in base all’origine con cui sono configurate per la sincronizzazione. Windows Update Agent (WUA) su macchine Windows può essere configurato per far riferimento a Windows Server Update Services (WSUS) oppure a Microsoft Update. Le macchine Linux possono essere configurate per far riferimento a un repository di pacchetti YUM o APT locale oppure pubblico.

Benefici della soluzione

Update management center funziona senza la necessità di fare attività di onboarding, in quanto è una soluzione che si basa nativamente sulla piattaforma Azure Compute e su Azure Arc-enabled servers. Questa soluzione prenderà presto il posto di Update Management di Azure Automation, rimuovendo qualsiasi dipendenza da Azure Automation e da Log Analytics.

Nei paragrafi seguenti vengono sintetizzati i principali punti di forza della nuova soluzione.

Visibilità centralizzata degli aggiornamenti

Grazie a questa soluzione è possibile consultare in modo centralizzato, direttamente dal portale Azure, lo stato di compliance rispetto agli aggiornamenti richiesti e distribuiti sui vari sistemi.

Integrazione nativa e zero onboarding

Trattandosi di una soluzione creata come funzionalità nativa della piattaforma Azure, non è presente nessuna dipendenza da Log Analytics e da Azure Automation. Inoltre, la soluzione supporta una totale integrazione con le Azure Policy.

Integrazione con i ruoli e le identità di Azure

La soluzione consente di ottenere un controllo di accesso granulare a livello di risorsa. Il tutto è basato su Azure Resource Manager e quindi consente l’utilizzo di RBAC e dei ruoli basati su ARM in Azure.

Elevata flessibilità nella gestione degli aggiornamenti

La possibilità di controllare automaticamente gli aggiornamenti mancanti oppure su richiesta, così come la capacità di agire installando immediatamente gli aggiornamenti oppure di pianificarli per una data successiva sono elementi che garantiscono una elevata flessibilità. Inoltre, è consentito mantenere aggiornati i sistemi adottando nuove tecniche, come ad esempio l’automatic VM guest patching in Azure e l’hotpatching.

Integrazione con altre soluzioni

In questo contesto è opportuno considerare che Microsoft offre, oltre a questa soluzione, anche altre funzionalità per gestire gli aggiornamenti per le macchine virtuali di Azure.  Queste funzionalità è necessario considerarle come parte integrante della propria strategia generale per la gestione degli aggiornamenti. Tra le varie funzionalità troviamo:

  • Automatic OS image upgrade
  • Automatic VM guest patching
  • Automatic extension upgrade
  • Hotpatch
  • Maintenance control
  • Scheduled events

Per approfondire tutte queste soluzioni riportate è possibile consultare la documentazione ufficiale Microsoft.

Conclusioni

Questa nuova funzionalità, totalmente integrata nella piattaforma Azure ed in grado di sfruttare le potenzialità di Azure Arc permette di mantenere aggiornati tutti i sistemi della propria infrastruttura in modo semplice, diretto e con un effort amministrativo molto ridotto. Inoltre, garantisce una visibilità totale sulla compliance degli update sia per i sistemi Windows sia per i sistemi Linux, elemento fondamentale per aumentare la security posture della propria infrastruttura.

Come affrontare la migrazione del datacenter in Azure

L’adozione di soluzioni e servizi nel cloud pubblico è in rapido e costante aumento e questo aumento è dato principalmente dal fatto che molte organizzazioni si sono rese conto che spostare workload esistenti in Azure può portare vantaggi significativi. Tra questi troviamo la capacità di distribuire rapidamente le applicazioni consentendo di beneficiare di un’infrastruttura presente su scala globale, la riduzione dei requisiti e dei costi di manutenzione e l’ottimizzazione delle prestazioni. In questo articolo saranno esaminati i principali aspetti da prendere in considerazione al fine di adottare un approccio strategico per quanto riguarda la migrazione della propria infrastruttura IT in Azure e come, grazie proprio a questo approccio, sia possibile trarre beneficio di tutti i vantaggi del cloud pubblico di Microsoft.

Principali fattori scatenanti per la migrazione

Tra i principali aspetti che portano i clienti ad affrontare una migrazione dei propri workload verso soluzioni cloud troviamo:

  • le scadenze dei contratti dei data center in uso;
  • la necessità di effettuare velocemente integrazioni a fronte di nuove acquisizioni;
  • l’esigenza urgente di capacità e di risorse;
  • il bisogno di mantenere aggiornato il software e l’hardware in utilizzo;
  • la volontà di rispondere efficacemente a potenziali minacce alla sicurezza;
  • le esigenze riguardanti la conformità (ad es. GDPR);
  • la necessità di innovare le proprie applicazioni e di renderle disponibili più velocemente;
  • la fine del fine del supporto software per determinati prodotti e la necessità di ottenere gratuitamente aggiornamenti di sicurezza estesi, sia per Windows Server 2008/R2, sia per Windows Server 2012/R2, oltre alle versioni corrispondenti di SQL Server.

Figura 1 – Principali fattori scatenanti per la migrazione

Ritrovarsi in almeno uno di questi fattori scatenanti che potrebbero avviare un processo di migrazione è molto comune. Per intraprendere nel migliore dei modi questa migrazione è necessario tenere in considerazione quanto riportato nei paragrafi successivi.

Il percorso di adozione di soluzioni cloud

Nel percorso di adozione di soluzioni cloud definito nel Microsoft Cloud Adoption Framework per Azure emergono sei azioni principali che è opportuno prendere in considerazione:

  • Strategy definition: definizione della “business justification” e dei risultati attesi.
  • Plan: allineamento del piano di adozione del cloud ai risultati aziendali, tramite:
    • Inventario del patrimonio digitale: catalogazione dei workload, applicazioni, origini dati, macchine virtuali e altre risorse IT e valutazioni per determinare il modo migliore per ospitarli nel cloud.
    • Creazione di un piano di adozione del cloud assegnando la priorità ai workload in base al loro impatto aziendale e alla complessità tecnica.
    • Definizione delle competenze e delle esigenze di supporto, per garantire che l’azienda sia preparata per il cambiamento e per le nuove tecnologie.
  • Ready: preparazione dell’ambiente cloud.
  • Adopt: implementazione delle modifiche desiderate nei processi IT e aziendali. L’adozione può avvenire tramite:
    • Migrazione: si concentra sullo spostamento delle applicazioni locali esistenti nel cloud in base a un processo incrementale.
    • Innovazione: si concentra sulla modernizzazione del patrimonio digitale per guidare l’innovazione aziendale e di prodotto. I moderni approcci all’implementazione, alle operations e alla governance dell’infrastruttura consentono di colmare rapidamente il divario tra lo sviluppo e le operations.
  • Govern: valutazione ed implementazione delle best practices in ambito governance.
  • Manage: implementazione delle linee operative e delle best practice.

Azure Landing Zone

Indipendentemente dalla strategia di migrazione che si decide di adottare è opportuno predisporre la Landing Zone, che rappresenta, nel percorso di adozione del cloud, la destinazione in ambiente Azure. Si tratta di un’architettura con scalabilità orizzontale progettata per consentire al cliente di gestire ambienti cloud funzionali, mantenendo al tempo stesso le procedure consigliate per la sicurezza e la governance. L’architettura della Landing Zone deve essere definita in base ai requisiti aziendali e ai requisiti tecnici necessari.

Figura 2 – Esempio concettuale di una Azure landing zone

Sono disponibili diverse opzioni per implementare la Landing Zone, grazie alle quali sarà possibile soddisfare le esigenze di deployment ed operatività del portfolio cloud.

Un approccio strutturato e metodologico e le strategie di migrazione

Diversi sono i percorsi di adozione delle soluzioni in Azure. Per affrontare nel migliore dei modi ciascuno di questi percorsi è consigliato elaborare a priori un business case completo ed un piano di progetto, contenente le informazioni sui vantaggi e sui costi (TCO) dello spostamento dei workload sul cloud Microsoft Azure, nonché raccomandazioni su come ottimizzare il modello di utilizzo dei servizi Microsoft Azure.

Figura 3 – Percorsi di adozione delle soluzioni cloud

Basandosi sulla strategia cloud dell’azienda e sugli obiettivi generali di business, è opportuno esaminare la distribuzione e l’utilizzo dei workload in uso e valutare il relativo stato “cloud-ready” per determinare le opzioni migliori e le modalità più opportune (lift&shift, refactor, rearchitect e rebuild) in ottica di consolidamento e migrazione ai servizi cloud di Microsoft Azure.

Figura 4 – Possibili strategie di migrazione

* Queste strategie di migrazione sono riportate da Gartner research. Gartner definisce anche una quinta strategia chiamata " Replace". 

Nei paragrafi seguenti vengono riportate le principali strategie di migrazioni che possono risultare utili.

Rehost application (i.e., lift & shift)

Si tratta di ridistribuire un’applicazione esistente su una piattaforma cloud senza modificarne il codice. L’applicazione viene migrata “così com’è”, il che fornisce vantaggi cloud di base senza dover affrontare un rischio elevato e senza dover sostenere i costi necessari per apportare modifiche al codice applicativo.

Questa tecnica di migrazione viene solitamente utilizzata quando:

  • Si ha la necessità di spostare rapidamente le applicazioni da on-premise al cloud
  • Quando l’applicazione è necessaria, ma l’evoluzione delle sue capacità non risulta una priorità aziendale
  • Per applicazioni che sono già state progettate per sfruttare la scalabilità di Azure IaaS
  • In presenza di requisiti specifici dell’applicazione oppure della base dati, che possono essere soddisfatti solo utilizzando delle macchine virtuali IaaS in ambiente Azure.
Esempio

Spostamento di un’applicazione line of business a bordo di macchine virtuali che risiedono in ambiente Azure.

Refactor application (i.e., repackaging)

In questa strategia di migrazione sono previste modifiche minimali del codice dell’applicazione oppure modifiche alle configurazioni, necessarie per ottimizzare l’applicazione per Azure PaaS e sfruttare al meglio il cloud.

Questa tecnica di migrazione viene solitamente utilizzata quando:

  • Si vuole sfruttare una base di codice esistente
  • La portabilità del codice è un elemento importante
  • L’applicazione può essere facilmente pacchettizzata per essere eseguita in ambiente Azure
  • L’applicazione deve essere più scalabile e distribuibile in modo veloce
  • Si vuole promuovere l’agilità aziendale mediante un’innovazione continua (DevOps)
Esempio

Si effettua il refactoring di una applicazione esistente adottando servizi come App Service oppure Container Services. Inoltre, si effettua il refactoring di SQL Server in Azure SQL Database.

Rearchitect application

La tecnica di ri-progettazione consiste nel modificare oppure estendere l’architettura e la base di codice dell’applicazione esistente, andandola ad ottimizzare per la piattaforma cloud e garantendo così una migliore scalabilità.

Questa tecnica di migrazione viene solitamente utilizzata quando:

  • L’applicazione necessita di importanti revisioni per incorporare nuove funzionalità oppure per lavorare in modo più efficace su una piattaforma cloud
  • Si vogliono sfruttare gli investimenti fatti nelle applicazioni esistenti
  • Si ha la necessità di ridurre al minimo la gestione delle VMs nel cloud
  • Si intende soddisfare i requisiti di scalabilità in modo conveniente
  • Si vuole promuovere l’agilità aziendale mediante un’innovazione continua (DevOps)
Esempio

Scomposizione di un’applicazione monolitica in microservizi in ambiente Azure che interagiscono tra loro e sono facilmente scalabili.

Rebuild application

Il rebuild dell’applicazione da zero prevede l’utilizzo di tecnologie cloud-native su Azure PaaS.

Questa tecnica di migrazione viene solitamente utilizzata quando:

  • Si ha la necessita di uno sviluppo rapido e l’applicazione esistente è troppo limitante in termini di funzionalità e durata
  • Si vogliono sfruttare le nuove innovazioni presenti nel cloud come serverless, Intelligenza artificiale (AI) e IoT
  • Si dispone delle competenze necessarie per creare nuove applicazioni cloud-native
  • Si vuole promuovere l’agilità aziendale mediante un’innovazione continua (DevOps)
Esempio

Creazione di applicazioni green field con tecnologie cloud native innovative, come Azure Functions, Logic Apps, Cognitive Service, Azure Cosmos DB ed altro ancora.

Azure Cloud Governance

Nell’adozione di successo dei servizi nel cloud pubblico, oltre ad essere richiesto un approccio strutturato e metodologico, diventa fondamentale adottare una precisa strategia per migrare non solo le applicazioni, ma anche le pratiche di governance e di gestione, adeguandole in modo opportuno.

Per questa ragione diventa fondamentale mettere in atto un processo di Cloud Technical Governance attraverso il quale è possibile garantire al Cliente un utilizzo efficace ed efficiente delle risorse IT in ambiente Microsoft Azure, al fine di poter raggiungere i propri obiettivi. Per farlo è necessario applicare controlli e misurazioni utili ad aiutare il cliente a mitigare i rischi e creare dei confini. Le politiche di governance, all’interno dell’ambiente del Cliente, fungeranno anche da sistema di allarme preventivo per rilevare potenziali problemi.

Conclusioni

Il processo di trasformazione digitale che interessa le realtà aziendali spesso prevede la migrazione dei workload ospitati presso i propri datacenter verso il cloud per ottenere migliori risultati per quanto concerne la governance, la sicurezza e l’efficienza dei costi. L’innovazione data dalla migrazione verso il cloud diventa frequentemente una priorità aziendale, per questo motivo è opportuno adottare un proprio approccio strutturato, per affrontare vari scenari di migrazione, che consente di ridurre la complessità ed i costi.

Azure Governance: come controllare le configurazioni dei sistemi in ambienti ibridi e multicloud

Diverse sono le realtà che stanno investendo in tecnologie ibride e multicloud per ottenere una elevata flessibilità, che consente di innovare e di soddisfare le esigenze aziendali in continua evoluzione. In questi scenari, ai clienti si presenta la sfida di utilizzare in modo efficiente le risorse IT, al fine di raggiungere al meglio i propri obiettivi di business, attuando un processo di IT governance strutturato. Questo risultato è possibile raggiungerlo più agilmente se si dispone di soluzioni che, in modo centralizzato, consentono di inventariare, organizzare ed applicare delle policy di controllo sulle proprie risorse IT ovunque si trovino. La soluzione Azure Arc coinvolge diverse tecnologie con l’obiettivo di sostenere scenari ibridi e multicloud, dove i servizi e i principi di gestione di Azure vengono estesi a qualsiasi infrastruttura. In questo articolo si approfondirà come, grazie all’adozione delle Azure Guest Configuration Policy è possibile controllare le configurazioni dei sistemi in esecuzione in Azure, nei datacenter locali oppure presso altri cloud provider.

Il principio alla base di Azure Arc

Il principio che sta alla base di Azure Arc è quello di estendere le pratiche di gestione e di governance di Azure anche ad ambienti differenti e di adottare soluzioni tipicamente cloud, come tecniche DevOps (infrastructure as code), anche per gli ambienti on-premises e multicloud.

Figura 1 – Panoramica di Azure Arc

L’abilitazione dei sistemi ad Azure Arc

L’abilitazione dei server ad Azure Arc permette di gestire i server fisici e le macchine virtuali che risiedono all’esterno di Azure, sulla rete aziendale on-premises oppure presso un altro cloud provider. Questo vale sia per sistemi Windows sia per i sistemi Linux. Questa esperienza di gestione è progettata per fornire coerenza con le metodologie di gestione delle macchine virtuali native di Azure. Connettendo infatti una macchina ad Azure tramite Arc viene considerata a tutti gli effetti come una risorsa Azure. Ogni macchina connessa ha un ID specifico, viene inclusa in un resource group e beneficia dei costrutti standard di Azure come le Azure Policy e l’applicazione dei tag.

Per offrire questa esperienza è richiesta l’installazione dell’agente specifico di Azure Arc su ogni macchina che si prevede di connettere ad Azure (“Azure Connected Machine”). Attualmente sono supportati i seguenti sistemi operativi:

  • Windows Server 2008 R2, Windows Server 2012 R2 oppure superiore (sono compresi i Server Core)
  • Ubuntu 16.04 and 18.04 LTS (x64)
  • CentOS Linux 7 (x64)
  • SUSE Linux Enterprise Server (SLES) 15 (x64)
  • Red Hat Enterprise Linux (RHEL) 7 (x64)
  • Amazon Linux 2 (x64)
  • Oracle Linux 7

L’Azure Arc Connected Machine agent è composto dai seguenti componenti logici:

  • L’Hybrid Instance Metadata service (HIMDS) che gestisce la connessione ad Azure e l’identità di Azure della macchina connessa.
  • Il Guest Configuration agent che fornisce le funzionalità di In-Guest Policy e Guest Configuration.
  • L’Extension Manager agent che gestisce i processi di installazione, disinstallazione ed aggiornamento delle estensioni della macchina.

Figura 2 – Componenti dell’agente Azure Arc

Il Connected Machine agent richiede una comunicazione sicura in uscita verso Azure Arc sulla porta TCP  443.

Questo agente non fornisce altre funzionalità e non sostituisce l’agente di Azure Log Analytics, il quale rimane necessario quando si desidera monitorare in modo proattivo il sistema operativo ed i carichi di lavoro in esecuzione sulla macchina.

Per maggiori informazioni sull’installazione di Azure Arc è possibile consultare questo documento ufficiale Microsoft.

I server abilitati per la soluzione Azure Arc possono beneficiare di diverse funzionalità legate ad Azure Resource Manager come Tags, Policies e RBAC, oltre che ad alcune funzionalità relative ad Azure Management.

Figura 3 – Azure Management per tutte le risorse IT

Guest Configuration Policy di Azure

Le Guest Configuration Policy permettono di controllare le impostazioni all’interno di una macchina, sia per le macchine virtuali in esecuzione in ambiente Azure che per le macchine “Arc Connected”. La convalida viene eseguita dal client e dall’estensione Guest Configuration per quanto riguarda:

  • Configurazione del sistema operativo
  • Configurazione oppure presenza di applicazioni
  • Impostazioni dell’ambiente

Al momento, la maggior parte delle Guest Configuration Policy di Azure permettono solamente di effettuare controlli sulle impostazioni all’interno della macchina, ma non applicano configurazioni. L’eccezione è una policy incorporata di configurazione del Time Zone del sistema operativo per le macchine Windows.

Requisiti

Prima di poter controllare le impostazioni all’interno di una macchina, tramite le Guest Configuration Policy, è necessario:

  • Abilitare un’extension sulla macchina virtuale di Azure, necessaria per scaricare le assegnazioni delle policy assegnate e le corrispondenti configurazioni. Questa extension non è richiesta per macchine “Arc Connected” in quanto è inclusa nell’agente Arc.
  • Fare in modo che la macchina abbia una system-managed identity, utilizzata per il processo di autenticazione durante la lettura e la scrittura nel servizio Guest Configuration.

Funzionamento

Azure fornisce built-in nella piattaforma delle specifiche initiatives e un numero elevato di Guest Configuration Policy, ma è possibile crearne anche delle personalizzate sia in ambiente Windows, sia in ambiente Linux.

L’assegnazione delle Guest Configuration policy funziona allo stesso modo delle Azure Policy standard, quindi è possibile raggrupparle in initiative. Anche per le Guest Configuration Policy sono configurabili dei parametri specifici ed esiste almeno un parametro che consente di includere i server abilitati ad Azure Arc. 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.

In seguito all’assegnazione è possibile valutare lo stato di compliance nel dettaglio direttamente dal portale Azure.

All’interno della macchina, il Guest Configuration agent utilizza strumenti locali per eseguire l’audit delle configurazioni:

Il Guest Configuration agent verifica la presenza di assegnazioni di policy guest nuove oppure modificate ogni 5 minuti e una volta ricevuta l’assegnazione le impostazioni vengono controllate a intervalli di 15 minuti.

Costo della soluzione

Il costo delle Guest Configuration Policy di Azure si basa sul numero di server registrati al servizio e che hanno una o più configurazioni guest assegnate. Qualsiasi altro tipo di Azure Policy che non si basa sulla configurazione guest viene offerto senza costi aggiuntivi, comprese le estensioni della macchina virtuali per abilitare servizi come Azure Monitor ed Azure Security Center oppure le policy di auto tagging. La fatturazione è ripartita su base oraria e contempla anche le funzionalità di change tracking presenti tramite Azure Automation. Per maggiori dettagli sui costi è possibile consultare la pagina ufficiale Microsoft.

Conclusioni

Gli ambienti IT sono in continua evoluzione e spesso devono erogare applicazioni critiche per il business aziendale basate su differenti tecnologie, attive su infrastrutture eterogenee e che in alcuni casi utilizzano soluzioni erogate presso differenti cloud pubblici. L’adozione di un processo di IT governance strutturato è più semplice anche grazie alle Guest Configuration Policy e alle potenzialità di Azure Arc, che permettono di controllare e sostenere più facilmente ambienti ibridi e multicloud.

Cloud Governance: come controllare i costi del cloud tramite i budget

Nel cloud pubblico la semplicità di delega e il modello di costi legato al consumo espone le aziende ad un rischio di perdita di controllo sugli stessi. Avere sempre una supervisione sulle spese da sostenere per le risorse create in ambiente cloud diventa quindi un aspetto di fondamentale importanza per attuare un processo di governance efficace. La soluzione Azure Cost Management offre un set completo di funzionalità per la gestione dei costi del cloud, tra le quali la possibilità di impostare budget ed avvisi di spesa. In questo articolo viene riportato come utilizzare al meglio i budget per controllare e gestire in modo proattivo i costi dei servizi cloud.

I budget sono delle soglie di spesa che è possibile impostare nella soluzione Azure Cost Management + Billing, in grado di generare delle notifiche quando vengono raggiunte. I dati sui costi e sull’utilizzo delle risorse sono generalmente disponibili entro 20 ore ed i budget vengono valutati rispetto a questi costi ogni 12-14 ore.

La procedura per impostare i budget dal portale Azure prevede i seguenti step.

Figura 1 – Aggiunta di un budget da Cost Management

Figura 2 – Parametri richiesti in fase di creazione del budget

Durante la fase di configurazione del budget è necessario per prima cosa assegnare lo scope. A seconda della tipologia di account Azure è possibile selezionare i seguenti scope:

  • Azure role-based access control (Azure RBAC)
    • Management groups
    • Subscription
  • Enterprise Agreement
    • Billing account
    • Department
    • Enrollment account
  • Individual agreements
    • Billing account
  • Microsoft Customer Agreement
    • Billing account
    • Billing profile
    • Invoice section
    • Customer
  • AWS scopes
    • External account
    • External subscription

Per maggiori informazioni in merito all’utilizzo degli scope è possibile consultare questo documento Microsoft.

Per creare un budget allineato al periodo di fatturazione si ha la possibilità di selezionare un periodo di reset relativo al mese, al trimestre oppure all’anno di fatturazione. Se invece si intende creare un budget allineato al mese di calendario è necessario selezionare un periodo di reset mensile, trimestrale o annuale.

Successivamente, è possibile impostare la data di scadenza a partire dalla quale il budget diventa non più valido e ne viene interrotta la relativa valutazione dei costi.

In base ai campi scelti in fase di definizione del budget, viene mostrato un grafico per fornire un aiuto nell’impostare la soglia di spesa da utilizzare. Di default il budget suggerito si basa sul costo previsto più elevato che si potrebbe sostenere nei periodi futuri, ma l’importo del budget può essere modificato in base alle proprie esigenze.

Dopo aver impostato il budget viene richiesto di configurare i relativi avvisi. I budget richiedono almeno una soglia di costo (% del budget) e un indirizzo e-mail da utilizzare per le notifiche.

Figura 3 – Configurazione degli alert e dell’indirizzo di posta elettronica da utilizzare per le notifiche

Per un singolo budget è possibile includere fino a cinque soglie e cinque indirizzi e-mail. Quando viene raggiunta una soglia di budget, le notifiche e-mail vengono normalmente inviate entro un’ora dalla valutazione.

In fase di creazione oppure di modifica di un budget, ma solo se lo scope definito per lo stesso è una subscription oppure un resource group, è possibile configurarlo per richiamare un Action Group. L’Action Group permette di personalizzare le notifiche in base alle proprie esigenze e può eseguire varie azioni quando viene raggiunta la soglia di budget, tra le quali:

  • Chiamata vocale oppure invio di SMS (per i paesi abilitati)
  • Invio di una mail
  • Chiamata a un webhook
  • Invio di dati verso ITSM
  • Richiamo di una Logic App
  • Invio di una notifica push sulla mobile app di Azure
  • Esecuzione di un runbook di Azure Automation

Figura 4 – Associazione di un Action Group al raggiungimento di una soglia

Dopo aver concluso la creazione di un budget è possibile visualizzarlo nella rispettiva sezione.

Figura 5 – Budget creato e relativa percentuale di utilizzo

La visualizzazione del budget rispetto all’andamento della spesa è uno delle prime azioni che generalmente si prende in considerazione in fase di analisi dei costi.

Figura 6 – Visualizzazione del budget nell’analisi dei costi

Al raggiungimento di una determinata soglia impostata in un budget oltre alle notifiche impostate, viene anche generato un alert nel portale Azure.

Figura 7 – Alert generato a fronte del raggiungimento di una determinata soglia

Quando le soglie di budget create vengono superate si attivano le notifiche, ma nessuna delle risorse cloud viene modificata e di conseguenza il consumo non viene interrotto.

Grazie all’ integrazione con Amazon Web Services (AWS) Cost and Usage report (CUR) è possibile monitorare e controllare i costi di AWS in Azure Cost Management e definire dei budget anche per le risorse AWS.

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

Il controllo dei costi è una componente fondamentale per massimizzare il valore dell’investimento nel cloud. Grazie all’utilizzo dei budget è possibile attivare facilmente un efficace meccanismo per controllare e gestire in modo proattivo i costi dei servizi cloud dislocati sia in Microsoft Azure che in Amazon Web Services (AWS).

Azure Arc: nuove funzionalità per gestire sistemi in ambienti ibridi

La complessità degli ambienti IT è in continua espansione al punto da avere realtà con applicazioni basate su diverse tecnologie, attive su infrastrutture eterogenee e che magari utilizzano soluzioni in differenti cloud pubblici. L’esigenza molto sentita dai clienti è di poter adottare una soluzione che, in modo centralizzato, consenta di inventariare, organizzare e applicare delle policy di controllo sulle proprie risorse IT ovunque si trovino. La risposta di Microsoft a questa esigenza è Azure Arc, la soluzione che coinvolge diverse tecnologie con l’obiettivo di sviluppare nuovi scenari ibridi, dove i servizi e i principi di gestione di Azure vengono estesi a qualsiasi infrastruttura. In questo articolo vengono riportate le nuove funzionalità che sono state recentemente introdotte per estendere la capacità di gestione degli ambienti ibridi.

I server abilitati per la soluzione Azure Arc possono già beneficiare di diverse funzionalità legate ad Azure Resource Manager come Tags, Policies e RBAC, oltre che ad alcune funzionalità relative ad Azure Management.

Figura 1 – Azure Management per tutte le risorse IT

Grazie al nuovo aggiornamento che è stato recentemente annunciato è possibile utilizzare nuove estensioni, chiamate Azure Arc Extensions, per ampliare le funzionalità ed estendere ulteriormente le pratiche di gestione e di governance di Azure anche ad ambienti differenti. Questo consente di adottare sempre più soluzioni tipicamente cloud, come tecniche DevOps (infrastructure as code), anche per gli ambienti on-premises.

Azure Arc Extensions

Le Azure Arc Extensions sono delle applicazioni che consentono di effettuare delle configurazioni e di eseguire dei task di automazione post-deployment. Queste estensioni possono essere eseguite direttamente da riga di comando Azure, da PowerShell oppure dal portale di Azure.

Al momento sono disponibili le seguenti Azure Arc Extensions che possono essere distribuite sui server abilitati per Azure Arc.

Custom Script Extension per sistemi Windows e Linux

Grazie a questa estensione è possibile eseguire dei task post provisioning della macchina per effettuare delle personalizzazioni dell’ambiente. Aggiungendo questa estensione è infatti possibile scaricare degli script personalizzati, ad esempio da Azure Storage, ed eseguirli direttamente sulla macchina.

Figura 2 – Custom Script Extension, per sistemi Windows abilitati per Azure Arc, dal portale Azure

Durante il deployment della Custom Script Extension è possibile aggiungere il file che contiene lo script da eseguire e opzionalmente i relativi parametri. Per i Sistemi Linux si tratta di uno script shell (.sh), mentre per Windows di uno script Powershell (.ps1).

Desired State Configuration extension su sistemi Windows e Ubuntu (DSCForLinux)

Desired State Configuration (DSC) è una piattaforma di gestione che è possibile utilizzare per gestire l’infrastruttura IT e di sviluppo in ottica di “configuration as code”.

DSC per Windows fornisce nuovi cmdlet di Windows PowerShell e risorse che è possibile utilizzare per specificare in modo dichiarativo come si desidera configurare l’ambiente software. Fornisce inoltre uno strumento utile per mantenere e gestire le configurazioni esistenti. Questa extension funziona come l’estensione per le macchine virtuali in Azure, ma è progettata per essere distribuita sui server abilitati per Azure Arc.

Figura 3 – PowerShell Desired State Configuration, per sistemi Windows abilitati per Azure Arc, dal portale Azure

L’estensione DSCForLinux consente di installare l’OMI agent e il DSC agent sui sistemi Ubuntu abilitati per Azure Arc. L’extension DSC permette di effettuare le seguenti azioni:

  • Registrare la VM ad un Azure Automation account per estrarre (pull) delle configurazioni (Register ExtensionAction).
  • Distribuire delle configurazioni MOF (Push ExtensionAction).
  • Applicare la configurazione meta MOF alla VM per configurare un pull server al fine di estrarre la configurazione del nodo (Pull ExtensionAction).
  • Installare moduli DSC personalizzati (Install ExtensionAction).
  • Rimuovere moduli DSC personalizzati (Remove ExtensionAction).

 

OMS Agent for Linux – Microsoft Monitoring Agent

L’installazione di questo agente consente raccogliere i dati di monitor dal sistema operativo guest e dai workload applicativi dei sistemi e di inviarli a un workspace di Log Analytics. Questo agente viene utilizzato da diverse soluzioni di management di Azure, tra le quali Azure Monitor, Azure Security Center, ed Azure Sentinel. Sebbene oggi sia possibile monitorare VMs non di Azure anche senza Azure Arc, l’utilizzo di questa estensione consente di rilevare e gestire automaticamente gli agenti nelle VMs. Una volta integrati, i server abilitati ad Azure Arc si adatteranno perfettamente alle viste esistenti del portale Azure insieme alle macchine virtuali presenti in Azure e agli Azure scale sets.

Dopo aver distribuito l’agente di Azure Arc sui sistemi è possibile installare il Microsoft Monitoring Agent (MMA) usando questa extension, semplicemente aggiungendo l’ID del workspace di Log Analytics e la relativa key.

Figura 4 – Microsoft Monitoring Agent extension per Azure Arc dal portale Azure

Grazie alla disponibilità di queste nuove extension, i server abilitati per Azure Arc dispongono anche di funzionalità come Update Management, Inventory, Change Tracking e monitor.

Update Management

La soluzione di Update Management consente di avere una visibilità complessiva sulla compliance degli update sia per sistemi Windows che Linux. Tramite il pannello di ricerca è possibile identificare velocemente gli update mancati ed è prevista la possibilità di schedulare dei deployment per l’installazione degli update all’interno di una specifica finestra di manutenzione.

Inventory

Questa funzionalità consente di recuperare informazioni di inventario relative a: software installati, files, chiavi Windows Registry, Servizi Windows e Daemons Linux.

Change Tracking

La funzionalità di Change Tracking consente di monitorare le modifiche apportate ai sistemi relativamente a Daemons, File, Registry, Software e Servizi Windows. Tale funzionalità può risultare molto utile per diagnosticare problemi specifici e per abilitare segnalazioni a fronte di cambiamenti non attesi.

Conclusioni

Grazie alla disponibilità di queste nuove extension è possibile usufruire di funzionalità maggiori, in ambito governance e management tipiche di Azure, anche per gli ambienti hybrid cloud. Si tratta di una importante evoluzione di questa soluzione, al momento ancora in preview, che è destinata presto ad arricchirsi ulteriormente con nuove importanti funzionalità.

Azure Monitor: come abilitare il servizio di monitor delle macchine virtuali tramite Azure Policy

In Azure Monitor è stato reso disponibile il servizio che consente di effettuare il monitor delle macchine virtuali, chiamato Azure Monitor for VMs. Questo servizio permette di analizzare i dati di performance dei sistemi ed effettua una mappa che consente di identificare tutte le dipendenze delle macchine virtuali e dei relativi processi. Il metodo consigliato per abilitare questa soluzione per differenti sistemi è tramite l’adozione delle Azure Policy.  In questo articolo viene riportata la procedura da seguire per effettuarne l’attivazione utilizzando questo metodo, riprendendo vari concetti relativi alla governance di Azure.

Caratteristiche principali di Azure Monitor for VMs

Azure Monitor for VMs può essere utilizzato su macchine virtuali Windows e Linux, indipendentemente dall’ambiente in cui esse risiedono (Azure, on-premises oppure presso altri cloud provider) e contempla i seguenti ambiti:

  • Performance: vengono riportati i dati principali di performance, provenienti dal sistema operativo guest. Nella soluzione sono presenti potenti funzionalità di aggregazione dei dati e di filtering che consentono di affrontare la sfida di monitorare le performance per un numero molto elevato di sistemi. In questo modo è possibile monitorare agilmente lo stato di utilizzo delle risorse di tutte le VMs ed individuare facilmente quelle che presentano problematiche di performance.
  • Maps: viene generata una mappa con le interconnessioni presenti tra vari componenti che risiedono su sistemi differenti. Le mappe mostrano come le VMs ed i processi interagiscono tra loro e possono identificare eventuali dipendenze da servizi di terze parti. La soluzione permette anche di controllare eventuali errori di connessione, conteggia le connessioni in tempo reale, i byte di rete inviati e ricevuti dai processi e le latenze riscontrare a livello di servizio.

L’abilitazione tramite Azure Policy

Le Azure Policy permettono di applicare e forzare su larga scala dei criteri di compliance e le relative azioni di remediation. Per abilitare questa funzionalità in modo automatico sulle macchine virtuali presenti nell’ambiente Azure ed ottenere un livello elevato di compliance è consigliato quindi utilizzare le Azure Policy. Tramite le Azure Policy è infatti possibile:

  • Effettuare il deployment dell’agente di Log Analytics e del Dependency agent.
  • Avere un report sullo stato di compliance.
  • Avviare delle azioni di remediation per le VMs non compliant.

Un requisito da verificare prima di procedere con l’attivazione è la presenza della soluzione VMInsights nel workspace di Azure Monitor Log Analytics che verrà utilizzato per archiviare i dati di monitor.

Figura 1 – Configurazione del workspace di log Analytics

Selezionando il workspace desiderato viene scatenata l’installazione della solution VM Insights che permette di collezionare i performance counters e le metriche di tutte le macchine virtuali connesse a tale workspace.

Per attivare Azure Monitor for VMs tramite policy basta selezionare il relativo riquadro di onboarding nella schermata principale della soluzione.

Figura 2 – Selezione di Azure Policy come metodo di abilitazione

Nel blade seguente verrà riportato lo stato di copertura del servizio e sarà fornita la possibilità di assegnare le Policy per la relativa attivazione.

Figura 3 – Assegnazione dell’Initiative a livello di Management Group

Gli Azure Management Groups, consentono di organizzare differenti subscriptions in contenitori logici, sui quali definire, porre in essere e verificare le politiche di governo necessarie.

Le Initiatives, che sono un insieme di più Azure Policy, possono essere assegnate a livello di Resource Group, Subscription oppure di Management Group. Si ha inoltre la possibilità di escludere determinate risorse dall’applicazione delle policy.

A questo proposito le policy di abilitazione di Azure Monitor for VMs sono raggruppate in un’unica “initiative”, chiamata “Enable Azure Monitor for VMs” che comprende le seguenti policy:

  • Audit Dependency agent deployment – VM image (OS) unlisted
  • Audit Log Analytics agent deployment – VM image (OS) unlisted
  • Deploy Dependency agent for Linux VMs
  • Deploy Dependency agent for Windows VMs
  • Deploy Log Analytics agent for Linux VMs
  • Deploy Log Analytics agent for Windows VMs

Tale Initiative è consigliato assegnarla a livello di Management Group.

Figura 4 – Configurazione dell’associazione

Tra i parametri è richiesto di specificare il workspace di Log Analytics ed opzionalmente è possibile specificare eventuali task di remediation.

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

Figura 5 – Verifica sullo stato di compliance dell’Initiative

Completato il processo di abilitazione sarà possibile analizzare i dati di performance dei sistemi e le mappa create per identificare tutte le dipendenze delle macchine virtuali e dei relativi processi.

Figura 6 – Performance raccolte per i sistemi

Figura 7 – Mappa con le interconnessioni presenti tra vari sistemi

Figura 8 – Mappa che riporta i dettagli delle connessioni

Un metodo efficace per renderle facilmente consultabili questi dati e per analizzarli in modo semplice è l’utilizzo dei Workbooks, documenti interattivi che consentono di interpretare al meglio le informazioni e fare analisi approfondite. In questo documento Microsoft è possibile consultare la lista dei relativi Workbook inclusi in Azure Monitor for VMs e come crearne dei propri personalizzati.

Conclusioni

In questo articolo si è dimostrato come è possibile abilitare la soluzione Azure Monitor for VMs grazie all’adozione delle Azure Policy in modo semplice, rapido ed efficace. La soluzione riporta informazioni molto utili che tipicamente devono essere raccolte su diversi sistemi presenti nel proprio ambiente. Aumentando la complessità e la quantità di servizi su Azure diventa indispensabile adottare degli strumenti come Azure Policy, per avere delle politiche efficaci di governance. Inoltre, con l’introduzione di Azure Arc si potranno estendere queste pratiche di gestione e di governance di Azure anche ad ambienti differenti, facilitando in questo modo l’implementazione di funzionalità presenti in Azure su tutti i componenti dell’infrastruttura.

Azure Governance: panoramica di Azure Blueprints

L’IT governance permette di realizzare un processo attraverso il quale è possibile garantire alle realtà aziendali un utilizzo efficiente delle proprie risorse IT, con l’obiettivo di poter raggiungere in modo efficace i propri obiettivi. La Governance dell’ambiente Azure è resa possibile da una serie di servizi appositamente progettati per consentire una gestione ed un costante controllo delle varie risorse Azure su vasta scala. Tra questi strumenti troviamo Azure Blueprints che permette di effettuare il design e la creazione di nuovi componenti in Azure, nel rispetto totale delle specifiche e degli standard aziendali. In questo articolo viene riportata una panoramica della soluzione per fornire gli elementi necessari per il relativo utilizzo.

Azure Blueprints consente ai Cloud Architect e ai Cloud Engineer, responsabili di realizzare architetture in Azure, di definire ed implementare in modo ripetibile un insieme di risorse Azure, con la certezza di aderire agli standard, ai modelli e ai requisiti definiti aziendalmente. Azure Blueprints permette inoltre di effettuare il rilascio di nuovi ambienti in modo rapido, adottando componenti integrati e accelerando i tempi di sviluppo e di consegna degli stessi.

I principali punti di forza della soluzione Azure Blueprints posso essere così sintetizzati.

Semplifica la creazione degli ambienti Azure

  • Centralizza la creazione di nuovi ambienti Azure tramite template.
  • Consente di aggiungere risorse, policy e ruoli.
  • Permette di tenere traccia degli aggiornamenti dei progetti tramite il controllo delle versioni.

Azure Blueprints tramite un modello dichiarativo permette di orchestrare la distribuzione di vari templates di risorse e di altri artifacts Azure. Il servizio Azure Blueprints è basato e supportato da Azure Cosmos DB. Gli oggetti blueprint vengono replicati in più region di Azure, ottenendo così una bassa latenza, un’elevata disponibilità e accesso coerente agli stessi, indipendentemente dalla region in cui vengono distribuite le risorse.

Permette di rispettare la compliance

  • Consente agli sviluppatori di creare ambienti completamente governati attraverso metodologie self-service.
  • Fornisce la possibilità di creare in modo centralizzato più ambienti e subscription Azure.
  • Permette di sfruttare l’integrazione con le Azure Policy e con il ciclo di vita di DevOps.

Consente di controllare i lock sulle risorse

  • Assicura che le risorse di base non possano essere modificate.
  • Gestisce i lock in modo centralizzato.
  • Permette di aggiornare le risorse bloccate tramite delle variazioni alla definizione del modello blueprint.

Come utilizzare Azure BluePrints

Si riportano le fasi da seguire per adottare la soluzione Azure Blueprints.

Figura 1 – Come funziona Azure Blueprint

Il primo step prevedere la creazione di un blueprint che può essere fatta tramite portale Azure, PowerShell oppure REST API.

Figura 2 – Schermata iniziale di Bluprints dal portale Azure

Avviando il processo di creazione dal portale Azure c’è la possibilità di partire da un blueprint vuoto oppure di utilizzare alcuni esempi disponibili.

Figura 3 – Creazione del blueprint dal portale Azure

Il blueprint è composto da differenti artifacts come: Role Assignments, Policy Assignments, Azure Resource Manager templates e Resource Group. Terminata la creazione è necessario pubblicare il blueprint (al termine della creazione sarà nello stato di draft) specificando il versioning. Azure Blueprints risulta uno strumento molto utile per le aziende che utilizzano il modello di infrastructure as code in quanto contempla i processi di continuous integration e continuous deployment.

Solo dopo aver pubblicato il blueprint è possibile assegnarlo a una o più subscription Azure, specificando la tipologia di lock secondo i seguenti stati:

  • Don’t Lock: significa che le risorse create da Blueprints non saranno protette.
  • Do Not Delete: significa che le risorse possono essere modificate, ma non rimosse.
  • Read Only: l’assegnazione risulta in locked e le derivanti risorse non potranno essere modificate o rimosse, nemmeno dagli owner della subscription. In questo caso è bene specificare che non tutte le risorse Azure supportano il lock e che l’assegnazione del blocco può richiedere fino a 30 minuti per essere effettivo.

Figura 4 – Assegnazione del blueprint

Durante l’assegnazione del Blueprint verranno inoltre richiesti i parametri previsti per effettuare il deployment delle risorse.

Figura 5 – Esempio di richiesta dei parametri del blueprint

Un aspetto interessante della soluzione Azure Blueprints è dato dal fatto che i blueprint creati mantengono una relazione con le risorse assegnate e possono essere monitorati e controllati, cosa non possibile utilizzando i semplici template ARM e le policy.

Conclusioni

Azure Blueprints è un servizio che offre a coloro che si occupano di realizzare architetture in Azure la capacità di definire un set di risorse in modo facilmente ripetibile, conforme agli standard aziendali e ai requisiti dell’organizzazione. Adottando dei blueprint è possibile creare e distribuire rapidamente nuovi ambienti, contemplando una serie di componenti integrati. Questo permette non solo di distribuire ambienti consistenti, ma di farlo in modo agile, consentendo alle organizzazioni di accelerare lo sviluppo e la consegna delle soluzioni in Azure.

Azure Arc: un nuovo approccio agli ambienti ibridi

L’impiego di architetture ibride nelle realtà aziendali è sempre più preponderante, in quanto consentono di continuare a trarre vantaggio dagli investimenti fatti nel proprio ambiente on-premises e, allo stesso tempo, utilizzare l’innovazione introdotta dal cloud. L’adozione di soluzioni ibride risulta vincente se tiene conto anche di una politica condivisa per la distribuzione, la gestione e la messa sicurezza dei componenti. Senza coerenza nella gestione dei differenti ambienti, i costi e la complessità rischiano di crescere in modo esponenziale. Microsoft ha deciso di rispondere a questa esigenza con la soluzione Azure Arc, che coinvolge una serie di tecnologie con l’obiettivo di sviluppare nuovi scenari ibridi, dove i servizi e i principi di gestione di Azure vengono estesi a qualsiasi infrastruttura. In questo articolo viene presentato l’approccio adottato da Azure Arc per gli ambienti ibridi.

La complessità degli ambienti IT è in continua espansione al punto da riscontrare realtà con applicazioni basate su diverse tecnologie, attive su infrastrutture eterogenee e magari che adottano soluzioni in differenti cloud pubblici. L’esigenza molto sentita dai clienti è di poter adottare una soluzione che in modo centralizzato consenta di inventariare, organizzare e applicare delle policy di controllo sulle proprie risorse IT ovunque si trovino.

Il principio che sta alla base di Azure Arc è quello di estendere le pratiche di gestione e di governance di Azure anche ad ambienti differenti e di adottare soluzioni tipicamente cloud, come tecniche DevOps (infrastructure as code), anche per gli ambienti on-premises.

Figura 1 – Panoramica di Azure Arc

Per ottenere questo risultato Microsoft ha deciso di estensione il modello Azure Resource Manager per poter supportare anche ambienti ibridi, facilitando in questo modo l’implementazione delle funzionalità di security presenti in Azure su tutti i componenti dell’infrastruttura.

Figura 2 – Azure Management per tutte le risorse

Azure Arc consiste in un insieme di differenti tecnologie e di componenti che permette di:

  • Gestire le applicazioni in ambienti Kubernetes: viene fornita la possibilità di effettuare il deploy e la configurazione delle applicazioni Kubernetes in modo omogeneo su tutti gli ambienti, adottando le moderne tecniche DevOps.
  • Consentire l’esecuzione degli Azure data services su qualsiasi infrastruttura: il tutto si basa sull’adozione di Kubernetes e permette di rispettare più facilmente i criteri di compliance, di migliorare la sicurezza dei dati e di avere una notevole flessibilità in fase di deploy. Al momento i servizi contemplati sono Azure SQL Database e Azure Database for PostgreSQL.
  • Organizzare, gestire e governare tutti i sistemi server: Azure Arc estende infatti le possibilità offerte in ambito governance e management da Azure anche alle macchine fisiche e ai sistemi virtuali presenti in ambienti differenti. Tale soluzione è chiamata nello specifico Azure Arc for servers.

Figura 3 – Tecnologie di Azure Arc

Azure Arc prevede l’utilizzo di Resource Provider specifici per Azure Resource Manager ed è necessaria l’installazione degli agenti di Azure Arc.

Accedendo al portale si può notare come Azure Arc for Servers sia già attualmente disponibile in preview pubblica, mentre è necessario effettuare una registrazione per gestire in preview gli ambienti Kubernetes e i data services.

Figura 4 – Azure Arc nel portale Azure

Grazie all’adozione di Azure Arc che introduce una visione complessiva, è possibile raggiungere, per le proprie architetture ibride, i seguenti obiettivi, difficilmente perseguibili diversamente:

  • Standardizzazione delle operazioni
  • Organizzazione delle risorse
  • Sicurezza
  • Controllo dei costi
  • Business Continuity
  • Rispetto delle normative e della compliance aziendale

Figura 5 – Cloud-native governance con Azure Arc

Conclusioni

Azure Arc è stato recentemente annunciato e nonostante si trovi ancora in una fase embrionale, ritengo che possa evolvere notevolmente al punto da rivoluzionare la gestione e lo sviluppo degli ambienti ibridi. Per mantenersi aggiornati su come si svilupperà questa soluzione è possibile registrarsi a questa pagina.