Condividi tramite


Affidabilità in Servizio app di Azure

Servizio app di Azure è un servizio basato su HTTP per l'hosting di applicazioni Web, API REST e back-end per dispositivi mobili. Il servizio app si integra con Microsoft Azure per garantire sicurezza, bilanciamento del carico, scalabilità automatica e gestione automatizzata per le applicazioni. Come servizio di Azure, il servizio app offre una gamma di funzionalità per supportare i requisiti di affidabilità.

Quando si usa Azure, l'affidabilità è una responsabilità condivisa. Microsoft offre una gamma di funzionalità per supportare la resilienza e il ripristino. L'utente è responsabile della comprensione del funzionamento di tali funzionalità all'interno di tutti i servizi usati e della selezione delle funzionalità necessarie per soddisfare gli obiettivi aziendali e gli obiettivi di tempo di attività.

Questo articolo descrive come rendere resiliente il servizio app a un'ampia gamma di potenziali interruzioni e problemi, tra cui errori temporanei, interruzioni della zona di disponibilità, interruzioni dell'area e manutenzione del servizio. Descrive anche come usare i backup per il ripristino da altri tipi di problemi ed evidenzia alcune informazioni chiave sul contratto di servizio del servizio app.

Annotazioni

Per informazioni sul supporto dell'affidabilità nell'Ambiente di Servizio App, vedere Affidabilità nell'Ambiente di Servizio App.

Raccomandazioni per la distribuzione di produzione

Azure Well-Architected Framework offre raccomandazioni su affidabilità, prestazioni, sicurezza, costi e operazioni. Per comprendere in che modo queste aree influiscono tra loro e contribuiscono a una soluzione App Service affidabile, vedere Procedure consigliate per l'architettura del servizio App (App Web) nel framework ben strutturato di Azure.

Panoramica dell'architettura di affidabilità

Quando si crea un'app Web del servizio app, si specifica il piano di servizio app che esegue l'app.

Un piano di servizio app definisce un set di risorse di calcolo che eseguono le app Web. Tutte le app Web devono essere eseguite all'interno di un piano. È possibile ridimensionare un piano per l'esecuzione in più istanze di macchina virtuale, dette anche ruoli di lavoro. Queste istanze forniscono le risorse di calcolo che eseguono il codice dell'app. Un singolo piano di servizio app può ospitare più app. Tutte le app vengono eseguite nello stesso set condiviso di istanze di macchina virtuale.

Il servizio app offre le funzionalità di ridondanza seguenti:

  • Distribuzione tra domini di errore: a livello di piattaforma, Azure distribuisce automaticamente le istanze di macchine virtuali del piano di servizio app tra domini di errore all'interno dell'area di Azure. Questa distribuzione riduce al minimo il rischio di errori hardware localizzati raggruppando le macchine virtuali che condividono un commutatore di alimentazione e un commutatore di rete comuni.

  • Distribuzione tra zone di disponibilità: se si abilita la ridondanza della zona in un piano di servizio app supportato, Azure distribuisce le istanze tra le zone di disponibilità all'interno dell'area. Questa configurazione offre maggiore resilienza se si verifica un'interruzione della zona. Per altre informazioni sulla ridondanza della zona, vedere Supporto della zona di disponibilità.

  • Ridimensionamento app: quando si configura il piano di servizio app per eseguire più istanze di macchina virtuale, tutte le app nel piano vengono eseguite in tutte le istanze per impostazione predefinita. Se si configura il piano per la scalabilità automatica, per tutte le app insieme viene eseguito lo scale out in base alle impostazioni di scalabilità automatica. Tuttavia, è possibile personalizzare il numero di istanze del piano che eseguono un'app specifica usando il ridimensionamento per app.

  • Unità di scala: internamente, Servizi app viene eseguito in un'infrastruttura di piattaforma denominata unità di scala, nota anche come timbri di gomma o spazi Web. Un'unità di scala include tutti i componenti necessari per ospitare ed eseguire il servizio app, comprendenti risorse calcolo, archiviazione, rete e bilanciamento del carico. Azure gestisce le unità di scala per garantire la distribuzione bilanciata del carico di lavoro, eseguire la manutenzione di routine e mantenere l'affidabilità complessiva della piattaforma.

    Alcune funzionalità potrebbero essere applicate solo a unità di scala specifiche. Ad esempio, alcune unità di scala del servizio app potrebbero supportare la ridondanza della zona, mentre altre unità di scala nella stessa area no.

Resilienza a errori temporanei

Gli errori temporanei sono errori brevi e intermittenti nei componenti. Spesso si verificano in un ambiente distribuito come il cloud e rappresentano una parte normale delle operazioni. Gli errori temporanei si correggono dopo un breve periodo di tempo. È importante che le applicazioni possano gestire gli errori temporanei, in genere ripetendo le richieste interessate.

Tutte le applicazioni ospitate nel cloud devono seguire le indicazioni sulla gestione degli errori temporanei di Azure quando comunicano con qualsiasi API, database e altri componenti ospitati nel cloud. Per altre informazioni, vedere Raccomandazioni per la gestione degli errori temporanei.

In genere, gli SDK forniti da Microsoft gestiscono gli errori temporanei. Poiché si ospitano applicazioni personalizzate nel servizio app, seguire i passaggi per ridurre l'eventualità probabilità di errori temporanei:

  • Distribuire più istanze nel piano. App Service esegue aggiornamenti automatici e altre forme di manutenzione sulle istanze nel tuo piano. Se un'istanza diventa non integra, il servizio può sostituirla automaticamente con una nuova istanza integra. Durante il processo di sostituzione, può verificarsi un breve periodo quando l'istanza precedente non è disponibile e una nuova istanza non è pronta per gestire il traffico. Per mitigare questi effetti, distribuire più istanze del piano di servizio app.

  • Usare gli slot di distribuzione. Gli slot di distribuzione del servizio app consentono distribuzioni senza tempi di inattività delle applicazioni. Usare gli slot di distribuzione per ridurre al minimo l'effetto delle distribuzioni e delle modifiche di configurazione per gli utenti. Gli slot di distribuzione riducono anche la probabilità che l'applicazione si riavvii. Il riavvio dell'applicazione causa un errore temporaneo.

  • Evitare di aumentare o ridurre le prestazioni. Queste operazioni modificano la CPU, la memoria e altre risorse assegnate a ogni istanza e possono attivare un riavvio dell'applicazione. Selezionare invece un livello e le dimensioni dell'istanza che soddisfano i requisiti di prestazioni in un carico tipico. Per eseguire lo scale out e lo scale in, aggiungere e rimuovere in modo dinamico le istanze per gestire le modifiche nel volume di traffico.

Resilienza ai guasti delle zone di disponibilità

Le zone di disponibilità sono gruppi di data center separati fisicamente all'interno di un'area di Azure. In caso di errore di una zona, i servizi possono eseguire il failover in una delle zone rimanenti.

Per i livelli Premium da v2 a v4, è possibile configurare il servizio app come con ridondanza della zona, in modo che le risorse vengano distribuite tra più zone di disponibilità. La distribuzione tra più zone consente ai carichi di lavoro di produzione di ottenere resilienza e affidabilità. Quando si configura la ridondanza della zona nei piani di servizio app, tutte le app che usano il piano diventano con ridondanza della zona.

Requisiti

Per abilitare la ridondanza della zona, è necessario soddisfare i requisiti seguenti:

Distribuzione di istanze tra zone

Quando si crea un piano di servizio app con ridondanza della zona, Azure distribuisce le istanze del piano tra le zone di disponibilità nell'area. Questa distribuzione garantisce che le app rimangano disponibili anche se si verifica un'interruzione di una zona.

La distribuzione delle istanze in un deployment con ridondanza di zona segue regole specifiche. Queste regole si applicano anche quando l'app esegue lo scale in e lo scale out:

  • Istanze minime: Il piano di servizio App deve avere almeno due istanze per la ridondanza geografica.

  • Zone di disponibilità massime supportate dal piano: Azure determina il numero di zone di disponibilità che il piano può usare, denominato maximumNumberOfZones. Per visualizzare il numero di zone di disponibilità che il piano specifico può usare, vedere Controllare il supporto della ridondanza della zona per un piano di servizio app.

  • Distribuzione delle istanze: quando la ridondanza della zona è abilitata, Azure distribuisce automaticamente le istanze del piano tra più zone di disponibilità. La distribuzione si basa sulle regole seguenti:

    • Se il numero di istanze supera maximumNumberOfZones e si divide in modo uniforme, Azure distribuisce le istanze in modo uniforme tra le zone.

    • Se il numero di istanze non si divide uniformemente, Azure distribuisce le istanze rimanenti tra le zone rimanenti.

    • Quando la piattaforma del servizio app alloca le istanze per un piano di servizio app con ridondanza della zona, usa il bilanciamento della zona ottimale fornito dai set di scalabilità di macchine virtuali di Azure sottostanti. Un piano viene bilanciato se ogni zona ha lo stesso numero di macchine virtuali o differisce per un'istanza da tutte le altre zone. Per altre informazioni, vedere Bilanciamento della zona.

  • Posizionamento della zona fisica: È possibile visualizzare la zona di disponibilità fisica usata per ogni istanza del piano di servizio app. Per altre informazioni, vedere Visualizzare le zone fisiche per un piano di servizio App.

Considerazioni

Per i piani Premium da v2 a v4, un'interruzione della zona di disponibilità potrebbe influire su alcuni aspetti del servizio app di Azure, anche se l'applicazione continua a gestire il traffico. Questi comportamenti includono il ridimensionamento del piano di servizio app, la creazione di applicazioni, la configurazione dell'applicazione e la pubblicazione di applicazioni.

Quando si abilita la ridondanza della zona nel piano da App Service Premium v2 a v4, si migliora anche la resilienza durante gli aggiornamenti della piattaforma. Per altre informazioni, vedere Resilienza alla manutenzione del servizio.

Per i piani di servizio app non configurati come con ridondanza della zona, le istanze della macchina virtuale sottostante non sono resilienti agli errori della zona di disponibilità. Possono riscontrare tempi di inattività durante un'interruzione in qualsiasi zona di tale area.

Costi

Quando si usano piano del servizio app Premium da v2 a v4, l'abilitazione delle zone di disponibilità non comporta costi aggiuntivi se sono presenti due o più istanze. Gli addebiti sono basati sullo SKU del piano di servizio app, sulla capacità specificata e su tutte le istanze ridimensionate in base ai criteri di scalabilità automatica.

Se si abilitano le zone di disponibilità ma si specifica una capacità inferiore a due, la piattaforma applica un numero minimo di istanze pari a due. La piattaforma addebita l'utente per queste due istanze.

Configurare il supporto della zona di disponibilità

Pianificazione e gestione della capacità

Per prepararsi per eventuali errori della zona di disponibilità, valutare di eseguire il provisioning eccessivo della capacità del piano di servizio app. Questo approccio consente alla soluzione di tollerare alcune perdite di capacità e continuare a funzionare senza riduzione delle prestazioni. Per altre informazioni, vedere Gestire la capacità usando l'over-provisioning.

Comportamento quando tutte le zone sono integre

L'elenco seguente descrive cosa aspettarsi quando i piani di servizio app sono configurati per la ridondanza della zona e tutte le zone di disponibilità sono operative:

  • Routing del traffico tra zone: durante le normali operazioni, il traffico viene instradato tra tutte le istanze del piano di servizio app disponibili in tutte le zone di disponibilità.

  • Replica dei dati tra zone: Durante le normali operazioni, qualsiasi stato archiviato nel file system dell'applicazione viene archiviato nell'archiviazione con ridondanza della zona e replicato in modo sincrono tra le zone di disponibilità.

Comportamento durante un errore di zona

L'interruzione di una zona di disponibilità potrebbe influire su alcuni aspetti del servizio app, anche se l'applicazione continua a gestire il traffico. Questi comportamenti includono il ridimensionamento del piano di servizio app, la creazione di applicazioni, la configurazione dell'applicazione e la pubblicazione di applicazioni.

L'elenco seguente descrive cosa aspettarsi quando i piani di servizio app sono configurati per la ridondanza della zona e una o più zone di disponibilità non sono disponibili:

  • Rilevamento e risposta: La piattaforma del servizio app rileva automaticamente gli errori in una zona di disponibilità e avvia una risposta. Non è necessario alcun intervento manuale per avviare un failover di zona.
  • Richieste attive: tutte le richieste in corso che si connettono a un'istanza del piano di servizio app nella zona di disponibilità con errore vengono terminate. Riprovare tali queste richieste.

  • Reindirizzamento del traffico: il servizio app rileva le istanze perse da tale zona e tenta di trovare nuove istanze sostitutive. Dopo che il servizio app trova le sostituzioni, distribuisce il traffico tra le nuove istanze in base alle esigenze.

    Se la scalabilità automatica è configurata e determina che sono necessarie più istanze, richiede istanze dal servizio app. Il comportamento della scalabilità automatica vale indipendentemente dal comportamento della piattaforma del servizio app. Pertanto, la specifica del numero di istanze non deve essere un multiplo di due. Per ulteriori informazioni, vedere Aumentare le risorse di un'app in App Service e Panoramica della scalabilità automatica.

    Importante

    Azure non garantisce che le richieste per più istanze riescano in uno scenario zone-down. La piattaforma tenta di eseguire il back-fill delle istanze perse su una base best-effort. Se è necessaria capacità garantita durante l'errore di una zona di disponibilità, creare e configurare i piani di servizio app per tenere conto della perdita di zona eseguendo l'over-provisioning della capacità.

  • Comportamenti non di runtime: le applicazioni in un piano di servizio app con ridondanza della zona continuano a essere eseguite e gestire il traffico anche se si verifica l'interruzione di una zona di disponibilità. Tuttavia, i comportamenti non di runtime potrebbero essere interessati durante un'interruzione della zona di disponibilità. Questi comportamenti includono il ridimensionamento del piano di servizio app, la creazione di applicazioni, la configurazione dell'applicazione e la pubblicazione di applicazioni.

Ripristino della zona

Quando la zona di disponibilità viene ripristinata, il servizio app crea automaticamente istanze nella zona di disponibilità ripristinata, rimuove tutte le istanze temporanee create nelle altre zone di disponibilità e instrada il traffico tra le istanze come di consueto.

Verifica dei guasti di zona

La piattaforma del servizio app gestisce il routing del traffico, il failover e il failback per i piani di servizio app con ridondanza della zona. Questa funzionalità è completamente gestita, quindi non è necessario avviare o convalidare i processi di errore della zona di disponibilità.

Resilienza agli errori a livello di area

Il servizio app è un servizio a area singola. Se l'area diventa non disponibile, anche l'applicazione non sarà disponibile.

Soluzioni personalizzate in più aree per la resilienza

Per ridurre il rischio di un errore a singola area che interessa l'applicazione, è possibile distribuire piani in più aree. I passaggi seguenti consentono di rafforzare la resilienza:

  • Distribuire l'applicazione nei piani in ogni area.
  • Configurare il bilanciamento del carico e i criteri di failover.
  • Replicare i dati tra aree in modo da poter ripristinare l'ultimo stato dell'applicazione.

Considerare le risorse correlate seguenti:

Backup e ripristino

Quando si usa il livello Basic o superiore, è possibile eseguire il backup delle app del servizio app in un file usando le funzionalità di backup e ripristino del servizio app.

Queste funzionalità sono utili quando è difficile ridistribuire il codice o quando si archivia lo stato su disco. La maggior parte delle soluzioni non deve basarsi esclusivamente sui backup. Usare invece le altre funzionalità descritte in questa guida per supportare i requisiti di resilienza. Tuttavia, i backup proteggono da alcuni rischi che altri approcci non comportano.

Importante

A partire dal 31 marzo 2028, i backup personalizzati del Servizio app di Azure non supporteranno più il backup dei database collegati. Per altre informazioni, vedere Deprecazione dei backup del database collegato.

Usare invece gli strumenti di backup e ripristino nativi del database collegato. Per altre informazioni, vedere Eseguire il backup e il ripristino dell'app nel servizio app.

Resilienza alla manutenzione del servizio

Il servizio app esegue aggiornamenti regolari del servizio e altre attività di manutenzione. Per mantenere la capacità prevista durante un aggiornamento, la piattaforma aggiunge automaticamente istanze aggiuntive del piano di servizio app durante il processo di aggiornamento.

Abilitare la ridondanza zonale. Quando si abilita la ridondanza della zona nel piano di servizio app, si migliora anche la resilienza durante gli aggiornamenti della piattaforma. I domini di aggiornamento sono costituiti da raccolte di macchine virtuali che passano offline durante un aggiornamento ed eseguono il mapping alle zone di disponibilità. La distribuzione di più istanze nel piano di servizio app e l'abilitazione della ridondanza della zona per il piano aggiunge un ulteriore livello di resilienza se un'istanza o una zona diventa non integra durante un aggiornamento.

Per altre informazioni, vedere Manutenzione pianificata di routine per il servizio app e Manutenzione di routine per il servizio app, riavvii e tempi di inattività.

Contratto di servizio

Il contratto di servizio (SLA) per i servizi di Azure descrive la disponibilità prevista di ogni servizio e le condizioni che la soluzione deve soddisfare per raggiungere tale aspettativa di disponibilità. Per altre informazioni, vedere Contratti di servizio per Servizi online.

Quando si distribuisce un piano di servizio app con ridondanza della zona, la percentuale di tempo di attività definita nel contratto di servizio aumenta.