Eseguire la replica di un'applicazione Web multilivello basata su IISReplicate a multi-tier IIS-based web application

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 applicazioni, ad esempio quelle usate per l'elaborazione delle retribuzioni, le applicazioni finanziarie e i siti Web orientati ai clienti, possono avere un ruolo critico in un'organizzazione.Some applications, like applications used for payroll processing, financial applications, and customer-facing websites, might be critical to an organization. Per evitare perdite di produttività, è importante per l'organizzazione che queste applicazioni siano costantemente operative.To prevent loss of productivity, it's important for the organization to have these applications continuously up and running. La costante disponibilità di queste applicazioni deve soprattutto aiutare a evitare danni al marchio o all'immagine o dell'organizzazione.More importantly, having these applications consistently available can help prevent damage to the brand or image of the organization.

Le applicazioni Web critiche vengono in genere configurate come applicazioni multilivello in cui Web, database e applicazione risiedono in livelli diversi.Critical web applications are typically set up as multi-tier applications: the web, database, and application are 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.In addition to being spread across various tiers, the applications might also use multiple servers in each tier to load balance the traffic. I mapping tra i vari livelli e nel server Web, inoltre, possono essere basati su indirizzi IP statici.Moreover, the mappings between various tiers and on the web server might be based on static IP addresses. In caso di failover, alcuni di questi mapping devono essere aggiornati, in particolare se sono stati configurati più siti Web nel server Web.On failover, some of these mappings need to be updated, especially if multiple websites are configured on the web server. Se le applicazioni Web usano SSL, è necessario aggiornare anche i binding dei certificati.If web applications use SSL, you must update certificate bindings.

I metodi di ripristino tradizionali senza replica prevedono il backup di diversi file di configurazione, delle impostazioni del registro, dei binding, dei componenti personalizzati (COM o .NET), dei contenuti e dei certificati.Traditional recovery methods that aren't based on replication involve backing up various configuration files, registry settings, bindings, custom components (COM or .NET), content, and certificates. I file vengono ripristinati attraverso una procedura manuale.Files are recovered through a set of manual steps. I metodi di ripristino tradizionali di backup e il ripristino manuale dei file sono complessi, soggetti a errori e non scalabili.The traditional recovery methods of backing up and manually recovering files are cumbersome, error-prone, and not scalable. Ci si potrebbe, ad esempio, dimenticare facilmente di eseguire il backup dei certificati.For example, you might easily forget to back up certificates. A quel punto, dopo failover, l'unica soluzione sarebbe quella di acquistare nuovi certificati per il server.After failover, you're left with no choice but to buy new certificates for the server.

Una buona soluzione di ripristino di emergenza supporta la modellazione di piani di ripristino per le architetture di applicazione complesse.A good disaster recovery solution supports modeling recovery plans for complex application architectures. Deve anche permettere di aggiungere passaggi personalizzati nel piano di ripristino per gestire i mapping delle applicazioni tra i livelli.You should also be able to add customized steps to the recovery plan to handle application mappings between tiers. In una situazione di emergenza, i mapping delle applicazioni offrono una soluzione semplice e sicura che consente di abbassare l'obiettivo RTO.If there is a disaster, application mappings provide a single-click, sure-shot solution that helps lead to a lower RTO.

Questo articolo descrive come proteggere un'applicazione Web basata su Internet Information Services (IIS) usando Azure Site Recovery.This article describes how to protect a web application that's based on Internet Information Services (IIS) by using Azure Site Recovery. L'articolo illustra le procedure consigliate per la replica di un'applicazione Web a tre livelli basata su IIS in Azure. Spiega anche come eseguire un'analisi di ripristino di emergenza e come effettuare il failover dell'applicazione in Azure.The article covers best practices for replicating a three-tier, IIS-based web application to Azure, how to do a disaster recovery drill, and how to fail over the application to Azure.

prerequisitiPrerequisites

Prima di iniziare, assicurarsi di conoscere le procedure per eseguire le attività seguenti:Before you begin, ensure that you know how to do the following tasks:

Modelli di distribuzioneDeployment patterns

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

Modello di distribuzione 1Deployment pattern 1

Web farm basata su IIS con Application Request Routing (ARR), server IIS e Microsoft SQL Server.An IIS-based web farm with Application Request Routing (ARR), an IIS server, and SQL Server.

Diagramma di una Web farm basata su IIS che include tre livelli

Modello di distribuzione 2Deployment pattern 2

Web farm basata su IIS con Application Request Routing (ARR), server IIS, server applicazioni e Microsoft SQL Server.An IIS-based web farm with ARR, an IIS server, an application server, and SQL Server.

Diagramma di una Web farm basata su IIS che include quattro livelli

Supporto di Site RecoverySite Recovery support

Ai fini di questo articolo sono state usate macchine virtuali VMware con IIS 7.5 su Windows Server 2012 R2 Enterprise.For the examples in this article, we use VMware virtual machines with IIS 7.5 on Windows Server 2012 R2 Enterprise. Poiché la replica di Site Recovery non è specifica dell'applicazione, i consigli riportati in questo articolo si applicano negli scenari elencati nella tabella seguente e per versioni diverse di IIS.Because Site Recovery replication isn't application-specific, the recommendations in this article are expected to apply in the scenarios listed in the following table, and for different versions 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 No No Yes
AzureAzure NDNA Yes

Replicare le macchine virtualiReplicate virtual machines

Per avviare la replica di tutte le macchine virtuali Web farm basate su IIS in Azure, seguire le istruzioni descritte in Esecuzione di un failover di test in Azure con Site Recovery.To start replicating all the IIS web farm virtual machines to Azure, follow the guidance in Test failover to Azure in Site Recovery.

Se si usa un indirizzo IP statico, è possibile specificare l'indirizzo IP che dovrà essere usato dalla macchina virtuale.If you are using a static IP address, you can specify the IP address that you want the virtual machine to take. Per impostare l'indirizzo IP, passare a impostazioni Calcolo e rete > IP DI DESTINAZIONE.To set the IP address, go to Compute and Network settings > TARGET IP.

Screenshot che illustra come impostare l'indirizzo IP di destinazione nel riquadro Calcolo e rete di Site Recovery

Creare un piano di ripristinoCreate a recovery plan

Un piano di ripristino supporta la sequenziazione di vari livelli in un'applicazione multilivello durante un failover.A recovery plan supports the sequencing of various tiers in a multi-tier application during a failover. La sequenziazione aiuta a mantenere la coerenza delle applicazioni.Sequencing helps maintain application consistency. Quando si crea un piano di ripristino per un'applicazione Web multilivello, completare la procedura descritta in Creare un piano di ripristino con Site Recovery.When you create a recovery plan for a multi-tier web application, complete the steps described in Create a recovery plan by using Site Recovery.

Aggiungere macchine virtuali a gruppi di failoverAdd virtual machines to failover groups

Una tipica applicazione Web IIS multilivello include i componenti seguenti:A typical multi-tier IIS web application consists of the following components:

  • Un livello database che dispone di macchine virtuali SQL.A database tier that has SQL virtual machines.
  • Il livello Web, che è costituito da un server IIS e un livello applicazione.The web tier, which consists of an IIS server and an application tier.

Aggiungere macchine virtuali in gruppi diversi in base al livello:Add virtual machines to different groups based on the tier:

  1. Creare un piano di ripristino.Create a recovery plan. Aggiungere le macchine virtuali del livello database nel Gruppo 1.Add the database tier virtual machines under Group 1. In questo modo si assicura che le macchine virtuali del livello database vengano arrestate per ultime e avviate per prime.This ensures that database tier virtual machines are shut down last and brought up first.
  2. Aggiungere le macchine virtuali del livello applicazione nel Gruppo 2.Add the application tier virtual machines under Group 2. Si assicura così che le macchine virtuali del livello applicazione vengano avviate dopo quelle del livello database.This ensures that application tier virtual machines are brought up after the database tier has been brought up.
  3. Aggiungere le macchine virtuali del livello Web nel Gruppo 3.Add the web tier virtual machines in Group 3. Si assicura così che le macchine virtuali del livello Web vengano avviate dopo quelle del livello applicazione.This ensures that web tier virtual machines are brought up after the application tier has been brought up.
  4. Aggiungere le macchine virtuali del bilanciamento del carico nel Gruppo 4.Add load balance virtual machines in Group 4. In questo modo si assicura che le macchine virtuali del livello bilanciamento del carico vengano avviate dopo quelle del livello Web.This ensures that load balance virtual machines are brought up after the web tier has been brought up.

Per altre informazioni, vedere Personalizzare il piano di ripristino.For more information, see Customize the recovery plan.

Aggiungere uno script al piano di ripristinoAdd a script to the recovery plan

Per far sì che la Web farm IIS funzioni correttamente, potrebbe essere necessario eseguire alcune operazioni nelle macchine virtuali di Azure dopo il failover o il failover di test.For the IIS web farm to function correctly, you might need to do some operations on the Azure virtual machines post-failover or during a test failover. È possibile automatizzare alcune operazioni successive al failover.You can automate some post-failover operations. È, ad esempio, possibile aggiornare la voce DNS, modificare un'associazione del sito o modificare una stringa di connessione aggiungendo gli script corrispondenti al piano di ripristino.For example, you can update the DNS entry, change a site binding, or change a connection string by adding corresponding scripts to the recovery plan. L'articolo Add a VMM script to a recovery plan (Aggiungere uno script VMM a un piano di ripristino) illustra come impostare le attività automatizzate tramite uno script.Add a VMM script to a recovery plan describes how to set up automated tasks by using a script.

Aggiornamento del DNSDNS update

Se il DNS è configurato per l'aggiornamento DNS dinamico, le macchine virtuali aggiornano in genere il DNS con il nuovo indirizzo IP all'avvio.If DNS is configured for dynamic DNS update, virtual machines usually update the DNS with the new IP address when they start. Se si vuole aggiungere un passaggio esplicito per l'aggiornamento del DNS con i nuovi indirizzi IP delle macchine virtuali, aggiungere uno script per l'aggiornamento degli indirizzi IP nel DNS come azione dopo il failover nei gruppi del piano di ripristino.If you want to add an explicit step to update DNS with the new IP addresses of the virtual machines, add a script to update IP in DNS as a post-failover 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 website communicates with. Se la stringa di connessione contiene il nome della macchina virtuale del database, non sono necessari altri passaggi dopo il failover.If the connection string carries the name of the database virtual machine, no further steps are needed post-failover. L'applicazione può comunicare automaticamente con il database.The application can automatically communicate with the database. Se l'indirizzo IP della macchina virtuale del database viene conservato, non è necessario aggiornare la stringa di connessione.Also, if the IP address for the database virtual machine is retained, it doesn't be need to update the connection string.

Se la stringa di connessione fa riferimento alla macchina virtuale del database usando un indirizzo IP, la stringa deve essere aggiornata dopo il failover.If the connection string refers to the database virtual machine by using an IP address, it needs to be updated post-failover. La stringa di connessione seguente, ad esempio, punta al database con l'indirizzo IP 127.0.1.2:For example, the following connection string points to the database with the IP address 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>

Per aggiornare la stringa di connessione nel livello Web, aggiungere uno script di aggiornamento della connessione IIS dopo il Gruppo 3 nel piano di ripristino.To update the connection string in the web tier, add an 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 di binding.Every site consists of binding information. Tali informazioni 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.The binding information 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. Durante il failover, potrebbe essere necessario aggiornare questi binding se viene modifico l'indirizzo IP associato.During the failover, you might need to update these bindings if there's a change in the IP address that's associated with them.

Nota

Se è stato selezionato Non assegnati per il binding del sito, non è necessario aggiornare questo binding dopo il failover.If you set the site binding to All unassigned, you don't need to update this binding post-failover. Anche se l'indirizzo IP associato a un sito non viene modificato dopo il failover, non è necessario aggiornare il binding del sito.Also, if the IP address associated with a site isn't changed post-failover, you don't need to update the site binding. La conservazione dell'indirizzo IP dipende dall'architettura di rete e dalle subnet assegnate ai siti primario e di ripristino(The retention of the IP address depends on the network architecture and subnets assigned to the primary and recovery sites. e il relativo aggiornamento potrebbe quindi non essere fattibile per l'organizzazione.Updating them might not be feasible for your organization.)

Screenshot che mostra l'impostazione del 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 associated the IP address with a site, update all site bindings with the new IP address. Per modificare i binding del sito, è possibile aggiungere uno script di aggiornamento del livello Web IIS dopo il Gruppo 3 nel piano di ripristino.To change the site bindings, add an IIS web tier update script after Group 3 in the recovery plan.

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

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

Binding di certificati SSL per una connessione HTTPSSSL certificate 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.A website might have an associated SSL certificate that helps ensure a secure communication between the web server 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 binding di certificati SSL, è 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 also has an associated HTTPS site binding to the IP address of the IIS server with an SSL certificate binding, you must add a new site binding for the certificate with the IP address of the IIS virtual machine post-failover.

Il certificato SSL può essere emesso per questi componenti:The SSL certificate can be issued against these components:

  • Nome di dominio completo del sito WebThe fully qualified domain name of the website.
  • Nome del serverThe name of the server.
  • Certificato con caratteri jolly per il nome di dominioA wildcard certificate for the domain name.
  • Indirizzo IP.An IP address. Se il certificato SSL viene emesso per l'indirizzo IP del server IIS, è necessario emettere un altro certificato SSL per l'indirizzo IP del server IIS nel sito di Azure.If the SSL certificate is issued against the IP address of the IIS server, another SSL certificate needs to be issued against the IP address of the IIS server on the Azure site. Deve inoltre essere creato un binding SSL aggiuntivo per questo certificato.An additional SSL binding for this certificate needs to be created. Per questo motivo, è consigliabile non usare un certificato SSL emesso in base all'indirizzo IP.Because of this, we recommend not using an SSL certificate issued against the IP address. Questa opzione viene usata meno e verrà presto deprecata in base alle nuove modifiche del forum dell'autorità/browser di certificazione.This option is less widely used and will soon be deprecated in accordance with new certificate authority/browser forum changes.

Aggiornare la dipendenza tra il livello Web e il livello applicazioneUpdate the dependency between the web tier 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 that's based on the IP address of the virtual machines, you must update this dependency post-failover.

Eseguire un failover di testRun a test failover

  1. Nel portale di Azure selezionare l'insieme di credenziali di Servizi di ripristino.In the Azure portal, select your Recovery Services vault.
  2. Selezionare il piano di ripristino creato per la Web farm IIS.Select the recovery plan that you created for the IIS web farm.
  3. Selezionare Failover di test.Select Test Failover.
  4. Per avviare il processo di failover di test, selezionare il punto di recupero e la rete virtuale di Azure.To start the test failover process, select the recovery point and the Azure virtual network.
  5. Quando l'ambiente secondario diventa disponibile, è possibile eseguire le convalide.When the secondary environment is up, you can perform validations.
  6. Al termine delle convalide, selezionare Convalide complete per pulire l'ambiente di failover di test.When validations are complete, to clean the test failover environment, select Validations complete.

Per altre informazioni, vedere Failover di test in Azure in Site Recovery.For more information, see Test failover to Azure in Site Recovery.

Eseguire un failoverRun a failover

  1. Nel portale di Azure selezionare l'insieme di credenziali di Servizi di ripristino.In the Azure portal, select your Recovery Services vault.
  2. Selezionare il piano di ripristino creato per la Web farm IIS.Select the recovery plan that you created for the IIS web farm.
  3. Selezionare Failover.Select Failover.
  4. Per avviare il processo di failover, selezionare il punto di recupero.To start the failover process, select the recovery point.

Per altre informazioni, vedere Failover in Site Recovery.For more information, see Failover in Site Recovery.

Passaggi successiviNext steps