Gestione degli aggiornamenti in sequenza delle applicazioni cloud con la replica geografica attiva del database SQLManaging rolling upgrades of cloud applications using SQL Database active geo-replication

Nota

La replica geografica attiva è ora disponibile per tutti i database in tutti i livelli.Active geo-replication is now available for all databases in all tiers.

Informazioni su come usare la replica geografica nel database SQL per abilitare gli aggiornamenti in sequenza dell'applicazione cloud.Learn how to use geo-replication in SQL Database to enable rolling upgrades of your cloud application. L'aggiornamento dovrebbe far parte della pianificazione e della progettazione della continuità aziendale perché è un'operazione che comporta interruzioni.Because upgrade is a disruptive operation, it should be part of your business continuity planning and design. In questo articolo vengono esaminati due metodi diversi per orchestrare il processo di aggiornamento e vengono discussi vantaggi e compromessi relativi a ciascuna opzione.In this article we look at two different methods of orchestrating the upgrade process, and discuss the benefits and trade-offs of each option. Ai fini di questo articolo viene usata una semplice applicazione costituita da un sito Web collegato a un database singolo come livello dati.For the purposes of this article we will use a simple application that consists of a web site connected to a single database as its data tier. L'obiettivo consiste nell'aggiornare la versione 1 dell'applicazione alla versione 2 senza effetti significativi sull'esperienza dell'utente finale.Our goal is to upgrade version 1 of the application to version 2 without any significant impact on the end-user experience.

Quando si valutano le opzioni di aggiornamento è necessario considerare i fattori seguenti:When evaluating the upgrade options you should consider the following factors:

  • Impatto sulla disponibilità dell'applicazione durante gli aggiornamenti.Impact on application availability during upgrades. Durata della limitazione o della riduzione delle prestazioni dell'applicazione.How long the application function may be limited or degraded.
  • Possibilità di eseguire il rollback in caso di errori durante l'aggiornamento.Ability to roll back in case of an upgrade failure.
  • Vulnerabilità dell'applicazione se si verifica un errore irreversibile non correlato durante l'aggiornamento.Vulnerability of the application if an unrelated catastrophic failure occurs during the upgrade.
  • Costo totale.Total dollar cost. Sono inclusi i costi aggiuntivi di ridondanza e incrementali dei componenti temporanei usati dal processo di aggiornamento.This includes additional redundancy and incremental costs of the temporary components used by the upgrade process.

Aggiornamento di applicazioni basate sui backup del database per il ripristino di emergenzaUpgrading applications that rely on database backups for disaster recovery

Se l'applicazione si basa sui backup automatici del database e usa il ripristino geografico per il ripristino di emergenza, in genere viene distribuita in una singola area di Azure.If your application relies on automatic database backups and uses geo-restore for disaster recovery, it is usually deployed to a single Azure region. In questo caso il processo di aggiornamento prevede la creazione di una distribuzione di backup di tutti i componenti dell'applicazione coinvolti nell'aggiornamento.In this case the upgrade process involves creating a backup deployment of all application components involved in the upgrade. Per ridurre al minimo le interruzioni per l'utente finale, è possibile usare Gestione traffico di Azure (WATM) con il profilo di failover.To minimize the end-user disruption you will leverage Azure Traffic Manager (WATM) with the failover profile. Il diagramma seguente illustra l'ambiente operativo prima del processo di aggiornamento.The following diagram illustrates the operational environment prior to the upgrade process. L'endpoint contoso-1.azurewebsites.net rappresenta uno slot di produzione dell'applicazione che deve essere aggiornata.The endpoint contoso-1.azurewebsites.net represents a production slot of the application that needs to be upgraded. Per poter eseguire il rollback dell'aggiornamento, è necessario creare uno slot di gestione temporanea con una copia completamente sincronizzata dell'applicazione.To enable the ability to roll back the upgrade, you need create a stage slot with a fully synchronized copy of the application. I passaggi seguenti sono necessari per preparare l'applicazione per l'aggiornamento:The following steps are required to prepare the application for the upgrade:

  1. Creare uno slot di gestione temporanea per l'aggiornamento.Create a stage slot for the upgrade. Per farlo, creare un database secondario (1) e distribuire un sito Web identico nella stessa area di Azure.To do that create a secondary database (1) and deploy an identical web site in the same Azure region. Monitorare il database secondario per verificare se il processo di seeding è stato completato.Monitor the secondary to see if the seeding process is completed.
  2. Creare un profilo di failover in Gestione traffico di Azure con contoso-1.azurewebsites.net come endpoint online e contoso-2.azurewebsites.net come endpoint offline.Create a failover profile in WATM with contoso-1.azurewebsites.net as online endpoint and contoso-2.azurewebsites.net as offline.

Nota

Le operazioni di preparazione non avranno effetti sull'applicazione nello slot di produzione, che funzionerà in modalità di accesso completo.Note the preparation steps will not impact the application in the production slot and it can function in full access mode.

Configurazione della replica geografica del database SQL.

Dopo aver completato i passaggi di preparazione, l'applicazione è pronta per l'aggiornamento effettivo.Once the preparation steps are completed the application is ready for the actual upgrade. Il diagramma seguente illustra i passaggi richiesti per il processo di aggiornamento.The following diagram illustrates the steps involved in the upgrade process.

  1. Impostare il database primario nello slot di produzione in modalità di sola lettura (3).Set the primary database in the production slot to read-only mode (3). In questo modo si assicura che l'istanza di produzione dell'applicazione (V1) resti di sola lettura durante l'aggiornamento, impedendo così la divergenza dei dati tra le istanze di database V1 e V2.This will guarantee that the production instance of the application (V1) will remain read-only during the upgrade thus preventing the data divergence between the V1 and V2 database instances.
  2. Scollegare il database secondario usando la modalità di terminazione pianificata (4).Disconnect the secondary database using the planned termination mode (4). Viene creata una copia indipendente completamente sincronizzata del database primario.It will create a fully synchronized independent copy of the primary database. Questo database verrà aggiornato.This database will be upgraded.
  3. Attivare il database primario in modalità lettura/scrittura ed eseguire lo script di aggiornamento nello slot di gestione temporanea (5).Turn the primary database to read-write mode and run the upgrade script in the stage slot (5).

Configurazione della replica geografica del database SQL.

Se l'aggiornamento è stato completato correttamente, è possibile far passare gli utenti finali alla copia di gestione temporanea dell'applicazione,If the upgrade completed successfully you are now ready to switch the end users to the staged copy the application. che diventa lo slot di produzione dell'applicazione.It will now become the production slot of the application. È richiesto qualche altro passaggio, come illustrato nel diagramma seguente.This involves a few more steps as illustrated on the following diagram.

  1. Passare l'endpoint online nel profilo di Gestione traffico di Azure su contoso-2.azurewebsites.net, che punta alla versione V2 del sito Web (6).Switch the online endpoint in the WATM profile to contoso-2.azurewebsites.net, which points to the V2 version of the web site (6). Questo diventa lo slot di produzione con l'applicazione V2 e il traffico dell'utente finale viene indirizzato a questo slot.It now becomes the production slot with the V2 application and the end-user traffic is directed to it.
  2. Se i componenti dell'applicazione V1 non sono più necessari, è possibile rimuoverli (7).If you no longer need the V1 application components so you can safely remove them (7).

Configurazione della replica geografica del database SQL.

Se il processo di aggiornamento non riesce, ad esempio a causa di un errore nello script di aggiornamento, lo slot di gestione temporanea deve essere considerato compromesso.If the upgrade process is unsuccessful, for example due to an error in the upgrade script, the stage slot should be considered compromised. Per eseguire il rollback dell'applicazione allo stato di pre-aggiornamento, è sufficiente ripristinare l'applicazione nello slot di produzione per l'accesso completo.To roll back the application to the pre-upgrade state you simply revert the application in the production slot to full access. I passaggi richiesti sono mostrati nel diagramma seguente.The steps involved are shown on the next diagram.

  1. Impostare la copia del database in modalità lettura/scrittura (8).Set the database copy to read-write mode (8). La funzionalità completa di V1 viene ripristinata nello slot di produzione.This will restore the full V1 functionally in the production slot.
  2. Eseguire l'analisi delle cause radice e rimuovere i componenti compromessi nello slot di gestione temporanea (9).Perform the root cause analysis and remove the compromised components in the stage slot (9).

A questo punto l'applicazione è completamente funzionale e le operazioni di aggiornamento possono essere ripetute.At this point the application is fully functional and the upgrade steps can be repeated.

Nota

Il rollback non richiede modifiche al profilo di Gestione traffico di Azure perché punta già a contoso-1.azurewebsites.net come endpoint attivo.The rollback does not require changes in WATM profile as it already points to contoso-1.azurewebsites.net as the active endpoint.

Configurazione della replica geografica del database SQL.

Il vantaggio principale di questa opzione è che è possibile aggiornare un'applicazione in un'unica area con una serie di semplici passaggi.The key advantage of this option is that you can upgrade an application in a single region using a set of simple steps. Il costo dell'aggiornamento è relativamente basso.The dollar cost of the upgrade is relatively low. Il compromesso principale è che, se si verifica un errore irreversibile durante l'aggiornamento, il ripristino allo stato di pre-aggiornamento comporta la ridistribuzione dell'applicazione in un'area diversa e il ripristino del database dal backup con il ripristino geografico.The main tradeoff is that if a catastrophic failure occurs during the upgrade the recovery to the pre-upgrade state will involve re-deployment of the application in a different region and restoring the database from backup using geo-restore. Questo processo causa tempi di inattività significativi.This process will result in significant downtime.

Aggiornamento di applicazioni basate sulla replica geografica del database per il ripristino di emergenzaUpgrading applications that rely on database geo-replication for disaster recovery

Se l'applicazione usa la replica geografica per la continuità aziendale, viene distribuita in almeno due aree diverse con una distribuzione attiva nell'area primaria e una distribuzione standby nell'area di backup.If your application leverages geo-replication for business continuity, it is deployed to at least two different regions with an active deployment in Primary region and a standby deployment in Backup region. Oltre ai fattori menzionati in precedenza, il processo di aggiornamento deve garantire che:In addition to the factors mentioned earlier, the upgrade process must guarantee that:

  • L'applicazione rimanga protetta da errori irreversibili in qualsiasi momento durante il processo di aggiornamentoThe application remains protected from catastrophic failures at all times during the upgrade process
  • I componenti con ridondanza geografica dell'applicazione siano aggiornati in parallelo con i componenti attiviThe geo-redundant components of the application are upgraded in parallel with the active components

Per raggiungere questi obiettivi è possibile usare Gestione traffico di Azure (WATM) con il profilo di failover con un endpoint attivo e tre endpoint di backup.To achieve these goals you will leverage Azure Traffic Manager (WATM) using the failover profile with one active and three backup endpoints. Il diagramma seguente illustra l'ambiente operativo prima del processo di aggiornamento.The following diagram illustrates the operational environment prior to the upgrade process. I siti Web contoso-1.azurewebsites.net e contoso-dr.azurewebsites.net rappresentano uno slot di produzione dell'applicazione con ridondanza geografica completa.The web sites contoso-1.azurewebsites.net and contoso-dr.azurewebsites.net represent a production slot of the application with full geographic redundancy. Per poter eseguire il rollback dell'aggiornamento, è necessario creare uno slot di gestione temporanea con una copia completamente sincronizzata dell'applicazione.To enable the ability to roll back the upgrade, you need create a stage slot with a fully synchronized copy of the application. Anche lo slot di gestione temporanea deve avere la funzionalità di ridondanza geografica perché è necessario assicurare un recupero rapido dell'applicazione in caso di errori irreversibili durante il processo di aggiornamento.Because you need to ensure that the application can quickly recover in case a catastrophic failure occurs during the upgrade process, the stage slot needs to be geo-redundant as well. I passaggi seguenti sono necessari per preparare l'applicazione per l'aggiornamento:The following steps are required to prepare the application for the upgrade:

  1. Creare uno slot di gestione temporanea per l'aggiornamento.Create a stage slot for the upgrade. Per farlo, creare un database secondario (1) e distribuire una copia identica di un sito Web nella stessa area di Azure.To do that create a secondary database (1) and deploy an identical copy of the web site in the same Azure region. Monitorare il database secondario per verificare se il processo di seeding è stato completato.Monitor the secondary to see if the seeding process is completed.
  2. Creare un database secondario con ridondanza geografica nello slot di gestione temporanea usando la replica geografica del database secondario nell'area di backup, chiamata "replica geografica concatenata".Create a geo-redundant secondary database in the stage slot by geo-replicating the secondary database to the backup region (this is called "chained geo-replication"). Monitorare il database secondario di backup per verificare se il processo di seeding è stato completato (3).Monitor the backup secondary to see if the seeding process is completed (3).
  3. Creare una copia standby del sito Web nell'area di backup e collegarla al database secondario con ridondanza geografica (4).Create a standby copy of the web site in the backup region and link it to the geo-redundant secondary (4).
  4. Aggiungere gli altri endpoint contoso-2.azurewebsites.net e contoso-3.azurewebsites.net al profilo di failover in Gestione traffico di Azure come endpoint offline (5).Add the additional endpoints contoso-2.azurewebsites.net and contoso-3.azurewebsites.net to the failover profile in WATM as offline endpoints (5).

Nota

Le operazioni di preparazione non avranno effetti sull'applicazione nello slot di produzione, che funzionerà in modalità di accesso completo.Note the preparation steps will not impact the application in the production slot and it can function in full access mode.

Configurazione della replica geografica del database SQL.

Dopo aver completato i passaggi di preparazione, lo slot di gestione temporanea è pronto per l'aggiornamento.Once the preparation steps are completed, the stage slot is ready for the upgrade. Il diagramma seguente illustra questi passaggi di aggiornamento.The following diagram illustrates the upgrade steps.

  1. Impostare il database primario nello slot di produzione in modalità di sola lettura (6).Set the primary database in the production slot to read-only mode (6). In questo modo si assicura che l'istanza di produzione dell'applicazione (V1) resti di sola lettura durante l'aggiornamento, impedendo così la divergenza dei dati tra le istanze di database V1 e V2.This will guarantee that the production instance of the application (V1) will remain read-only during the upgrade thus preventing the data divergence between the V1 and V2 database instances.
  2. Scollegare il database secondario nella stessa area usando la modalità di terminazione pianificata (7).Disconnect the secondary database in the same region using the planned termination mode (7). Viene creata una copia indipendente completamente sincronizzata del database primario, che diventerà automaticamente primaria dopo la terminazione.It will create a fully synchronized independent copy of the primary database, which will automatically become a primary after the termination. Questo database verrà aggiornato.This database will be upgraded.
  3. Attivare il database primario nello slot di gestione temporanea in modalità lettura/scrittura ed eseguire lo script di aggiornamento (8).Turn the primary database in the stage slot to read-write mode and run the upgrade script (8).

Configurazione della replica geografica del database SQL.

Se l'aggiornamento è stato completato correttamente, è possibile far passare gli utenti finali alla versione V2 dell'applicazione.If the upgrade completed successfully you are now ready to switch the end users to the V2 version of the application. Il diagramma seguente illustra i passaggi richiesti.The following diagram illustrates the steps involved.

  1. Passare all'endpoint attivo nel profilo di Gestione traffico di Azure su contoso-2.azurewebsites.net, che ora punta alla versione V2 del sito Web (9).Switch the active endpoint in the WATM profile to contoso-2.azurewebsites.net, which now points to the V2 version of the web site (9). Questo diventa uno slot di produzione con l'applicazione V2 e il traffico dell'utente finale viene indirizzato a questo slot.It now becomes a production slot with the V2 application and end-user traffic is directed to it.
  2. Se l'applicazione V1 non è più necessaria, è possibile rimuoverla (10 e 11).If you no longer need the V1 application so you can safely remove it (10 and 11).

Configurazione della replica geografica del database SQL.

Se il processo di aggiornamento non riesce, ad esempio a causa di un errore nello script di aggiornamento, lo slot di gestione temporanea deve essere considerato compromesso.If the upgrade process is unsuccessful, for example due to an error in the upgrade script, the stage slot should be considered compromised. Per eseguire il rollback dell'applicazione allo stato di pre-aggiornamento, è sufficiente ripristinare l'uso dell'applicazione nello slot di produzione con l'accesso completo.To roll back the application to the pre-upgrade state you simply revert to using the application in the production slot with full access. I passaggi richiesti sono mostrati nel diagramma seguente.The steps involved are shown on the next diagram.

  1. Impostare la copia del database primario nello slot di produzione in modalità lettura/scrittura (12).Set the primary database copy in the production slot to read-write mode (12). La funzionalità completa di V1 viene ripristinata nello slot di produzione.This will restore the full V1 functionally in the production slot.
  2. Eseguire l'analisi delle cause radice e rimuovere i componenti compromessi nello slot di gestione temporanea (13 e 14).Perform the root cause analysis and remove the compromised components in the stage slot (13 and 14).

A questo punto l'applicazione è completamente funzionale e le operazioni di aggiornamento possono essere ripetute.At this point the application is fully functional and the upgrade steps can be repeated.

Nota

Il rollback non richiede modifiche al profilo di Gestione traffico di Azure perché punta già a contoso-1.azurewebsites.net come endpoint attivo.The rollback does not require changes in WATM profile as it already points to contoso-1.azurewebsites.net as the active endpoint.

Configurazione della replica geografica del database SQL.

Il vantaggio principale di questa opzione è che è possibile aggiornare in parallelo sia l'applicazione che la copia con ridondanza geografica senza compromettere la continuità aziendale durante l'aggiornamento.The key advantage of this option is that you can upgrade both the application and its geo-redundant copy in parallel without compromising your business continuity during the upgrade. Il compromesso principale è che viene richiesta una doppia ridondanza per ogni componente dell'applicazione, che comporta un aumento dei costiThe main tradeoff is that it requires double redundancy of each application component and therefore incurs higher dollar cost. e un flusso di lavoro più complesso.It also involves a more complicated workflow.

RiepilogoSummary

I due metodi di aggiornamento descritti nell'articolo differiscono in termini di complessità e di costo, ma entrambi si concentrano sulla riduzione dei tempi quando l'utente finale è limitato alle operazioni di sola lettura.The two upgrade methods described in the article differ in complexity and the dollar cost but they both focus on minimizing the time when the end user is limited to read-only operations. Questo periodo di tempo viene definito direttamente dalla durata dello script di aggiornamento.That time is directly defined by the duration of the upgrade script. Non dipende dalle dimensioni del database, dal livello di servizio scelto, dalla configurazione del sito Web e da altri fattori difficilmente controllabili.It does not depend on the database size, the service tier you chose, the web site configuration and other factors that you cannot easily control. Ciò è possibile perché tutti i passaggi di preparazione sono separati dalle operazioni di aggiornamento e possono essere eseguiti senza alcun impatto sull'applicazione di produzione.This is because all the preparation steps are decoupled from the upgrade steps and can be done without impacting the production application. L'efficienza dello script di aggiornamento è il fattore determinante per l'esperienza dell'utente finale durante gli aggiornamenti.The efficiency of the upgrade script is the key factor that determines the end-user experience during upgrades. Il modo ottimale per migliorarla, quindi, consiste nel concentrare gli sforzi sullo script di aggiornamento, per renderlo il più efficiente possibile.So the best way you can improve it is by focusing your efforts on making the upgrade script as efficient as possible.

Passaggi successiviNext steps