Eseguire la replica di un'applicazione Web multilivello basata su IIS usando Azure Site Recovery

Panoramica

Il software applicativo è il motore della produttività aziendale di un'organizzazione. Le diverse applicazioni Web possono essere usate per scopi diversi in un'organizzazione. Alcune di queste, come le applicazioni per l'elaborazione delle retribuzioni, le applicazioni finanziarie e i siti Web rivolti ai clienti possono essere fondamentali. Per l'organizzazione è importante che queste applicazioni siano sempre operative per prevenire la perdita di produttività e, aspetto ancora più importante, evitare eventuali danni all'immagine del marchio.

Le applicazioni Web critiche vengono in genere configurate come applicazioni multilivello, con il Web, il database e l'applicazione in livelli diversi. Oltre a essere distribuite in vari livelli, le applicazioni possono usare più server in ogni livello per bilanciare il carico del traffico. I mapping tra i vari livelli e nel server Web possono essere basati su indirizzi IP statici. In caso di failover, alcuni di questi mapping dovranno essere aggiornati, in particolare se sono stati configurati più siti Web nel server Web. Nel caso di applicazioni Web che usano SSL sarà necessario aggiornare le associazioni dei certificati.

I metodi di ripristino di base tradizionali senza replica prevedono il backup di diversi file di configurazione, impostazioni del registro, binding, componenti personalizzati (COM o .NET), contenuti e certificati, con il recupero dei file tramite una serie di passaggi manuali. Queste tecniche sono chiaramente complesse, soggette a errori e non scalabili. È ad esempio facile dimenticare di eseguire il backup dei certificati e dover quindi necessariamente acquistare nuovi certificati per il server dopo il failover.

Una soluzione di ripristino di emergenza valida deve consentire la modellazione dei piani di ripristino per le architetture di applicazioni complesse descritte in precedenza e consentire anche l'aggiunta di passaggi personalizzati per gestire i mapping delle applicazioni tra i vari livelli, fornendo una soluzione rapida e sicura in caso di emergenza, con un RTO inferiore.

Questo articolo descrive come proteggere un'applicazione Web basata su IIS con Azure Site Recovery. Questo articolo illustra le procedure consigliate per la replica di un'applicazione Web a tre livelli basata su IIS in Azure, come eseguire un'analisi di ripristino di emergenza e come eseguire il failover dell'applicazione in Azure.

Prerequisiti

Prima di iniziare, è necessario comprendere i concetti illustrati di seguito:

  1. Replica di una macchina virtuale in Azure
  2. Come progettare una rete di ripristino
  3. Esecuzione di un failover di test in Azure
  4. Esecuzione di un failover in Azure
  5. Come replicare un controller di dominio
  6. Come replicare SQL Server

Modelli di distribuzione

Un'applicazione Web basata su IIS segue in genere uno dei modelli di distribuzione seguenti:

**Modello di distribuzione 1 ** Web farm basata su IIS con Application Request Routing (ARR), server IIS e Microsoft SQL Server.

Modello di distribuzione

Modello di distribuzione 2 Web farm basata su IIS con Application Request Routing (ARR), server IIS, server applicazioni e Microsoft SQL Server.

Modello di distribuzione

Supporto di Site Recovery

Ai fini di questo articolo sono state usate macchine virtuali VMware con server IIS versione 7.5 in Windows Server 2012 R2 Enterprise. La replica di Site Recovery è indipendente dall'applicazione, quindi si prevede che le indicazioni fornite in questo articolo funzionino anche per gli scenari seguenti e per versioni diverse di IIS.

Origine e destinazione

Scenario In un sito secondario In Azure
Hyper-V
VMware
Server fisico No

Replicare le macchine virtuali

Seguire queste linee guida per avviare la replica di tutte le macchine virtuali della Web farm IIS in Azure.

Se si usa un indirizzo IP statico, specificare l'indirizzo IP che la macchina virtuale dovrà usare nell'impostazione IP di destinazione di Calcolo e rete.

IP di destinazione

Creazione di un piano di ripristino

Un piano di ripristino consente di definire la sequenza di failover di vari livelli in un'applicazione multilivello, conservando la coerenza dell'applicazione. Seguire questa procedura durante la creazione di un piano di ripristino per un'applicazione Web multilivello. Altre informazioni sulla creazione di un piano di ripristino.

Aggiunta di macchine virtuali a gruppi di failover

Una tipica applicazione Web IIS multilivello è costituita da un livello di database con le macchine virtuali SQL, il livello Web costituito da un server IIS e un livello di applicazione. Aggiungere tutte queste macchine virtuali a gruppi differenti in base al livello come descritto di seguito. Altre informazioni sulla personalizzazione dei piani di ripristino.

  1. Creare un piano di ripristino. Aggiungere le macchine virtuali del livello database nel gruppo 1 in modo che vengano arrestate per ultime e aperte per prime.

  2. Aggiungere le macchine virtuali del livello applicazione nel gruppo 2 in modo che vengano aperte dopo l'apertura del livello database.

  3. Aggiungere le macchine virtuali del livello Web nel gruppo 3 in modo che vengano aperte dopo l'apertura del livello applicazione.

  4. Aggiungere le macchine virtuali di bilanciamento del carico nel gruppo 4 in modo che vengano aperte dopo l'apertura del livello Web.

Aggiunta di script al piano di ripristino

Potrebbe essere necessario eseguire alcune operazioni nelle macchine virtuali di Azure dopo il failover o il failover di test per far sì che la Web farm IIS funzioni correttamente. È possibile automatizzare le operazioni dopo il failover come l'aggiornamento della voce DNS e la modifica del binding del sito e della stringa di connessione aggiungendo script corrispondenti nel piano di ripristino come indicato di seguito. Altre informazioni sull'aggiunta di script al piano di ripristino.

Aggiornamento del DNS

Se il DNS è configurato per l'aggiornamento dinamico, le macchine virtuali aggiornano in genere il DNS con il nuovo indirizzo IP all'avvio. Se si vuole aggiungere un passaggio esplicito per l'aggiornamento del DNS con i nuovi indirizzi IP delle macchine virtuali, aggiungere questo script per l'aggiornamento degli indirizzi IP nel DNS come post-azione nei gruppi del piano di ripristino.

Stringa di connessione nel file web.config di un'applicazione

La stringa di connessione specifica il database con cui comunica il sito Web.

Se la stringa di connessione contiene il nome della macchina virtuale del database, non saranno necessari altri passaggi dopo il failover e l'applicazione potrà comunicare automaticamente con il database. Se l'indirizzo IP della macchina virtuale del database viene conservato, non sarà necessario aggiornare la stringa di connessione. Se la stringa di connessione fa riferimento alla macchina virtuale del database usando un indirizzo IP, dovrà essere aggiornata dopo il failover. Ad esempio, la stringa di connessione seguente punta al database con l'indirizzo IP 127.0.1.2

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source= 127.0.1.2\SqlExpress; Initial Catalog=TestDB1;Integrated Security=False;" />
    </connectionStrings>
    </configuration>

È possibile aggiornare la stringa di connessione nel livello Web aggiungendo lo script di aggiornamento della connessione IIS dopo il gruppo 3 nel piano di ripristino.

Binding del sito per l'applicazione

Ogni sito è costituito da informazioni che includono il tipo di binding, l'indirizzo IP in cui il server IIS ascolta le richieste per il sito, il numero di porta e i nomi host per il sito. Al momento di un failover potrebbe essere necessario aggiornare questi binding se viene apportata una modifica all'indirizzo IP associato.

Nota

Se è stato selezionato "Non assegnati" per il binding del sito come nell'esempio seguente, non è necessario aggiornare questo binding dopo il failover. Se l'indirizzo IP associato a un sito non viene modificato dopo il failover, non è necessario aggiornare il binding del sito. La conservazione dell'indirizzo IP dipende dall'architettura di rete e dalle subnet assegnate ai siti primari e di ripristino e potrebbe quindi non essere fattibile per l'organizzazione.

Binding SSL

Se è stato associato l'indirizzo IP a un sito, è necessario aggiornare tutti i binding del sito con il nuovo indirizzo IP. È possibile aggiungere lo script di aggiornamento del livello Web IIS dopo il gruppo 3 nel piano di ripristino per modificare i binding del sito.

Aggiornare l'indirizzo IP del servizio di bilanciamento del carico

Se è presente una macchina virtuale Application Request Routing, aggiungere lo script di failover ARR IIS dopo il gruppo 4 per aggiornare l'indirizzo IP.

Associazione di certificati SSL per una connessione HTTPS

I siti Web possono avere un certificato SSL associato che consente una comunicazione sicura tra il server Web e il browser dell'utente. Se il sito Web ha una connessione HTTPS e un binding HTTPS del sito per l'indirizzo IP del server IIS con un'associazione di certificati SSL, sarà necessario aggiungere un nuovo binding del sito per il certificato con l'indirizzo IP della macchina virtuale IIS dopo il failover.

Il certificato SSL può essere emesso per

a) Il nome di dominio completo del sito Web
b) Il nome del server
c) Un certificato con caratteri jolly per il nome di dominio
d) Un indirizzo IP. Se il certificato SSL viene emesso per l'indirizzo IP del server IIS, sarà necessario emettere un altro certificato SSL per l'indirizzo IP del server IIS nel sito di Azure e sarà necessario creare un'altra associazione SSL per questo certificato. È quindi consigliabile non usare un certificato SSL emesso per un indirizzo IP. Si tratta di un'opzione meno usata e verrà presto deprecata in base alle nuove modifiche di CA/Browser Forum.

Aggiornare la dipendenza tra il livello Web e il livello applicazione

Se è presente una dipendenza specifica dell'applicazione basata sull'indirizzo IP delle macchine virtuali, è necessario aggiornare questa dipendenza dopo il failover.

Esecuzione di un failover di test

Seguire queste linee guida per eseguire un failover di test.

  1. Accedere al portale di Azure e selezionare l'insieme di credenziali di Servizi di ripristino.
  2. Fare clic sul piano di ripristino creato per la Web farm IIS.
  3. Fare clic su 'Failover di test'.
  4. Selezionare il punto di recupero e la rete virtuale di Azure per avviare il processo di failover di test.
  5. Quando l'ambiente secondario è disponibile, è possibile eseguire le convalide.
  6. Al termine delle convalide è possibile selezionare 'Convalide complete' per pulire l'ambiente di failover di test.

Esecuzione di un failover

Seguire queste linee guida quando si esegue un failover.

  1. Accedere al portale di Azure e selezionare l'insieme di credenziali di Servizi di ripristino.
  2. Fare clic sul piano di ripristino creato per la Web farm IIS.
  3. Fare clic su 'Failover'.
  4. Selezionare il punto di recupero per avviare il processo di failover.

Passaggi successivi

Altre informazioni sulla replica di altre applicazioni con Site Recovery.