Pianificare e preparare la distribuzione di un cluster
La pianificazione e la preparazione per una distribuzione di cluster di produzione è molto importante. Ci sono molti fattori da considerare. Questo articolo illustra i passaggi per preparare la distribuzione del cluster.
Leggere le informazioni sulle procedure consigliate
Per gestire correttamente applicazioni e cluster di Azure Service Fabric, è consigliabile eseguire operazioni per ottimizzare l'affidabilità dell'ambiente di produzione. Per altre informazioni, vedere Procedure consigliate per applicazioni e cluster di Service Fabric.
Selezionare il sistema operativo per il cluster
Service Fabric permette di creare cluster di Service Fabric in qualsiasi VM o computer con Windows Server o Linux in esecuzione. Prima di distribuire il cluster, è necessario scegliere il sistema operativo: Windows o Linux. Ogni nodo (macchina virtuale) nel cluster esegue lo stesso sistema operativo, non è possibile combinare macchine virtuali Windows e Linux nello stesso cluster.
Pianificazione capacità
La pianificazione della capacità è un passaggio importante per qualsiasi distribuzione di produzione. Di seguito sono elencati alcuni aspetti da considerare nell'ambito di questo processo.
- Numero iniziale di tipi di nodo per il cluster
- Proprietà di ogni tipo di nodo (dimensioni, numero di istanze, primarie, con connessione Internet, numero di macchine virtuali e così via)
- Caratteristiche di affidabilità e durabilità del cluster
Selezionare il numero iniziale di tipi di nodo
Prima di tutto è necessario stabilire per che cosa verrà usato il cluster che si sta creando. Che tipo di applicazioni si prevede di distribuire nel cluster? L'applicazione ha più servizi, alcuni dei quali devono essere pubblici o per Internet? I servizi (che costituiscono l'applicazione) hanno esigenze diverse per l'infrastruttura, ad esempio cicli di CPU più elevati o una quantità maggiore di RAM? Un cluster di Service Fabric può essere costituito da più tipi di nodo: un tipo di nodo primario e uno o più tipi di nodo non primari. Di ogni tipo di nodo viene eseguito il mapping a un set di scalabilità di macchine virtuali. Ogni tipo di nodo può quindi essere aumentato o ridotto in modo indipendente, avere diversi set di porte aperte e avere metriche per la capacità diverse. Le proprietà del nodo e i vincoli di posizionamento possono essere configurati per vincolare servizi specifici a tipi di nodo specifici. Per altre informazioni, vedere Pianificazione della capacità del cluster di Service Fabric.
Selezionare le proprietà del nodo per ogni tipo di nodo
I tipi di nodo definiscono lo SKU, il numero e le proprietà delle macchine virtuali nel set di scalabilità associato.
Le dimensioni minime delle macchine virtuali per ogni tipo di nodo sono determinate dal livello di durabilità scelto per il tipo di nodo. Prima di scegliere uno SKU di macchina virtuale, assicurarsi di comprendere i passaggi necessari per il ridimensionamento verticale se si decide di avere bisogno di uno SKU di macchina virtuale diverso in futuro.
Il numero minimo di macchine virtuali per il tipo di nodo primario è determinato dal livello di affidabilità scelto.
Vedere le raccomandazioni minime per i tipi di nodo primario, i carichi di lavoro con stato nei tipi di nodo non primari e i carichi di lavoro senza stato nei tipi di nodo non primari.
Il numero minimo di nodi deve essere basato sul numero di repliche dell'applicazione o dei servizi da eseguire in questo tipo di nodo. La pianificazione della capacità per le applicazioni di Service Fabric consente di stimare le risorse necessarie per eseguire le applicazioni. È sempre possibile aumentare o ridurre il cluster in un secondo momento per modificare il carico di lavoro dell'applicazione.
Usare dischi temporanei del sistema operativo per i set di scalabilità di macchine virtuali
I dischi temporanei del sistema operativo vengono creati nella macchina virtuale locale e non salvati in Archiviazione di Azure remoti. Sono consigliate per tutti i tipi di nodo di Service Fabric (primario e secondario), perché rispetto ai dischi tradizionali del sistema operativo persistente, i dischi temporanei del sistema operativo:
- Ridurre la latenza di lettura/scrittura nel disco del sistema operativo
- Abilitare operazioni di gestione dei nodi reimpostate/ricreazione dell'immagine più veloci
- Ridurre i costi complessivi (i dischi sono gratuiti e non comportano costi di archiviazione aggiuntivi)
I dischi temporanei del sistema operativo non sono una funzionalità specifica di Service Fabric, ma piuttosto una funzionalità dei set di scalabilità di macchine virtuali di Azure mappati ai tipi di nodo di Service Fabric. L'uso con Service Fabric richiede quanto segue nel modello di Azure Resource Manager del cluster:
Assicurarsi che i tipi di nodo specifichino le dimensioni supportate delle macchine virtuali di Azure per i dischi del sistema operativo temporaneo e che le dimensioni della macchina virtuale siano sufficienti per supportare le dimensioni del disco del sistema operativo (vedere la nota seguente). Per esempio:
"vmNodeType1Size": { "type": "string", "defaultValue": "Standard_DS3_v2"
Nota
Assicurarsi di selezionare una dimensione di macchina virtuale con dimensioni della cache uguali o superiori alle dimensioni del disco del sistema operativo della macchina virtuale stessa. In caso contrario, la distribuzione di Azure potrebbe generare un errore (anche se inizialmente è accettata).
Specificare una versione del set di scalabilità di macchine virtuali (
vmssApiVersion
) di2018-06-01
o versione successiva:"variables": { "vmssApiVersion": "2018-06-01",
Nella sezione set di scalabilità di macchine virtuali del modello di distribuzione specificare
Local
l'opzione perdiffDiskSettings
:"apiVersion": "[variables('vmssApiVersion')]", "type": "Microsoft.Compute/virtualMachineScaleSets", "virtualMachineProfile": { "storageProfile": { "osDisk": { "caching": "ReadOnly", "createOption": "FromImage", "diffDiskSettings": { "option": "Local" }, } } }
Nota
Le applicazioni utente non devono avere dipendenze,file/artefatti nel disco del sistema operativo, perché il disco del sistema operativo andrebbe perso nel caso di un aggiornamento del sistema operativo.
Nota
Il set di scalabilità di macchine virtuali non temporanee esistenti non può essere aggiornato sul posto per l'uso di dischi temporanei. Per eseguire la migrazione, gli utenti dovranno aggiungere un nuovo nodeType con dischi temporanei, spostare i carichi di lavoro nel nuovo nodeType e rimuovere il nodeType esistente.
Per altre informazioni e altre opzioni di configurazione, vedere Dischi temporanei del sistema operativo per le macchine virtuali di Azure
Selezionare i livelli di durabilità e affidabilità per il cluster
Il livello di durabilità viene usato per indicare al sistema i privilegi delle VM rispetto all'infrastruttura di Azure sottostante. Nel tipo di nodo primario questo privilegio consente a Service Fabric di sospendere le richieste di infrastruttura a livello di VM (ad esempio il riavvio di una VM, il re-imaging di una VM o la migrazione di una VM) che hanno effetto sui requisiti relativi al quorum per i servizi di sistema e i servizi con stato. Nei tipi di nodo non primari questo privilegio consente a Service Fabric di sospendere le richieste di infrastruttura a livello di macchina virtuale (ad esempio, il riavvio di una VM, il re-imaging di una VM e la migrazione di una VM) che hanno effetto sui requisiti relativi al quorum per i servizi con stato. Per i vantaggi dei diversi livelli e consigli su cui usare e quando, vedere Caratteristiche di durabilità del cluster.
Il livello di affidabilità viene usato per impostare il numero di repliche dei servizi di sistema che si vuole eseguire in questo cluster nel tipo di nodo primario. I servizi di sistema nel cluster sono tanto più affidabili quanto più elevato è il numero di repliche. Per i vantaggi dei diversi livelli e consigli su cui usare e quando, vedere Caratteristiche di affidabilità del cluster.
Abilitare il proxy inverso e/o DNS
I servizi che si connettono tra loro in un cluster possono in genere accedere direttamente agli endpoint di altri servizi perché i nodi di un cluster si trovano nella stessa rete locale. Per semplificare la connessione tra servizi, Service Fabric offre servizi aggiuntivi: un servizio DNS e un servizio proxy inverso. Entrambi i servizi possono essere abilitati durante la distribuzione di un cluster.
Poiché molti servizi, in particolare i servizi in contenitori, possono avere un nome URL esistente, essere in grado di risolverli usando il protocollo DNS standard (anziché il protocollo Naming Service) è utile, soprattutto negli scenari di "lift and shift" dell'applicazione. Questo è esattamente ciò che fa il servizio DNS. Consente di eseguire il mapping di nomi DNS a nomi di servizi e di conseguenza di risolvere gli indirizzi IP degli endpoint.
Il proxy inverso indirizza i servizi nel cluster che espongono endpoint HTTP (incluso HTTPS). Il proxy inverso semplifica notevolmente la chiamata di altri servizi fornendo un formato URI specifico. Il proxy inverso gestisce anche i passaggi di risoluzione, connessione e ripetizione dei tentativi necessari per comunicare con un servizio.
Preparare l'ambiente per il ripristino di emergenza
Una parte fondamentale della distribuzione a disponibilità elevata consiste nel garantire la resistenza dei servizi a tutti i tipi di errori. Ciò è particolarmente importante per gli errori imprevisti e incontrollabili. Preparare il ripristino di emergenza descrive alcune modalità di errore comuni che potrebbero essere di emergenza se non modellate e gestite correttamente. Illustra anche le mitigazioni e le azioni da intraprendere in caso di emergenza.
Elenco di controllo per l'idoneità per la produzione
L'applicazione e il cluster sono pronti ad accettare il traffico della produzione? Prima di distribuire il cluster nell'ambiente di produzione, eseguire l'elenco di controllo per l'idoneità per la produzione. Mantenere l'applicazione e il cluster in esecuzione senza problemi usando gli elementi in questo elenco di controllo. È consigliabile eseguire il check-off di tutti questi elementi prima di passare all'ambiente di produzione.