Criando aplicativos do Azure resilientesDesigning resilient Azure applications

A criação de resiliência (recuperação de falhas) e da disponibilidade (em execução em um estado íntegro sem tempo de inatividade significativo) em seus aplicativos começa com a coleta de requisitos.Building resiliency (recovering from failures) and availability (running in a healthy state without significant downtime) into your apps begins with gathering requirements. Por exemplo, quanto tempo de inatividade é aceitável?For example, how much downtime is acceptable? Quanto o tempo de inatividade potencial custa seus negócios?How much does potential downtime cost your business? Quais são os requisitos de disponibilidade do seu cliente?What are your customer's availability requirements? Quanto você investi para tornar seu aplicativo altamente disponível?How much do you invest in making your application highly available? Qual é o risco em relação ao custo?What is the risk versus the cost?

Determinar a assinatura e os requisitos de serviçoDetermine subscription and service requirements

Escolha a assinatura e os recursos de serviço corretos para seu aplicativo trabalhando com estas tarefas:Choose the right subscription and service features for your app by working through these tasks:

  • Avalie os requisitos de assinatura do Azure e limites de serviço.Evaluate requirements against Azure subscription and service limits. As assinaturas do Azure têm limites em determinados tipos de recursos, como o número de grupos de recursos, núcleos e contas de armazenamento.Azure subscriptions have limits on certain resource types, such as number of resource groups, cores, and storage accounts. Se seus requisitos de aplicativo excedem os limites de assinatura do Azure, crie outra assinatura do Azure e provisione recursos suficientes nela.If your application requirements exceed Azure subscription limits, create another Azure subscription and provision sufficient resources there. Os serviços do Azure individuais têm limites de consumo — por exemplo, limites para armazenamento, taxa de transferência, número de conexões, solicitações por segundo e outras métricas.Individual Azure services have consumption limits — for example, limits on storage, throughput, number of connections, requests per second, and other metrics. Seu aplicativo falhará se tentar usar recursos além desses limites, resultando em limitação de serviço e possível tempo de inatividade para usuários afetados.Your application will fail if it attempts to use resources beyond these limits, resulting in service throttling and possible downtime for affected users. Dependendo do serviço específico e dos requisitos do aplicativo, geralmente você pode evitar esses limites ao escalar verticalmente (por exemplo, escolher outro tipo de preço) ou escalar horizontalmente (como adicionar novas instâncias).Depending on the specific service and your application requirements, you can often avoid these limits by scaling up (for example, choosing another pricing tier) or scaling out (such as adding new instances).
  • Determine quantas contas de armazenamento você precisa.Determine how many storage accounts you need. O Azure permite um número específico de contas de armazenamento por assinatura.Azure allows a specific number of storage accounts per subscription. Para saber mais, confira Assinatura e limites de serviço, cotas e restrições do Azure.For more information, see Azure subscription and service limits, quotas, and constraints.
  • Selecione a camada de serviço certa para o Banco de Dados SQL do Azure.Select the right service tier for Azure SQL Database. Se seu aplicativo usar o banco de dados SQL do Azure, selecione a camada de serviço apropriada.If your application uses Azure SQL Database, select the appropriate service tier. Se a camada não puder lidar com os requisitos de DTU (unidade de transação de banco de dados) do aplicativo, o uso dos dados será limitado.If the tier cannot handle your application's database transaction unit (DTU) requirements, your data use will be throttled. Para obter mais informações sobre como selecionar o plano de serviço correto, veja Opções e desempenho de Banco de Dados SQL: saiba o que está disponível em cada camada de serviço.For more information on selecting the correct service plan, see SQL Database options and performance: Understand what's available in each service tier.
  • Provisionar RUs (unidades de solicitação) suficientes no Azure Cosmos DB.Provision sufficient request units (RUs) in Azure Cosmos DB. Com o Azure Cosmos DB, você paga pela taxa de transferência provisionada e pelo armazenamento que consome por hora.With Azure Cosmos DB, you pay for the throughput you provision and the storage you consume on an hourly basis. O custo de todas as operações de banco de dados é normalizado como RUs, que abstrai os recursos do sistema, como CPU, IOPS e memória.The cost of all database operations is normalized as RUs, which abstracts the system resources such as CPU, IOPS, and memory. Para obter mais informações, consulte unidades de solicitação no Azure Cosmos DB.For more information, see Request Units in Azure Cosmos DB.

Estratégias de resiliênciaResiliency strategies

Esta seção descreve algumas estratégias comuns de resiliência.This section describes some common resiliency strategies. A maioria dessas estratégias não se limita a uma tecnologia específica.Most of these strategies are not limited to a particular technology. As descrições resumem a ideia geral por trás de cada técnica e incluem links para leitura adicional.The descriptions summarize the general idea behind each technique and include links to further reading.

  • Implemente padrões de resiliência para operações remotas, quando apropriado.Implement resiliency patterns for remote operations, where appropriate. Se seu aplicativo depende da comunicação entre serviços remotos, siga os padrões de design para lidar com falhas transitórias.If your application depends on communication between remote services, follow design patterns for dealing with transient failures.

  • Repita as falhas transitórias.Retry transient failures. Isso pode ser causado por uma perda momentânea de conectividade de rede, uma conexão de banco de dados descartada ou um tempo limite quando um serviço está ocupado.These can be caused by momentary loss of network connectivity, a dropped database connection, or a timeout when a service is busy. Geralmente, uma falha transitória pode ser resolvida repetindo-se a solicitação.Often, a transient failure can be resolved by retrying the request.

    • Para muitos serviços do Azure, o Software Development Kit do cliente (SDK) implementa repetições automáticas de forma transparente para o chamador.For many Azure services, the client software development kit (SDK) implements automatic retries in a way that is transparent to the caller. Consulte diretrizes de repetição para serviços específicos.See Retry guidance for specific services.
    • Ou implemente o padrão de repetição para ajudar o identificador do aplicativo a ser antecipado, falhas temporárias ao tentar se conectar a um recurso de serviço ou de rede.Or implement the Retry pattern to help the application handle anticipated, temporary failures transparently when it tries to connect to a service or network resource.
  • Use um disjuntor para lidar com falhas que podem levar uma quantidade variável de tempo para corrigir.Use a circuit breaker to handle faults that might take a variable amount of time to fix. O padrão de disjuntor pode impedir que um aplicativo tente repetidamente uma operação que provavelmente falhará.The Circuit Breaker pattern can prevent an application from repeatedly trying an operation that is likely to fail. O disjuntor encapsula as chamadas em um serviço e controla o número de falhas recentes.The circuit breaker wraps calls to a service and tracks the number of recent failures. Se a contagem de falhas exceder um limite, o disjuntor será iniciado retornando um código de erro sem chamar o serviço.If the failure count exceeds a threshold, the circuit breaker starts returning an error code without calling the service. Isso dá ao serviço tempo de recuperação e ajuda a evitar falhas em cascata.This gives the service time to recover and helps avoid cascading failures.

  • Isole os recursos críticos.Isolate critical resources. Às vezes, as falhas em um subsistema podem ser colocadas em cascata, resultando em falhas em outras partes do aplicativo.Failures in one subsystem can sometimes cascade, resulting in failures in other parts of the application. Isso pode acontecer se uma falha impedir que os recursos, como threads ou soquetes, sejam liberados, levando ao esgotamento de recursos.This can happen if a failure prevents resources such as threads or sockets from being freed, leading to resource exhaustion. Para evitar isso, você pode particionar um sistema em grupos isolados para que uma falha em uma partição não desative todo o sistema.To avoid this, you can partition a system into isolated groups so that a failure in one partition does not bring down the entire system.

    Aqui estão alguns exemplos dessa técnica, que às vezes é chamado de padrão bulkhead:Here are some examples of this technique, which is sometimes called the Bulkhead pattern:

    • Particione um banco de dados (por exemplo, por locatário) e atribua um pool separado de instâncias de servidor Web para cada partição.Partition a database (for example, by tenant), and assign a separate pool of web server instances for each partition.

    • Usar pools de threads separados, para isolar as chamadas para diferentes serviços.Use separate thread pools to isolate calls to different services. Isso ajuda a evitar falhas em cascata, se houver falha em um dos serviços.This helps to prevent cascading failures if one of the services fails. Para ver um exemplo, consulte a biblioteca Hystrix da Netflix.For an example, see the Netflix Hystrix library.

    • Usar contêineres para limitar os recursos disponíveis a um determinado subsistema.Use containers to limit the resources available to a particular subsystem.

      Diagrama do padrão de Bulkhead

  • Aplicar Transações de compensação.Apply compensating transactions. Uma transação de compensação é uma operação que desfaz os efeitos de outra transação concluída.A compensating transaction is a transaction that undoes the effects of another completed transaction. Em um sistema distribuído, pode ser difícil obter uma consistência transacional forte.In a distributed system, it can be difficult to achieve strong transactional consistency. As transações de compensação ajudam a atingir a consistência usando uma série de transações individuais menores que podem ser desfeitas em cada etapa.Compensating transactions help to achieve consistency by using a series of smaller, individual transactions that can be undone at each step. Por exemplo, para fazer uma viagem, um cliente pode precisar reservar um voo, acomodações de hotel e um carro.For example, to book a trip, a customer might reserve a car, a hotel room, and a flight. Se uma dessas etapas falhar, toda a operação falhará.If one of these steps fails, the entire operation fails. Em vez de tentar usar uma única transação distribuída em toda a operação, você pode definir uma transação de compensação para cada etapa.Instead of trying to use a single distributed transaction for the entire operation, you can define a compensating transaction for each step.

  • Implemente operações assíncronas, sempre que possível.Implement asynchronous operations, whenever possible. Operações síncronas podem monopolizar os recursos e bloquear outras operações enquanto o chamador aguarda a conclusão do processo.Synchronous operations can monopolize resources and block other operations while the caller waits for the process to complete. Projete cada parte do seu aplicativo para permitir operações assíncronas, sempre que possível.Design each part of your application to allow for asynchronous operations, whenever possible. Para obter mais informações sobre como implementar a programação assíncrona#em C, consulte programação assíncrona.For more information on how to implement asynchronous programming in C#, see Asynchronous Programming.

Planejar padrões de usoPlan for usage patterns

Identifique as diferenças em requisitos durante períodos críticos e não críticos.Identify differences in requirements during critical and non-critical periods. Há certos períodos críticos quando o sistema tem que estar disponível?Are there certain critical periods when the system must be available? Por exemplo, um aplicativo de arquivamento de imposto não pode falhar durante um prazo de arquivamento e um serviço de streaming de vídeo não deve ser retardado durante um evento ao vivo.For example, a tax-filing application can't fail during a filing deadline and a video streaming service shouldn't lag during a live event. Nessas situações, avalie o custo em relação ao risco.In these situations, weigh the cost against the risk.

  • Para garantir o tempo de atividade e atender aos SLAs (contratos de nível de serviço) em períodos críticos, planeje a redundância em várias regiões no caso de uma falha, mesmo se ele custa mais.To ensure uptime and meet service-level agreements (SLAs) in critical periods, plan redundancy across several regions in case one fails, even if it costs more.
  • Por outro lado, durante períodos não críticos, execute seu aplicativo em uma única região para minimizar os custos.Conversely, during non-critical periods, run your application in a single region to minimize costs.
  • Em alguns casos, você pode reduzir despesas adicionais usando técnicas modernas sem servidor que têm cobrança baseada em consumo.In some cases, you can mitigate additional expenses by using modern serverless techniques that have consumption-based billing.

Identificar cargas de trabalho distintasIdentify distinct workloads

As soluções de nuvem normalmente consistem em várias cargas de trabalhode aplicativo.Cloud solutions typically consist of multiple application workloads. Uma carga de trabalho é um recurso ou tarefa distinta que é logicamente separada de outras tarefas em termos de requisitos de armazenamento de dados e lógica de negócios.A workload is a distinct capability or task that is logically separated from other tasks in terms of business logic and data storage requirements. Por exemplo, um aplicativo de comércio eletrônico pode ter as seguintes cargas de trabalho:For example, an e-commerce app might have the following workloads:

  • Procura e pesquisa em um catálogo de produtos.Browse and search a product catalog.
  • Criação e controle de pedidos.Create and track orders.
  • Exibição de recomendações.View recommendations.

Cada carga de trabalho pode ter diferentes requisitos de disponibilidade, escalabilidade, consistência de dados e recuperação de desastre.Each workload has different requirements for availability, scalability, data consistency, and disaster recovery. Tome suas decisões de negócios equilibrando custo versus risco para cada carga de trabalho.Make your business decisions by balancing cost versus risk for each workload.

Além disso, decompor cargas de trabalho por objetivo de nível de serviço.Also decompose workloads by service-level objective. Se um serviço for composto de cargas de trabalho críticas e menos críticas, gerencie-as de forma diferente e especifique os recursos de serviço e o número de instâncias necessárias para atender aos seus requisitos de disponibilidade.If a service is composed of critical and less-critical workloads, manage them differently and specify the service features and number of instances needed to meet their availability requirements.

Gerenciando serviços de terceirosManaging third party services

Se seu aplicativo tiver dependências de serviços de terceiros, identifique como esses serviços podem falhar e quais falhas de efeito terão em seu aplicativo.If your application has dependencies on third-party services, identify how these services can fail and what effect failures will have on your application.

Um serviço de terceiros pode não incluir monitoramento e diagnóstico.A third-party service might not include monitoring and diagnostics. Faça log de chamadas para esses serviços e correlacione-os com a integridade do aplicativo e o log de diagnóstico usando um identificador exclusivo.Log calls to these services and correlate them with your application's health and diagnostic logging using a unique identifier. Para obter mais informações sobre práticas comprovadas para monitoramento e diagnóstico, consulte diretrizes de monitoramento e diagnóstico.For more information on proven practices for monitoring and diagnostics, see Monitoring and diagnostics guidance.

Consulte o padrão de monitoramento do ponto de extremidade de integridade para obter uma solução para acompanhar isso com exemplos de código.See the Health Endpoint Monitoring pattern for a solution to track this with code samples.

Monitorando serviços de terceirosMonitoring third-party services

Se seu aplicativo tiver dependências de serviços de terceiros, identifique onde e como esses serviços podem falhar e qual efeito essas falhas terão em seu aplicativo.If your application has dependencies on third-party services, identify where and how these services can fail and what effect those failures will have on your application. Tenha em mente o contrato de nível de serviço (SLA) para o serviço de terceiros e o efeito que ele pode ter em seu plano de recuperação de desastre.Keep in mind the service-level agreement (SLA) for the third-party service and the effect it might have on your disaster recovery plan.

Um serviço de terceiros pode não fornecer recursos de monitoramento e diagnóstico, portanto, é importante registrar em log suas invocações e correlacioná-los com a integridade do aplicativo e o log de diagnóstico usando um identificador exclusivo.A third-party service might not provide monitoring and diagnostics capabilities, so it's important to log your invocations of them and to correlate them with your application's health and diagnostic logging using a unique identifier. Para obter mais informações sobre práticas comprovadas para monitoramento e diagnóstico, consulte diretrizes de monitoramento e diagnóstico.For more information on proven practices for monitoring and diagnostics, see Monitoring and diagnostics guidance.

Balanceamento de cargaLoad balancing

Balancear a carga de tráfego entre regiões requer uma solução de gerenciamento de tráfego.To load balance traffic across regions requires a traffic management solution. O Azure oferece o Gerenciador de Tráfego do Azure.Azure provides Azure Traffic Manager. Você também pode tirar proveito dos serviços de terceiros que fornecem recursos de gerenciamento de tráfego semelhantes.You can also take advantage of third-party services that provide similar traffic management capabilities.

O balanceamento de carga adequado permite que você atenda aos requisitos de disponibilidade e minimize os custos associados à disponibilidade.Proper load-balancing allows you to meet availability requirements and to minimize costs associated with availability.

  • Use o balanceamento de carga para distribuir solicitações.Use load-balancing to distribute requests. O balanceamento de carga distribui as solicitações do aplicativo para instâncias de serviço íntegras removendo instâncias não íntegras da rotação.Load-balancing distributes your application's requests to healthy service instances by removing unhealthy instances from rotation. Se o serviço usar Azure App serviço ou serviços de nuvem do Azure, ele já terá balanceamento de carga para você.If your service uses Azure App Service or Azure Cloud Services, it's already load-balanced for you. No entanto, se seu aplicativo usar VMs do Azure, você precisará provisionar um balanceador de carga.However, if your application uses Azure VMs, you need to provision a load-balancer. Para obter mais informações, consulte O que é o Azure Load Balancer?For more information, see What is Azure Load Balancer?

    Use o Azure Load Balancer para:You can use Azure Load Balancer to:

    • Balancear a carga do tráfego de entrada da Internet para suas VMs.Load-balance incoming Internet traffic to your VMs. Essa configuração é conhecida como um Load Balancer público.This configuration is known as a public Load Balancer.
    • Balancear a carga do tráfego entre VMs dentro de uma rede virtual.Load-balance traffic across VMs inside a virtual network. Também é possível acessar o front-end de um Load Balancer de uma rede local em um cenário híbrido.You can also reach a Load Balancer front end from an on-premises network in a hybrid scenario. Ambos os cenários usam uma configuração que é conhecida como um Load balancer interno.Both scenarios use a configuration that is known as an internal Load Balancer.
    • O tráfego de encaminhamento de porta para uma porta discriminada em VMs específicas com regras de conversão de endereços de rede (NAT) de entrada.Port forward traffic to an itemized port on specific VMs with inbound network address translation (NAT) rules.
    • Forneça conectividade de saída para VMs dentro de sua rede virtual usando um Load Balancer público.Provide outbound connectivity for VMs inside your virtual network by using a public Load Balancer.
  • Equilibre cargas entre regiões com um Gerenciador de tráfego, como o Gerenciador de tráfego do Azure.Balance loads across regions with a traffic manager, such as Azure Traffic Manager. Para balancear a carga do tráfego entre regiões, é necessário uma solução de gerenciamento de tráfego e o Azure fornece o Gerenciador de tráfego.To load-balance traffic across regions requires a traffic management solution, and Azure provides Traffic Manager. Você também pode aproveitar os serviços de terceiros que fornecem recursos semelhantes de gerenciamento de tráfego.You can also take advantage of third-party services that provide similar traffic-management capabilities.

Análise do modo de falhaFailure mode analysis

A FMA (análise do modo de falha) é um processo de criação de resiliência em um sistema por meio da identificação de possíveis pontos de falha no sistema.Failure mode analysis (FMA) is a process for building resiliency into a system, by identifying possible failure points in the system. A FMA deve ser parte das fases de arquitetura e de design para que você possa inserir a recuperação de falha no sistema desde o início.The FMA should be part of the architecture and design phases, so that you can build failure recovery into the system from the beginning. A análise do modo de falha (FMA) cria resiliência em um sistema identificando possíveis pontos de falha e definindo como o aplicativo responde a essas falhas.Failure mode analysis (FMA) builds resiliency into a system by identifying possible failure points and defining how the application responds to those failures. O FMA deve fazer parte das fases de arquitetura e design, portanto, a recuperação de falhas é incorporada ao sistema desde o início.The FMA should be part of the architecture and design phases, so failure recovery is built into the system from the beginning. Os objetivos de um FMA são:The goals of an FMA are to:

  • Determine quais tipos de falhas um aplicativo pode experimentar e como o aplicativo detecta essas falhas.Determine what types of failures an application might experience and how the application detects those failures.
  • Capture os possíveis efeitos de cada tipo de falha e determine como o aplicativo responde.Capture the potential effects of each type of failure and determine how the app responds.
  • Planeje o registro em log e o monitoramento da falha e identifique estratégias de recuperação.Plan for logging and monitoring the failure and identify recovery strategies.

Aqui estão alguns exemplos de modos de falha e estratégias de detecção para um ponto — de falha específico uma chamada para um serviço Web externo:Here are some examples of failure modes and detection strategies for a specific failure point — a call to an external web service:

Modo de falhaFailure mode Estratégia de detecçãoDetection strategy
O serviço está indisponívelService is unavailable HTTP 5xxHTTP 5xx
LimitaçãoThrottling HTTP 429 (Número Excessivo de Solicitações)HTTP 429 (Too Many Requests)
AutenticaçãoAuthentication HTTP 401 (Não Autorizado)HTTP 401 (Unauthorized)
Resposta lentaSlow response Tempo limite da solicitação atingidoRequest times out

Para obter mais informações sobre o processo de FMA, com recomendações específicas para o Azure, consulte análise do modo de falha.For more information about the FMA process, with specific recommendations for Azure, see Failure mode analysis.

Os exemplos relacionados ao GitHub estão aqui.GitHub Related samples are here.

Operando em várias regiõesOperating in multiple regions

Se seu aplicativo é implantado em uma única região, no caso raro de toda a região ficar não disponível, o aplicativo também fica não disponível.If your application is deployed to a single region, in the rare event the entire region becomes unavailable, your application will also be unavailable. Isso pode ser inaceitável segundo os termos do SLA do aplicativo.This may be unacceptable under the terms of your application's SLA. Nesse caso, considere implantar o aplicativo e os respectivos serviços entre várias regiões.If so, consider deploying your application and its services across multiple regions. Uma implantação de várias regiões pode usar um padrão ativo-ativo (distribuindo solicitações entre várias instâncias ativas) ou um padrão ativo-passivo (mantendo uma instância "passiva" em reserva, no caso de falha da instância primária)A multi-region deployment can use an active-active pattern (distributing requests across multiple active instances) or an active-passive pattern (keeping a "warm" instance in reserve, in case the primary instance fails)

Muitas falhas são gerenciáveis na mesma região do Azure.Many failures are manageable within the same Azure region. No entanto, no caso improvável de uma interrupção do serviço em toda a região, as cópias localmente redundantes dos seus dados não estão disponíveis.However, in the unlikely event of a region-wide service disruption, the locally redundant copies of your data aren't available. Se você habilitou a replicação geográfica, há três cópias adicionais de seus BLOBs e tabelas em uma região diferente.If you've enabled geo-replication, there are three additional copies of your blobs and tables in a different region. Se a Microsoft declarar a região perdida, o Azure remapeará todas as entradas DNS para a região secundária.If Microsoft declares the region lost, Azure remaps all the DNS entries to the secondary region.

Observação

Esse processo ocorre apenas para interrupções de serviço em toda a região e não está dentro de seu controle.This process occurs only for region-wide service disruptions and is not within your control. Considere o uso do Azure Site Recovery para alcançar melhor RPO e RTO.Consider using Azure Site Recovery to achieve better RPO and RTO. Usando Site Recovery, você decide qual é uma interrupção aceitável e quando fazer failover para as VMs replicadas.Using Site Recovery, you decide what is an acceptable outage and when to fail over to the replicated VMs.

Observação

A seleção do local do grupo de recursos é importante.The selection of the Resource Group location is important. No caso de uma interrupção regional, você não poderá controlar os recursos dentro desse grupo de recursos, independentemente da região em que esses recursos estão na verdade (ou seja, os recursos nas outras regiões continuarão a funcionar, mas as operações do plano de gerenciamento ficarão indisponíveis.In the event of a regional outage, you will be unable to control resources inside that Resource Group, regardless of what region those resources are actually in (i.e., the resources in the other region(s) will continue to function, but management plane operations will be unavailable.

Sua resposta a uma interrupção de serviço em toda a região depende da implantação e do plano de recuperação de desastres.Your response to a region-wide service disruption depends on your deployment and your disaster recovery plan.

  • Como uma estratégia de controle de custo, para aplicativos não críticos que não exigem um tempo de recuperação garantido, pode fazer sentido reimplantar em uma região diferente.As a cost-control strategy, for non-critical applications that don't require a guaranteed recovery time, it might make sense to redeploy to a different region.
  • Para aplicativos que são hospedados em outra região com funções implantadas, mas não distribuem o tráfego entre regiões (implantação ativa/passiva), alterne para o serviço hospedado secundário na região alternativa.For applications that are hosted in another region with deployed roles but don't distribute traffic across regions (active/passive deployment), switch to the secondary hosted service in the alternate region.
  • Para aplicativos que têm uma implantação secundária em escala completa em outra região (implantação ativa/ativa), encaminhe o tráfego para essa região.For applications that have a full-scale secondary deployment in another region (active/active deployment), route traffic to that region.

Para saber mais sobre a recuperação de uma interrupção de serviço em toda a região, confira recuperar de uma interrupção de serviço em toda a região.To learn more about recovering from a region-wide service disruption, see Recover from a region-wide service disruption.

Recuperação de VMVM recovery

Para aplicativos críticos, planeje a recuperação de VMs no caso de uma interrupção de serviço em toda a região.For critical apps, plan for recovering VMs in the event of a region-wide service disruption.

  • Use o backup do Azure ou outro método de backup para criar backups entre regiões que são consistentes com o aplicativo.Use Azure Backup or another backup method to create cross-region backups that are application consistent. (A replicação do cofre de backup deve ser configurada no momento da criação.)(Replication of the Backup vault must be configured at the time of creation.)
  • Use Site Recovery para replicar entre regiões para failover de aplicativo com um clique e teste de failover.Use Site Recovery to replicate across regions for one-click application failover and failover testing.
  • Use o Gerenciador de tráfego para automatizar o failover de tráfego de usuário para outra região.Use Traffic Manager to automate user traffic failover to another region.

Para saber mais, confira recuperar de uma interrupção de serviço em toda a região, máquinas virtuais.To learn more, see Recover from a region-wide service disruption, Virtual machines.

Recuperação de armazenamentoStorage recovery

Para proteger seu armazenamento no caso de uma interrupção de serviço em toda a região:To protect your storage in the event of a region-wide service disruption:

  • Use o armazenamento com redundância geográfica.Use geo-redundant storage.
  • Saiba onde o armazenamento é replicado geograficamente.Know where your storage is geo-replicated. Isso afeta o local em que você implanta outras instâncias de seus dados que exigem afinidade regional com seu armazenamento.This affects where you deploy other instances of your data that require regional affinity with your storage.
  • Verifique a consistência dos dados após o failover e, se necessário, restaure a partir de um backup.Check data for consistency after failover and, if necessary, restore from a backup.

Para saber mais, consulte criando aplicativos altamente disponíveis usando o Ra-grs.To learn more, see Designing highly available applications using RA-GRS.

Banco de dados SQL e SQL ServerSQL Database and SQL Server

O Banco de dados SQL do Azure fornece dois tipos de recuperação:Azure SQL Database provides two types of recovery:

Para SQL Server em execução em VMs, consulte alta disponibilidade e recuperação de desastre para SQL Server em máquinas virtuais do Azure.For SQL Server running on VMs, see High availability and disaster recovery for SQL Server in Azure Virtual Machines.