Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
Supporto regionale: Per i piani di Servizio app Premium v2 e v3, la ridondanza della zona è supportata in qualsiasi regione che supporta le zone di disponibilità.
Tipo di piano: Utilizzare i tipi di piano Premium da v2 a v4.
Importante
Per abilitare la ridondanza delle zone per i piani App Service Premium v4, è necessario verificare che l'area desiderata supporti i piani v4 e che supporti le zone di disponibilità.
Numero minimo di istanze: Distribuire almeno due istanze nel piano.
Unità di scala: L'app deve essere distribuita in un'unità di scala che supporta le zone di disponibilità. Non è possibile controllare direttamente l'unità di scala usata dal piano. Al contrario, quando si crea un piano di servizio app, il piano viene assegnato a un'unità di scala in base al gruppo di risorse del piano. Per determinare se l'unità di scala per il piano di servizio app supporta la ridondanza della zona, vedere Controllare il supporto della ridondanza della zona per un piano di servizio app.
Se il piano di Servizio app si trova in un'unità di scala che non supporta la ridondanza zonale, non è possibile abilitare la ridondanza zonale nel piano. È invece necessario ridistribuire le app in un nuovo piano in un'unità di scala diversa.
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à
Creare un nuovo piano di servizio app con ridondanza della zona. Per altre informazioni, vedere Creare un nuovo piano di servizio app che include la ridondanza della zona.
Abilitare o disabilitare la ridondanza della zona in un piano di servizio app esistente. Per altre informazioni, vedere Impostare la ridondanza della zona per un piano di servizio app esistente.
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.
Notifica: Microsoft non invia automaticamente una notifica quando una zona è inattiva. Tuttavia:
È possibile usare Integrità risorse di Azure per monitorare l'integrità di una singola risorsa ed è possibile configurare gli avvisi di Integrità risorse per notificare i problemi.
È possibile usare Integrità dei servizi di Azure per comprendere l'integrità complessiva del servizio, inclusi eventuali errori di zona, ed è possibile configurare gli avvisi di integrità dei servizi per notificare eventuali problemi.
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:
- Architettura di riferimento: applicazione Web a più aree a disponibilità elevata
- Approcci da considerare
- Esercitazione: Creare un'app a più aree a disponibilità elevata nel servizio app
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.