Eseguire la replica di un'applicazione Web multilivello basata su IIS usando Azure Site RecoveryReplicate a multi-tier IIS based web application using Azure Site Recovery

PanoramicaOverview

Il software applicativo è il motore della produttività aziendale di un'organizzazione.Application software is the engine of business productivity in an organization. Le diverse applicazioni Web possono essere usate per scopi diversi in un'organizzazione.Various web applications can serve different purposes in an organization. Alcune di queste, come le applicazioni per l'elaborazione delle retribuzioni, le applicazioni finanziarie e i siti Web rivolti ai clienti possono essere fondamentali.Some of these like payroll processing, financial applications and customer facing websites can be utmost critical for an organization. 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.It will be important for the organization to have them up and running at all times to prevent loss of productivity and more importantly prevent any damage to the brand image of the organization.

Le applicazioni Web critiche vengono in genere configurate come applicazioni multilivello, con il Web, il database e l'applicazione in livelli diversi.Critical web applications are typically set up as multi-tier applications with the web, database and application on different tiers. Oltre a essere distribuite in vari livelli, le applicazioni possono usare più server in ogni livello per bilanciare il carico del traffico.Apart from being spread across various tiers, the applications may also be using multiple servers in each tier to load balance the traffic. I mapping tra i vari livelli e nel server Web possono essere basati su indirizzi IP statici.Moreover, the mappings between various tiers and on the web server may be based on static IP addresses. In caso di failover, alcuni di questi mapping dovranno essere aggiornati, in particolare se sono stati configurati più siti Web nel server Web.On failover, some of these mappings will need to be updated, especially, if you have multiple websites configured on the web server. Nel caso di applicazioni Web che usano SSL sarà necessario aggiornare le associazioni dei certificati.In case of web applications using SSL, certificate bindings will need to be updated.

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.Traditional non-replication based recovery methods involve backing up of various configuration files, registry settings, bindings, custom components (COM or .NET), content and also certificates and recovering the files through a set of manual steps. Queste tecniche sono chiaramente complesse, soggette a errori e non scalabili.These techniques are clearly cumbersome, error prone and not scalable. È ad esempio facile dimenticare di eseguire il backup dei certificati e dover quindi necessariamente acquistare nuovi certificati per il server dopo il failover.It is, for example, easily possible for you to forget backing up certificates and be left with no choice but to buy new certificates for the server after 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.A good disaster recovery solution, should allow modeling of recovery plans around the above complex application architectures and also have the ability to add customized steps to handle application mappings between various tiers hence providing a single-click sure shot solution in the event of a disaster leading to a lower RTO.

Questo articolo descrive come proteggere un'applicazione Web basata su IIS con Azure Site Recovery.This article describes how to protect an IIS based web application using a 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.This article will cover best practices for replicating a three tier IIS based web application to Azure, how you can do a disaster recovery drill, and how you can failover the application to Azure.

PrerequisitiPrerequisites

Prima di iniziare, è necessario comprendere i concetti illustrati di seguito:Before you start, make sure you understand the following:

  1. Replica di una macchina virtuale in AzureReplicating a virtual machine to Azure
  2. Come progettare una rete di ripristinoHow to design a recovery network
  3. Esecuzione di un failover di test in AzureDoing a test failover to Azure
  4. Esecuzione di un failover in AzureDoing a failover to Azure
  5. Come replicare un controller di dominioHow to replicate a domain controller
  6. Come replicare SQL ServerHow to replicate SQL Server

Modelli di distribuzioneDeployment patterns

Un'applicazione Web basata su IIS segue in genere uno dei modelli di distribuzione seguenti:An IIS based web application typically follows one of the following deployment patterns:

Modello di distribuzione 1 ** Web farm basata su IIS con Application Request Routing (ARR), server IIS e Microsoft SQL Server.Deployment pattern 1 ** An IIS based web farm with Application Request Routing(ARR), IIS Server and 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.Deployment pattern 2 An IIS based web farm with Application Request Routing(ARR), IIS Server, Application Server, and Microsoft SQL Server.

Modello di distribuzione

Supporto di Site RecoverySite Recovery support

Ai fini di questo articolo sono state usate macchine virtuali VMware con server IIS versione 7.5 in Windows Server 2012 R2 Enterprise.For the purpose of creating this article VMware virtual machines with IIS Server version 7.5 on Windows Server 2012 R2 Enterprise were used. 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.As site recovery replication is application agnostic, the recommendations provided here are expected to hold on following scenarios as well and for different version of IIS.

Origine e destinazioneSource and target

ScenarioScenario In un sito secondarioTo a secondary site In AzureTo Azure
Hyper-VHyper-V Yes Yes
VMwareVMware Yes Yes
Server fisicoPhysical server NoNo Yes

Replicare le macchine virtualiReplicate virtual machines

Seguire queste linee guida per avviare la replica di tutte le macchine virtuali della Web farm IIS in Azure.Follow this guidance to start replicating all the IIS web farm virtual machines to 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.If you are using a static IP then specify the IP that you want the virtual machine to take in the Target IP setting in Compute and Network settings.

IP di destinazione

Creazione di un piano di ripristinoCreating a recovery plan

Un piano di ripristino consente di definire la sequenza di failover di vari livelli in un'applicazione multilivello, conservando la coerenza dell'applicazione.A recovery plan allows sequencing the failover of various tiers in a multi-tier application, hence, maintaining application consistency. Seguire questa procedura durante la creazione di un piano di ripristino per un'applicazione Web multilivello.Follow the below steps while creating a recovery plan for a multi-tier web application. Altre informazioni sulla creazione di un piano di ripristino.Learn more about creating a recovery plan.

Aggiunta di macchine virtuali a gruppi di failoverAdding virtual machines to failover groups

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.A typical multi-tier IIS web application will consist of a database tier with SQL virtual machines, the web tier constituted by a IIS server and an application tier. Aggiungere tutte queste macchine virtuali a gruppi differenti in base al livello come descritto di seguito.Add all these virtual machines to different group based on tier as below. Altre informazioni sulla personalizzazione dei piani di ripristino.Learn more about customising recovery plan.

  1. Creare un piano di ripristino.Create a recovery plan. Aggiungere le macchine virtuali del livello database nel gruppo 1 in modo che vengano arrestate per ultime e aperte per prime.Add the database tier virtual machines under Group 1 to ensure that they are shutdown last and brought up first.

  2. Aggiungere le macchine virtuali del livello applicazione nel gruppo 2 in modo che vengano aperte dopo l'apertura del livello database.Add the application tier virtual machines under Group 2 such that they are brought up after the database tier has been brought up.

  3. Aggiungere le macchine virtuali del livello Web nel gruppo 3 in modo che vengano aperte dopo l'apertura del livello applicazione.Add the web tier virtual machines in Group 3 such that they are brought up after the application tier has been brought up.

  4. Aggiungere le macchine virtuali di bilanciamento del carico nel gruppo 4 in modo che vengano aperte dopo l'apertura del livello Web.Add load balance virtual machines in Group 4 such that they are brought up after the web tier has been brought up.

Aggiunta di script al piano di ripristinoAdding scripts to the recovery plan

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.You may need to do some operations on the Azure virtual machines post failover/Test failover to make IIS web farm function correctly. È 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.You can automate the post failover operation like updating DNS entry, changing site binding, change in connection string by adding corresponding scripts in the recovery plan as below. Altre informazioni sull'aggiunta di script al piano di ripristino.Learn more about add script recovery plan.

Aggiornamento del DNSDNS Update

Se il DNS è configurato per l'aggiornamento dinamico, le macchine virtuali aggiornano in genere il DNS con il nuovo indirizzo IP all'avvio.If the DNS is configured for dynamic DNS update then virtual machines usually update the DNS with the new IP once they start. 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.If you want to add an explicit step to update DNS with the new IPs of the virtual machines then add this script to update IP in DNS as a post action on recovery plan groups.

Stringa di connessione nel file web.config di un'applicazioneConnection string in an application’s web.config

La stringa di connessione specifica il database con cui comunica il sito Web.The connection string specifies the database that the web site communicates with.

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.If the connection string carries the name of the database virtual machine, no further steps will be needed post failover and the application will be able to automatically communicate to the DB. Se l'indirizzo IP della macchina virtuale del database viene conservato, non sarà necessario aggiornare la stringa di connessione.Also, if the IP address for the database virtual machine is retained, it will not be needed to update the connection string. Se la stringa di connessione fa riferimento alla macchina virtuale del database usando un indirizzo IP, dovrà essere aggiornata dopo il failover.If the connection string refers to the database virtual machine using an IP address, it will need to be updated post failover. Ad esempio,E.g. la stringa di connessione seguente punta al database con l'indirizzo IP 127.0.1.2the below connection string points to the DB with 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.You can update the connection string in web tier by adding IIS connection update script after Group 3 in the recovery plan.

Binding del sito per l'applicazioneSite bindings for the application

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.Every site consists of binding information that includes the type of binding, the IP address at which the IIS server listens to the requests for the site, the port number and the host names for the site. Al momento di un failover potrebbe essere necessario aggiornare questi binding se viene apportata una modifica all'indirizzo IP associato.At the time of a failover, these bindings might need to be updated if there is a change in the IP address associated with them.

Nota

Se è stato selezionato "Non assegnati" per il binding del sito come nell'esempio seguente, non è necessario aggiornare questo binding dopo il failover.If you have marked ‘all unassigned’ for the site binding as in the example below, you will not need to update this binding post 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.Also, if the IP address associated with a site is not changed post failover, the site binding need not be updated (Retention of the IP address depends on the network architecture and subnets assigned to the primary and recovery sites and hence may or may not be feasible for your organization.)

Binding SSL

Se è stato associato l'indirizzo IP a un sito, è necessario aggiornare tutti i binding del sito con il nuovo indirizzo IP.If you have associated the IP address with a site, you will need to update all site bindings with the new IP address. È possibile aggiungere lo script di aggiornamento del livello Web IIS dopo il gruppo 3 nel piano di ripristino per modificare i binding del sito.You can add IIS Web tier update script after Group 3 in recovery plan to change the site bindings.

Aggiornare l'indirizzo IP del servizio di bilanciamento del caricoUpdate load balancer IP address

Se è presente una macchina virtuale Application Request Routing, aggiungere lo script di failover ARR IIS dopo il gruppo 4 per aggiornare l'indirizzo IP.If you have Application Request Routing virtual machine, add IIS ARR failover script after Group 4 to update the IP address.

Associazione di certificati SSL per una connessione HTTPSThe SSL cert binding for an https connection

I siti Web possono avere un certificato SSL associato che consente una comunicazione sicura tra il server Web e il browser dell'utente.Websites can have an associated SSL certificate that helps in ensuring a secure communication between the webserver and the user’s browser. 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.If the website has an https connection and an associated https site binding to the IP address of the IIS server with an SSL cert binding, a new site binding will need to be added for the cert with the IP of the IIS virtual machine post failover.

Il certificato SSL può essere emesso perThe SSL cert can be issued against-

a) Il nome di dominio completo del sito Weba) The fully qualified domain name of the website
b) Il nome del serverb) The name of the server
c) Un certificato con caratteri jolly per il nome di dominioc) A wildcard certificate for the domain name
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.d) An IP address – If the SSL cert is issued against the IP of the IIS server, another SSL cert needs to be issued against the IP address of the IIS server on the Azure site and an additional SSL binding for this certificate will need to be created. È quindi consigliabile non usare un certificato SSL emesso per un indirizzo IP.Hence, it is advisable to not use an SSL cert issued against IP. Si tratta di un'opzione meno usata e verrà presto deprecata in base alle nuove modifiche di CA/Browser Forum.This is a less widely used option and will soon be deprecated as per new CA/browser forum changes.

Aggiornare la dipendenza tra il livello Web e il livello applicazioneUpdate the dependency between the web and the application tier

Se è presente una dipendenza specifica dell'applicazione basata sull'indirizzo IP delle macchine virtuali, è necessario aggiornare questa dipendenza dopo il failover.If you have an application specific dependency based on the IP address of the virtual machines, you need to update this dependency post failover.

Esecuzione di un failover di testDoing a test failover

Seguire queste linee guida per eseguire un failover di test.Follow this guidance to do a test failover.

  1. Accedere al portale di Azure e selezionare l'insieme di credenziali di Servizi di ripristino.Go to Azure portal and select your Recovery Service vault.
  2. Fare clic sul piano di ripristino creato per la Web farm IIS.Click on the recovery plan created for IIS web farm.
  3. Fare clic su 'Failover di test'.Click on 'Test Failover'.
  4. Selezionare il punto di recupero e la rete virtuale di Azure per avviare il processo di failover di test.Select recovery point and Azure virtual network to start the test failover process.
  5. Quando l'ambiente secondario è disponibile, è possibile eseguire le convalide.Once the secondary environment is up, you can perform your validations.
  6. Al termine delle convalide è possibile selezionare 'Convalide complete' per pulire l'ambiente di failover di test.Once the validations are complete, you can select ‘Validations complete’ and the test failover environment will be cleaned.

Esecuzione di un failoverDoing a failover

Seguire queste linee guida quando si esegue un failover.Follow this guidance when you are doing a failover.

  1. Accedere al portale di Azure e selezionare l'insieme di credenziali di Servizi di ripristino.Go to Azure portal and select your Recovery Service vault.
  2. Fare clic sul piano di ripristino creato per la Web farm IIS.Click on the recovery plan created for IIS web farm.
  3. Fare clic su 'Failover'.Click on 'Failover'.
  4. Selezionare il punto di recupero per avviare il processo di failover.Select recovery point to start the failover process.

Passaggi successiviNext steps

Altre informazioni sulla replica di altre applicazioni con Site Recovery.You can learn more about replicate other applications using Site Recovery.