Azure Italia Podcast: Microsoft Cloud Adoption Framework per Azure

Una bella chiacchierata a tema Microsoft Cloud Adoption Framework per Azure con Carlo di Azure Italia Podcast.

🎙️La potete ascoltare su Spotify al seguente link: https://open.spotify.com/episode/5ZizwfRpF3QNd0ezcLmdKu?si=c353722c9ca7471c

Ringrazio ancora Carlo Sacchi per avermi fatto partecipe di questa iniziativa ed invito tutti quanti voi a seguire il suo canale: non è facile trovare materiale su Azure in lingua italiana! 😉

Di seguito, i riferimenti del canale Azure Italia Podcast:

Automatizzare i deploy su Azure: installazione di Terraform e VSCode

Automatizzare il processo di deploy delle risorse su Microsoft Azure può migliorare notevolmente l’efficienza e la coerenza nel gestire l’infrastruttura cloud. In questo articolo, esploreremo come installare e configurare Terraform insieme a Visual Studio Code (VSCode) e le relative estensioni per semplificare ed uniformare il processo di deploy.

Prerequisiti

Installare i seguenti strumenti:

  1. Terraform
  2. Visual Studio Code
  3. Azure CLI

Installare Terraform su Windows

1. Scaricare l’ultima versione dal sito ufficiale di Terraform

2. Estrarre il File ZIP

Dopo aver scaricato il file ZIP di Terraform, estrarlo in una directory, ad esempio, C:\Terraform.

3. Aggiungere Terraform al Percorso (PATH)

Per utilizzare Terraform da qualsiasi posizione nel prompt dei comandi, è necessario aggiungere la directory di Terraform al percorso (PATH) del sistema.

4. Verifica dell’Installazione

Aprire il prompt dei comandi ed eseguire il comando:

terraform --version

il comando rilascia la versione di Terraform installata, confermando la corretta installazione

Installazione di Visual Studio Code ed estensioni

  1. Scaricare e installare Visual Studio Code dal sito ufficiale.
  2. Aprire VSCode e installare le estensioni necessarie:
    • Terraform: cercare “HashiCorp Terraform” nell’Extension Marketplace e installare l’estensione fornita da HashiCorp.
    • Azure Terraform: questa estensione semplifica la gestione delle risorse di Azure con Terraform. Cercare “Azure Terraform” nell’Extension Marketplace e installare l’estensione.

Installazione di Azure CLI su Windows

  1. Scaricare ed installare Azure CLI seguendo la guida dal sito ufficiale di Azure CLI
  2. Verificare l’installazione aprendo un prompt dei comandi ed eseguire il comando az --version
  3. Utilizzare il comando az login per eseguire l’autenticazione su Azure

Conclusioni

In questo articolo si sono installati e configurati gli strumenti per iniziare ad utilizzare Terraform e VS Code per automatizzare i deploy su Azure.

Nei prossimi articoli vedremo come muovere i prima passi con Terraform.

Azure: come creare una VM personalizzata e distribuirla

Guida passo su come utilizzare Sysprep per creare immagini personalizzate su Azure e deployarle sia utilizzando il tool sysprep dal sistema operativo sia utilizzando i comandi Powershell.

Requisiti

  1. Crea una VM di base: Inizia creando una VM di base con il sistema operativo Windows desiderato installato. Questa VM sarà la base per le tue distribuzioni future.
  2. Personalizza la VM: Configura la VM di base in base alle tue esigenze specifiche, installa le applicazioni necessarie e apporta le personalizzazioni richieste.
  3. Aggiorna il sistema operativo: Assicurati di avere tutte le patch e gli aggiornamenti di sicurezza più recenti installati sulla VM di base.
  4. Esegui Sysprep: Una volta che la VM di base è configurata e aggiornata, puoi eseguire Sysprep per prepararla per la distribuzione.

Creazione dell’immagine personalizzata

Dal sistema operativo (utilizzando Sysprep)

  1. Apri il prompt dei comandi: Apri il prompt dei comandi come amministratore.
  2. Esegui Sysprep: C:\Windows\System32\sysprep\sysprep.exe
  3. Configura le opzioni Sysprep: Nella finestra di dialogo Sysprep, seleziona le seguenti opzioni:
    • Ora (shutdown): Imposta l’opzione su “Spegni” per spegnere la VM dopo il completamento di Sysprep.
    • Generaleize: Assicurati che questa opzione sia selezionata per preparare la VM per l’uso su altre macchine.
  4. Avvia Sysprep: Fare clic su “OK” per avviare il processo Sysprep. Questo processo può richiedere alcuni minuti e la VM verrà quindi arrestata.

Da Powershell

Stop-AzVM -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-VM" -Force
Set-AzVM -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-VM" -Generalized

Creare un’immagine personalizzata su Azure

Dal portale Azure

  1. Accedi al portale di Azure: Accedi al portale di Azure.
  2. Crea una immagine personalizzata: Naviga al servizio “Immagini personalizzate” nel portale di Azure e fai clic su “Aggiungi”.
  3. Configura l’immagine: Compila i dettagli dell’immagine personalizzata.
  4. Seleziona la VM di base: Nella sezione “Origine” dell’immagine personalizzata, seleziona la VM di base dalla quale hai eseguito Sysprep.
  5. Crea l’immagine: Fai clic su “Crea” per avviare il processo di creazione dell’immagine personalizzata. Azure creerà un’immagine basata sulla VM di base con le personalizzazioni apportate durante la configurazione.

Da Powershell

$vm = Get-AzVM -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-VM"
$imageConfig = New-AzImageConfig -Location "Nome-Regione"
$imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized -SnapshotId $vm.StorageProfile.OsDisk.Snapshot.Id
New-AzImage -Image $imageConfig -ResourceGroupName "Nome-Gruppo-Risorse" -ImageName "Nome-Immagine" -Description "Descrizione-Immagine"

Distribuzione di VM personalizzate

Dal portale Azure

  1. Seleziona l’immagine personalizzata: Naviga tra le risorse disponibili e seleziona l’immagine di VM personalizzata che hai creato.
  2. Configura la VM: Segui il processo guidato per configurare la nuova VM utilizzando l’immagine personalizzata.
  3. Avvia la VM: Una volta completata la configurazione, avvia la nuova VM. Sarà basata sull’immagine personalizzata che hai creato su Azure.

Da Powershell

  1. Creazione di una VM da un’immagine personalizzata
    New-AzVm -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-Nuova-VM" -ImageName "Nome-Immagine" -Location "Nome-Regione" -AdminUsername "Nome-Admin" -AdminPassword "Password-Admin"
  2. Avvio della VM
    Start-AzVM -ResourceGroupName "Nome-Gruppo-Risorse" -Name "Nome-Nuova-VM"

Verificare la data di creazione di una Virtual Machine su Azure

Esistono due modi per verificare la data di creazione di una Virtual Machine su Azure… o almeno che io conosca

Metodo 1 – Azure Portal

Se la virtual machine è stata creata negli ultimi 90 giorni, è possibile verificare la data di creazione dal portale Azure tramite il pannello “Activity Log” della VM stessa:

  1. Autenticarsi sul portale Azure (https://portal.azure.com)
  2. Cercare la VM che ci interessa
  3. Dal menù di sinistra, selezionare Activity Log ed eventualmente utilizzare i filtri per filtrare l’intervento di date interessate

Metodo 2 – Azure Powershell

Tramite l’Activity Log possiamo risalire fino a 90 giorni prima. Nel caso la VM sia stata creata da più 90 giorni, bisogna ricorrere a Powershell:

Get-AzVm -name "name.of.virtual.machine" | select timecreated

L’output sarà come quello sotto:

Output “Get-AzVm”


Hyper-V: “An error occurred while attemping to start the selected virtual machine(s)”

Scenario. Avviando delle Virtual Machine su Hyper-V in Saved State, queste non si avviano ed il virtualizzatore riporta il seguente errore:

“The virtual machine is using processor-specific features not supported on physical computer ‘nome-server’”

An error occurred while attemping to start the selected virtual machine(s)

Questa situazione si può presentare per diversi motivi, come un’operazione di backup in corso, un riavvio del server Hyper-V inaspettato con le VM in stato running, modifiche alle proprietà hardware delle macchine virtuali.

Soluzione. Nella maggior parte dei casi, per ripristinare l’operatività della macchine virtuali è sufficiente cancellare lo stato “Saved State”

Tasto destro sulla VM -> Delete Saved State…

Delete Saved State…

e, successivamente, avviare la macchina virtuale.

Nel caso si presenti l’errore “Operation cannot be performed while the object is in use”, riavviare l’host Hyper-V

Come scegliere il corretto dimensionamento delle VM in Azure

La vasta disponibilità di configurazioni di VM su Azure non aiuta a capire immediatamente quale sia la migliore per le nostre esigenze. Sapere le differenze delle diverse offerte agevolerà identificare meglio quale dimensionamento potrà fare al caso nostro.

Tipologia e sizing delle VM

Microsoft ha suddiviso le tipologie di virtual machine per tipologia di utilizzo. Quindi, in base a quello che è il workload da configurare, possiamo avere un’idea di quale taglio di macchina andare ad utilizzare.

TypeSizesDescription
General purposeB, Dsv3, Dv3, Dasv4, Dav4, DSv2, Dv2, Av2, DC, DCv2, Dv4, Dsv4, Ddv4, Ddsv4Balanced CPU-to-memory ratio. Ideal for testing and development, small to medium databases, and low to medium traffic web servers.
Compute optimizedF, Fs, Fsv2High CPU-to-memory ratio. Good for medium traffic web servers, network appliances, batch processes, and application servers.
Memory optimizedEsv3, Ev3, Easv4, Eav4, Ev4, Esv4, Edv4, Edsv4, Mv2, M, DSv2, Dv2High memory-to-CPU ratio. Great for relational database servers, medium to large caches, and in-memory analytics.
Storage optimizedLsv2High disk throughput and IO ideal for Big Data, SQL, NoSQL databases, data warehousing and large transactional databases.
GPUNC, NCv2, NCv3, NCasT4_v3 (Preview), ND, NDv2 (Preview), NV, NVv3, NVv4Specialized virtual machines targeted for heavy graphic rendering and video editing, as well as model training and inferencing (ND) with deep learning. Available with single or multiple GPUs.
High performance computeHB, HBv2, HC, HOur fastest and most powerful CPU virtual machines with optional high-throughput network interfaces (RDMA).
Fonte: https://docs.microsoft.com/en-us/azure/virtual-machines/sizes

Il taglio delle VM identifica le “caratteristiche hardware” della macchina virtuale.

Dal nome del taglio della macchina è possibile risalire alle caratteristiche ed alle feature che caratterizzano la VM. Infatti, tutti I nomi utilizzano la seguente nomenclatura:

[Family] + [Sub-family]* + [# of vCPUs] + [Additive Features] + [Accelerator Type]* + [Version]

Dove:

ValueExplanation
FamilyIndicates the VM Family Series
*Sub-familyUsed for specialized VM differentiations only
# of vCPUsDenotes the number of vCPUs of the VM
Additive FeaturesOne or more lower case letters denote additive features, such as:
a = AMD-based processor
d = disk (local temp disk is present); this is for newer Azure VMs, see Ddv4 and Ddsv4-series
h = hibernation capable
i = isolated size
l = low memory; a lower amount of memory than the memory intensive size
m = memory intensive; the most amount of memory in a particular size
t = tiny memory; the smallest amount of memory in a particular size
r = RDMA capable
s = Premium Storage capable, including possible use of Ultra SSD (Note: some newer sizes without the attribute of s can still support Premium Storage e.g. M128, M64, etc.)
*Accelerator TypeDenotes the type of hardware accelerator in the specialized/GPU SKUs. Only the new specialized/GPU SKUs launched from Q3 2020 will have the hardware accelerator in the name.
VersionDenotes the version of the VM Family Series
Fonte: https://docs.microsoft.com/bs-latn-ba/azure/virtual-machines/vm-naming-conventions

Differenze tra CORE e vCPU in Azure e Azure Compute UNIT (ACU)

Con la serie V3, Microsoft ha introdotto l’utilizzo dell’hyper-trading per la virtualizzazione delle VM andando così ad abbattere leggermente I costi (e un pò anche le prestazioni). Dove è utilizzato l’hypertrading, c’è un rapporto 2:1 vCPU/CORE.

Per sapere su quali serie di VM è abilitato l’hyper-trading, è possibile andare su questo link ed identificare dove il valore nella colonna vCPU:Core è 2:1.

Un modo per valutare le performance di una virtual machine su Azure rispetto ad un’altra, è andare a vedere il valore ACU delle VM.

Microsoft ha introdotto il concetto di Azure Compute Unit (ACU) per poter compare le prestazioni di calcolo dei vari tagli delle VM in Azure. Il parametro è statao standardizzato su una VM Standard_A1 alla quale è stato assegnato il punteggio ACU 100. In base a questi valori è possibile capire approssimativamente la velocità di calcolo degli altri SKU. In questa pagina è possibile verificare le ACU dei vari SKU.

Conclusioni

Scegliere la VM giusta non è immediato, come hai visto. Fortunatamente lavorando con Azure si ha la possibilità di essere elastici in alcune scelte. Questo permette di rivedere le scelte fatte inizialmente. Si può così pensare di partire con taglio leggermente più basso rispetto a quello che si è pensato o a quello che si ha on-premise (nel caso si stia effettuando una migrazione), anche per ottimizzare i costi, ed effettuare uno scaling delle risorse in caso di necessità.

Azure: copiare una VM utilizzando gli snapshot dei dischi “managed”

In questo articolo vediamo come copiare (clonare) un Virtual Machine in Azure utilizzando le snapshot dei dischi di tipo managed.

Questa procedura può risultare utile per:

  • spostare una VM tra vNet
  • clonare un piccolo ambiente composto da poche VM. Per ambiente più grossi meglio utilizzare altre soluzioni

In macro step, le operazioni da fare sono:

Creare la snapshot

  1. Assicurarsi che la VM da copiare sia deallocata
  2. Identificati i dischi che compongono la macchina, creare le snapshot:
    Create snapshot
  3. Seguire le indicazione del wizard
  4. Eseguire i punti 2 e 3 per tutti i dischi che compongono la macchina

Creare i dischi

  1. Creare una nuova risorsa “managed disk”
  2. Compilare tutte le informazioni richieste. Indicare come sorgente la snapshot precedentemente creata
  3. Eseguire il punto 1 e 2 per tutti i dischi che compongono la macchina

Configurare la VM

Posizionarsi sul disco del sistema operativo configurato nello step precedente, e cliccare su “+ Create VM”.

Terminata la procedura di creazione della macchina virtuale, procedere con l’aggiungere tutti i dischi che componevano la macchina originale.

Microsoft Teams: come avere finestre isolate per ogni chat.

Gli ultimi aggiornamenti che hanno riguardato Microsoft Teams hanno introdotto diverse nuove feature, come avere uno sfondo personalizzato nelle videochiamate, “alzare la mano” e la possibilità di avere delle finestre dedicate per le chat scollegate dal client principale.

Ecco i metodi per isolare le singole finestre delle chat:

  • Doppio click sulla conversazione
  • Passare col mouse sulla chat interessata. Comparirà l’icona : cliccandoci sopra aprirà la nuova finestra con la chat
  • Nella chat, in alto a destra cliccare sull’icona
  • Nella barra dei comandi, digitare “/pop” ed il nome della persona con cui si vuole parlare

Nota: la versione utilizzata di Teams è la 1.3.00.12058

Active Directory Domain Services (AD DS), Azure Active Directory (Azure AD) e Azure Active Directory Domain Services (Azure AD DS): differenze ed integrazione tra loro

Microsoft mette a disposizione tre identity services:

  • Active Directory Domain Services (AD DS)
  • Azure Active Directory (Azure AD o AAD)
  • Azure Active Directory Domain Service (Azure AD DS o AAD DS)

Questo può portare confusione nella scelta della soluzione da adottare in quanto il nome Active Directory compare in tutti e tre i servizi, nonostante le tre soluzioni siano differenti tra di loro.

In questo post analizzerò i servizi, come si integrano tra di loro e quando adottarli.

Active Directory Domain Services (AD DS)

Active Directory Domain Services è la versione tradizionale del servizio per la gestione centralizzata delle risorse.

Tra le caratteristiche del servizio:

  • gestione gerarchiale delle risorse;
  • gestione di utenze e risorse tramite group policies;
  • on-premises idendity & authenitcation;
  • autenticazione tramite Kerberos, NTLM o LDAP;
  • trust di domini e foreste

AD DS, dominio autogestito, richiede un alto utilizzo di risorse per la gestione del servizio stesso: gestione dei backup, patching del sistema, upgrade, repliche, etc.

Azure Active Directory (Azure AD)

Se sono utilizzati servizi di Office 365 o di Azure, Azure AD è utilizzata.

A differenza del servizio AD DS, che utilizza l’autenticazione network-based, Azure AD utilizza l’autenticazione web-based.

Tra le caratteristiche del servizio :

  • cloud-based identification & authentication;
  • servizio di gestione account per:
    • accesso al portale Azure
    • Office 365
    • applicazioni SaaS
  • Mobile Device Management (MDM)

Con Azure AD non è possibile:

  • joinare computer al dominio;
  • effettuare autenticazione tramite protocollo Kerberos o NTLM;
  • implementare organization unit;
  • utilizzare implementare\utilizzare account di tipo domain o enterprise admin

Il servizio è garantito, gestito ed ospitato da Microsoft. La gestione delle risorse avviene tramite portale web.

Azure Active Directory Domain Services (Azure AD DS)

Azure AD DS è una soluzione simile alla soluzione on-premise AD DS, con la differenza che è erogato come servizio PaaS in Azure.

Tra le caratteristiche del servizio:

  • servizio PaaS;
  • Autenticazione tramite Kerberos, NTLM o LDAP (read only);
  • trust di domini e foreste non supportata;
  • nessun account “domain admin” o “enterprise admin”

Azure AD DS è integrato con Azure AD: creando un utente in Azure AD automaticamente sarà replicato in Azure AD DS.

Integrazione dei servizi

Come detto sopra, Azure Active Directory è in costante replica con Azure Active Directory Services

Azure AD e Azure AD DS

Azure AD, a sua volta, può essere sincronizzato con l’ambiente on premise di Active Directory Domain Services tramite AD Connect

AD DS, Azure AD e Azure AD DS

Quanto implementare AD DS, Azure AD o Azure AD DS

Active Directory Domain Services se:

  • necessità di configurare relazioni di trust ;
  • necessità di estendere lo schema;
  • la connettività internet è limitata o instabile;
  • necessità di utilizzare account domain o enterprise admin

Azure Active Directory se:

  • l’infrastruttura è interamente sul cloud, senza server configurati on premise;
  • vengono utilizzati solo servizi di tipo PaaS o SaaS;
  • vengono utilizzati solo sistemi di modern authentication

Azure Active Directory Domain Services se:

  • l’infrastruttura è cluod native;
  • utilizzo di servizi IaaS

Azure File Sync: limitare la banda utilizzata

Azure File Sync (AFS) è il servizio di Microsoft che permette di centralizzare i file aziendali in Azure tramite l’installazione di un agente di sincronizzazione installato sul server, sia in Azure che on-premise.

Una volta installato, di default, AFS sfrutta tutta la banda internet disponibile per la sincronizzazione dei dati (sia in upload che in download). Questo comportamento potrebbe però portare a dei malfunzionamenti agli altri workload, nasce quindi la necessità di limitare la banda utilizzata dal servizio.

E’ possibile limitare l’utilizzo della banda da parte di Azure File Sync tramite comandi Powershell (non è possibile da interfaccia grafica).

  1. Importare il modulo AFS
    Import-Module “C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll”
  2. Configurare la regola di QoS. In questo esempio la banda viene limitata dal lunedì al venerdì e dalle 09 alle 19 a 2 Mpbs:
    New-StorageSyncNetworkLimit -Day Monday, Tuesday, Wednesday, Thursday, Friday -StartHour 7 -EndHour 19 -LimitKbps 2000
  3. Verifica della regola configurata:
    Get-StorageSyncNetworkLimit

NOTA: le regole che si configurano influenzano solo il download del dato e non è possibile governare il download del dato, almeno nella data in cui scrivo (16 – 01 – 2010)