Considerazioni sulle applicazioni per i carichi di lavoro di soluzione Azure VMware

Questo articolo illustra l'area di progettazione della piattaforma applicazione di un carico di lavoro soluzione Azure VMware. Questa area illustra le attività e le responsabilità specifiche associate alla distribuzione, alla configurazione e alla gestione delle applicazioni ospitate in un ambiente di soluzione Azure VMware. Un proprietario dell'applicazione è responsabile delle applicazioni in un ambiente soluzione Azure VMware. Questo singolo o team gestisce gli aspetti correlati alla distribuzione, alla configurazione, al monitoraggio e alla manutenzione delle applicazioni.

Gli obiettivi principali di un'applicazione ben progettata includono:

  • Progettazione per la scalabilità. Gestire in modo ottimale le richieste utente più elevate e le transazioni simultanee senza riduzione o interruzione del servizio.
  • Prestazioni. Offrire tempi di risposta veloci e a bassa latenza e gestire in modo efficiente l'utilizzo delle risorse.
  • Affidabilità e resilienza. Progettare modelli ridondanti, a tolleranza di errore per garantire che l'applicazione rimanga reattiva e recupera rapidamente da errori.

Questo articolo mira a fornire sviluppatori, architetti e proprietari di applicazioni con procedure consigliate specifiche per soluzione Azure VMware. Queste procedure consentono di creare applicazioni che rimangono affidabili, sicure, scalabili e gestibili durante il ciclo di vita.

Progettare per la scalabilità e la distribuzione efficiente delle risorse

Impatto: affidabilità, efficienza delle prestazioni, sicurezza

Questa sezione illustra l'allocazione e l'utilizzo effettivo delle risorse di calcolo tra macchine virtuali e carichi di lavoro all'interno del cloud privato soluzione Azure VMware. Queste risorse possono includere cpu, memoria, archiviazione e risorse di rete. Questa sezione illustra anche l'implementazione delle tecniche di scalabilità reattive. È possibile usare queste tecniche per adattare dinamicamente il provisioning delle risorse per soddisfare le fluttuazioni della domanda. L'obiettivo principale è quello di ottenere un utilizzo ottimale delle risorse attenuando la sottoutilizzazione e l'overprovisioning che possono causare inefficienze e spese escalation.

Usare i domini di errore

I domini di errore in soluzione Azure VMware rappresentano raggruppamenti logici di risorse all'interno di un cluster esteso. Queste risorse condividono un dominio di errore fisico comune. I domini di errore consentono di migliorare la disponibilità in vari scenari di errore. L'organizzazione delle risorse nei domini di errore consente di garantire che i componenti critici di un'applicazione vengano distribuiti in più domini di errore.

Inserendo macchine virtuali e altre risorse in domini di errore separati, il team dell'applicazione garantisce che un'applicazione rimanga disponibile durante un data center o un errore dell'infrastruttura. Ad esempio, è possibile separare le macchine virtuali in domini di errore distribuiti in data center geograficamente distribuiti. L'applicazione può quindi rimanere operativa se un data center ha un errore completo.

I team dell'applicazione devono considerare la definizione dell'affinità vm-vm e delle regole anti-affinità basate su domini di errore. Le regole di affinità vm-vm inseriscono le macchine virtuali critiche nello stesso dominio di errore per assicurarsi che non siano distribuite in più data center. Le regole anti-affinità impediscono che le macchine virtuali correlate vengano inserite insieme nello stesso dominio di errore. Questa procedura consente di garantire la ridondanza.

Usare i criteri anti-affinità della macchina virtuale nelle applicazioni a tre livelli

In soluzione Azure VMware, un caso d'uso per i criteri anti-affinità vm-vm implica un'applicazione a tre livelli. L'obiettivo è migliorare la disponibilità elevata, la tolleranza di errore e la resilienza di ogni livello applicazione. Per raggiungere questo obiettivo, è possibile usare criteri anti-affinità per distribuire i livelli tra host diversi all'interno del cloud privato soluzione Azure VMware.

Per implementare questo caso d'uso, creare un'architettura distribuita e a tolleranza di errore usando i criteri anti-affinità della macchina virtuale in tre livelli. Questa configurazione migliora la disponibilità dell'intera applicazione e garantisce che l'errore di un singolo host non interrompe l'intero livello o l'intera applicazione.

Ad esempio, nel livello Web front-end che serve le richieste utente, è possibile applicare criteri anti-affinità vm-VM per distribuire i server Web in host fisici diversi. Questo approccio consente di migliorare la disponibilità elevata e la tolleranza di errore. Analogamente, è possibile usare misure anti-affinità per proteggere i server applicazioni nel livello aziendale e rafforzare la resilienza dei dati all'interno del livello di database.

Diagramma dell'architettura che mostra un'app a tre livelli segmentata usando criteri di affinità vm-vm.

Consigli
  • Creare mappe che mostrano interdipendenza, comunicazione e modelli di utilizzo delle macchine virtuali per garantire che la prossimità sia un requisito.
  • Determinare se l'affinità dei criteri di posizionamento delle macchine virtuali consente di soddisfare le metriche delle prestazioni o i contratti di servizio.
  • Progettare la disponibilità elevata implementando criteri anti-affinità vm-vm di posizionamento per proteggere da errori host e distribuire l'applicazione in più host.
  • Per evitare il overprovisioning, distribuire il carico di lavoro tra macchine virtuali di piccole dimensioni anziché alcune macchine virtuali di grandi dimensioni.
  • Monitorare regolarmente, esaminare e ottimizzare i criteri di affinità per identificare potenziali conflitti delle risorse. Adattare questi criteri nel tempo in base alle esigenze.

Usare i criteri di affinità host della macchina virtuale per l'isolamento delle prestazioni

Alcuni carichi di lavoro che eseguono macchine virtuali in diversi livelli di applicazione offrono prestazioni migliori quando vengono raggruppati. Questo caso d'uso si verifica spesso quando le applicazioni richiedono:

  • Isolamento delle prestazioni per carichi di lavoro di calcolo ad alte prestazioni a elevato utilizzo delle risorse.
  • Conformità ai contratti di licenza. Ad esempio, le specifiche di sistema potrebbero richiedere un mapping che associa una macchina virtuale a un set specifico di core per mantenere la conformità con Windows o SQL Server licenze.
  • Conformità alle normative e integrità dei dati per garantire che le macchine virtuali che appartengono a domini di sicurezza specifici o classificazioni di dati siano limitate a host specifici o a un subset di host all'interno del cluster.
  • Configurazione di rete semplificata che inserisce le macchine virtuali nello stesso host. In questo caso, la configurazione di rete tra livelli è semplificata. I livelli condividono la stessa connettività di rete e non richiedono hop di rete aggiuntivi.

Se è essenziale mantenere la colocation dei livelli dell'applicazione, è possibile scegliere criteri di affinità host macchina virtuale per assicurarsi che i livelli vengano distribuiti nello stesso host e all'interno della stessa zona di disponibilità.

Diagramma dell'architettura che mostra un'app a tre livelli segmentata usando i criteri di affinità host della macchina virtuale.

Nota

Il team della piattaforma è responsabile della configurazione del posizionamento della macchina virtuale, delle regole di affinità host e del pool di risorse. Tuttavia, il team dell'applicazione deve comprendere i requisiti di prestazioni di ogni applicazione per assicurarsi che le esigenze dell'applicazione siano soddisfatte.

I team delle applicazioni devono valutare in modo completo il posizionamento delle macchine virtuali e impegnarsi nella pianificazione meticolosa. Il posizionamento delle macchine virtuali può presentare potenziali problemi, ad esempio gli squilibri delle risorse e la distribuzione di carichi di lavoro non uniforme. Queste situazioni possono causare effetti negativi sulle prestazioni e sull'ottimizzazione delle risorse. Inoltre, l'inserimento di tutti i carichi di lavoro in una zona di disponibilità può creare un singolo punto di errore in un'emergenza. È consigliabile replicare la configurazione in più zone di disponibilità per migliorare la resilienza del data center durante un errore.

Consigli
  • Pianificare attentamente il modo in cui si usano i criteri di affinità host della macchina virtuale di posizionamento. Prendere in considerazione soluzioni alternative, ad esempio bilanciamento del carico, pool di risorse in VMware vSphere, database distribuiti, containerizzazione e zone di disponibilità.
  • Monitorare regolarmente l'utilizzo delle risorse e le prestazioni per identificare eventuali squilibri o problemi.
  • Opta per una strategia di posizionamento delle macchine virtuali bilanciata e flessibile. Questo approccio consente di ottimizzare l'utilizzo delle risorse mantenendo la disponibilità elevata e garantendo la conformità ai requisiti di licenza.
  • Testare e convalidare le configurazioni di affinità host vm-host dei criteri di posizionamento per assicurarsi che siano allineate ai requisiti specifici dell'applicazione e che non influiscano negativamente sulle prestazioni complessive e sulla resilienza.

Distribuire il traffico usando un'applicazione o un servizio di bilanciamento del carico di rete

Oltre all'uso dei criteri di posizionamento, il bilanciamento del carico è anche un componente fondamentale delle applicazioni moderne per garantire:

  • Distribuzione efficiente delle risorse.
  • Maggiore disponibilità dell'applicazione.
  • Prestazioni ottimali dell'applicazione.

Il bilanciamento del carico soddisfa questi criteri mantenendo la flessibilità per il ridimensionamento e la gestione dei carichi di lavoro.

Dopo aver distribuito applicazioni nelle macchine virtuali, è consigliabile usare uno strumento di bilanciamento del carico, ad esempio gateway applicazione di Azure per creare pool back-end. gateway applicazione è un servizio di bilanciamento del carico del traffico Web gestito e di recapito delle applicazioni che può gestire e ottimizzare il traffico HTTP e HTTPS in ingresso alle applicazioni Web. Come punto di ingresso per il traffico Web, gateway applicazione offre vari tipi di funzionalità. Gli esempi includono la terminazione TLS/SSL, il routing basato su URL, l'affinità di sessione e le funzionalità del web application firewall.

Diagramma dell'architettura che illustra il flusso del traffico da un browser attraverso gateway applicazione ai pool back-end.

Dopo aver disponibile le risorse nei pool back-end, creare listener per specificare porte e regole di routing per le richieste in ingresso. È quindi possibile creare probe di integrità per monitorare l'integrità delle macchine virtuali e indicare quando rimuovere le risorse back-end non integre dalla rotazione.

Implementare la terminazione TLS/SSL e la gestione dei certificati

La crittografia TLS/SSL deve essere applicata per tutte le comunicazioni tra l'applicazione e i browser degli utenti. Questa crittografia consente di proteggere i dati della sessione da attacchi di intercettazione e man-in-the-middle. Se l'applicazione richiede la terminazione TLS/SSL, configurare il certificato TLS/SSL necessario in gateway applicazione per disattivare l'elaborazione TLS/SSL dalle macchine virtuali back-end.

Dopo aver generato certificati TLS/SSL, inserirli in un servizio come Azure Key Vault che consente di archiviarli e accedervi in modo sicuro. Usare PowerShell, l'interfaccia della riga di comando di Azure o gli strumenti come Automazione di Azure per aggiornare e rinnovare i certificati.

Gestire le API

Azure Gestione API consente di pubblicare internamente ed esternamente gli endpoint API distribuiti in modo sicuro. Un esempio di endpoint è un'API back-end che si trova in un cloud privato soluzione Azure VMware dietro un servizio di bilanciamento del carico o gateway applicazione. Gestione API consente di gestire i metodi e i comportamenti dell'API, ad esempio applicando criteri di sicurezza per applicare l'autenticazione e l'autorizzazione. Gestione API può anche instradare le richieste API ai servizi back-end tramite gateway applicazione.

Nel diagramma seguente il traffico da parte dei consumer passa a un endpoint pubblico Gestione API. Il traffico viene quindi inoltrato alle API back-end eseguite in soluzione Azure VMware.

Diagramma dell'architettura di un data center soluzione Azure VMware connesso a un hub centrale. L'hub ospita gateway applicazione e Gestione API.

Consigli
  • Per migliorare la sicurezza e le prestazioni delle applicazioni soluzione Azure VMware, usare gateway applicazione con soluzione Azure VMware back-end per distribuire il traffico agli endpoint dell'applicazione.
  • Assicurarsi che sia presente la connettività tra i segmenti back-end che ospitano soluzione Azure VMware e la subnet che contiene gateway applicazione o il servizio di bilanciamento del carico.
  • Configurare l'integrità dimostra di monitorare l'integrità delle istanze back-end.
  • Offload della terminazione TLS/SSL per gateway applicazione per ridurre il sovraccarico di elaborazione nelle macchine virtuali back-end.
  • Archiviare in modo sicuro le chiavi TLS/SSL negli insiemi di credenziali.
  • Semplificare i processi automatizzando le attività, ad esempio gli aggiornamenti dei certificati e i rinnovi.

Ottimizzare i cluster estesi per rafforzare la continuità aziendale e la conformità al ripristino di emergenza

Impatto: affidabilità

I cluster estesi forniscono cluster VMware con funzionalità di disponibilità elevata e ripristino di emergenza in più data center distribuiti geograficamente.

La configurazione seguente supporta architetture attive. La rete di archiviazione virtuale (vSAN) si estende su due data center. Una terza zona di disponibilità esegue il mapping a un server di controllo vSAN per fungere da quorum per scenari split-brain.

Diagramma dell'architettura che mostra un cluster esteso vSAN tra due zone di disponibilità. Una terza zona contiene un server di controllo vSAN.

La distribuzione dell'applicazione in più zone di disponibilità e aree consente di garantire la disponibilità continua durante gli errori del data center. Distribuire i livelli dell'applicazione e i livelli di dati in entrambi i data center e attivare la replica sincrona.

Configurare la tolleranza di errore e l'errore per tollerare i criteri (FTT)

La capacità totale utilizzabile dell'applicazione dipende da diverse variabili. Gli esempi includono la matrice ridondante di dischi indipendenti (RAID), il valore dell'attributo failures to tolerate e l'errore di tollerare i criteri (FTT) che controllano il numero di errori che il sistema di archiviazione può tollerare. I team delle applicazioni devono determinare il livello di ridondanza necessaria per l'applicazione. È anche importante notare che i valori FTT più elevati migliorano la resilienza dei dati, ma aumentano il sovraccarico di archiviazione.

Consigli
  • Distribuire l'applicazione nell'archiviazione condivisa in modo che i dati della macchina virtuale rimangano coerenti nel cluster esteso. Attivare la replica sincrona.
  • Configurare i domini di errore per definire il modo in cui i cluster estesi devono rispondere in uno scenario di errore.
  • Implementare il failover automatico e il failback per ridurre al minimo l'intervento manuale durante gli eventi di failover e ripristino.

Configurare i criteri di sincronizzazione e archiviazione dei dati

I metodi di sincronizzazione dei dati sono importanti quando l'applicazione si basa su dati e database con stato per garantire coerenza e disponibilità durante un'emergenza. La sincronizzazione dei dati consente di offrire disponibilità elevata e tolleranza di errore per le macchine virtuali critiche che eseguono applicazioni.

Un proprietario dell'applicazione può definire criteri di archiviazione per garantire che:

  • Macchine virtuali critiche che eseguono un'applicazione ricevono il livello necessario di ridondanza e prestazioni dei dati.
  • Le macchine virtuali sono posizionate per sfruttare le funzionalità di disponibilità elevata del cluster esteso in soluzione Azure VMware.

I criteri di esempio possono includere i fattori seguenti:

  • Configurazione vSAN. Usare vSAN VMware con un cluster esteso tra zone di disponibilità.
  • Numero di errori da tollerare. Impostare il criterio per tollerare almeno uno o più errori. Ad esempio, usare un layout RAID-1.
  • Prestazioni. Configurare le impostazioni correlate alle prestazioni per ottimizzare le operazioni di I/O al secondo e la latenza per le macchine virtuali critiche.
  • Regole di affinità. Configurare le regole di affinità per garantire che le macchine virtuali o i gruppi di macchine virtuali vengano posizionate in domini di errore o host separati all'interno del cluster esteso per ottimizzare la disponibilità durante gli errori del data center.
  • Backup e replica. Specificare l'integrazione con le soluzioni di backup e replica per garantire che i dati della macchina virtuale vengano regolarmente sottoposti a backup e replicati in una posizione secondaria per la protezione dei dati aggiuntiva.
Consigli
  • Definire i criteri di archiviazione dei dati nel vSAN per specificare la ridondanza e le prestazioni necessarie per vari dischi della macchina virtuale.
  • Configurare le applicazioni da eseguire in una configurazione attiva o passiva attiva in modo che i componenti dell'applicazione critici possano avere esito negativo durante gli errori del data center.
  • Comprendere i requisiti di rete di ogni applicazione. Le applicazioni eseguite tra zone di disponibilità possono comportare una latenza maggiore rispetto alle applicazioni con traffico all'interno di una zona di disponibilità. Progettare l'applicazione per tollerare questa latenza.
  • Eseguire test delle prestazioni sui criteri di posizionamento per valutare l'impatto sull'applicazione.

Passaggi successivi

Dopo aver esaminato la piattaforma applicazione, vedere come stabilire la connettività, creare perimetrali per il carico di lavoro e distribuire in modo uniforme il traffico ai carichi di lavoro dell'applicazione.

Usare lo strumento di valutazione per valutare le scelte di progettazione.