Como desenvolver aplicativos do Azure confiáveisDesigning reliable Azure applications

Criar um aplicativo confiável na nuvem é diferente do desenvolvimento de aplicativos tradicional.Building a reliable application in the cloud is different from traditional application development. Embora historicamente você possa ter comprado um hardware superior para escalar verticalmente, em um ambiente de nuvem, é preciso escalar horizontalmente e não verticalmente.While historically you may have purchased higher-end hardware to scale up, in a cloud environment you scale out instead of up. Em vez de tentar evitar completamente a falha, a meta é minimizar os efeitos de uma falha em um componente individual.Instead of trying to prevent failures altogether, the goal is to minimize the effects of a single failing component.

Aplicativos confiáveis são:Reliable applications are:

  • Resilientes e se recuperam bem de falhas, além de continuarem a funcionar com mínimo tempo de inatividade e perda de dados antes de recuperação completa.Resilient and recover gracefully from failures, and they continue to function with minimal downtime and data loss before full recovery.
  • HA (altamente disponíveis) e executam corretamente em um estado íntegro, sem tempo de inatividade significativo.Highly available (HA) and run as designed in a healthy state with no significant downtime.

Compreender como esses elementos funcionam juntos — e como eles afetam o custo — é essencial para criar um aplicativo confiável.Understanding how these elements work together — and how they affect cost — is essential to building a reliable application. Isso pode ajudá-lo a determinar quanto tempo de inatividade é aceitável, o custo potencial para o seu negócio e quais funções são necessárias durante uma recuperação.It can help you determine how much downtime is acceptable, the potential cost to your business, and which functions are necessary during a recovery.

Este artigo fornece uma visão geral da criação de confiabilidade em cada etapa do processo de desenvolvimento de aplicativo do Azure.This article provides a brief overview of building reliability into each step of the Azure application design process. Cada seção inclui um link para um artigo detalhado sobre como integrar a confiabilidade a essa etapa específica no processo.Each section includes a link to an in-depth article on how to integrate reliability into that specific step in the process. Se você estiver procurando por considerações de confiabilidade para serviços individuais do Azure, examine a Lista de verificação de resiliência para serviços específicos do Azure.If you're looking for reliability considerations for individual Azure services, review the Resiliency checklist for specific Azure services.

Criar para confiabilidadeBuild for reliability

Esta seção descreve seis etapas para criar um aplicativo do Azure confiável.This section describes six steps for building a reliable Azure application. Cada etapa vincula a uma seção que define mais detalhadamente o processo e os termos.Each step links to a section that further defines the process and terms.

  1. Defina os requisitos. Define requirements. Desenvolva requisitos de disponibilidade e de recuperação com base em cargas de trabalho decompostas e necessidades de negócios.Develop availability and recovery requirements based on decomposed workloads and business needs.
  2. Use as melhores práticas de arquitetura. Use architectural best practices. Siga as melhores práticas, identifique os pontos de falha possíveis na arquitetura e determine como o aplicativo responderá à falha.Follow proven practices, identify possible failure points in the architecture, and determine how the application will respond to failure.
  3. Teste com simulações e failovers forçados. Test with simulations and forced failovers. Simule falhas, dispare failovers forçados e teste a detecção e a recuperação dessas falhas.Simulate faults, trigger forced failovers, and test detection and recovery from these failures.
  4. Implante o aplicativo de forma consistente. Deploy the application consistently. Libere para produção usando processos confiáveis e reproduzíveis.Release to production using reliable and repeatable processes.
  5. Monitore a integridade do aplicativo. Monitor application health. Detecte falhas, monitore os indicadores de possíveis falhas e avalie a integridade de seus aplicativos.Detect failures, monitor indicators of potential failures, and gauge the health of your applications.
  6. Responda a falhas e desastres. Respond to failures and disasters. Identifique quando uma falha ocorre e determine como solucioná-la com base em estratégias estabelecidas.Identify when a failure occurs, and determine how to address it based on established strategies.

Definir requisitosDefine requirements

Identifique suas necessidades de negócios e compile seu plano de confiabilidade para solucioná-las.Identify your business needs, and build your reliability plan to address them. Considere o seguinte:Consider the following:

  • Identifique as cargas de trabalho e o uso.Identify workloads and usage. Uma carga de trabalho é uma funcionalidade 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. 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.

  • Planeje quanto aos padrões de uso.Plan for usage patterns. Padrões de uso também desempenham um papel nos requisitos.Usage patterns also play a role in requirements. 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. Por exemplo, um aplicativo de declaração de imposto não pode falhar durante um prazo de entrega da declaração.For example, a tax-filing application can't fail during a filing deadline. Para garantir o tempo de atividade, planeje a redundância entre várias regiões para o caso de uma delas falhar.To ensure uptime, plan redundancy across several regions in case one fails. Por outro lado, para minimizar os custos durante períodos não críticos, você pode executar seu aplicativo em uma única região.Conversely, to minimize costs during non-critical periods, you can run your application in a single region.

  • Estabeleça métricas de disponibilidade — MTTR (tempo médio até a recuperação) e MTBF (tempo médio entre falhas).Establish availability metrics — mean time to recovery (MTTR) and mean time between failures (MTBF). O MTTR é o tempo médio necessário para restaurar um componente após uma falha.MTTR is the average time it takes to restore a component after a failure. O MTBF é a duração que pode ser razoavelmente esperada de um componente entre interrupções.MTBF is how long a component can reasonably expect to last between outages. Use essas medidas para determinar onde adicionar redundância e para determinar SLAs (Contratos de Nível de Serviço) para clientes.Use these measures to determine where to add redundancy and to determine service-level agreements (SLAs) for customers.

  • Estabeleça métricas de recuperação — objetivo do tempo de recuperação e RPO (objetivo do ponto de recuperação).Establish recovery metrics — recovery time objective and recovery point objective (RPO). RTO é o tempo máximo aceitável que um aplicativo pode ficar indisponível após um incidente.RTO is the maximum acceptable time an application can be unavailable after an incident. RPO é a duração máxima de perda de dados que é aceitável durante um desastre.RPO is the maximum duration of data loss that is acceptable during a disaster. Para obter esses valores, realize uma avaliação de risco e verifique se você entendeu o custo e o risco de tempo de inatividade ou perda de dados em sua organização.To derive these values, conduct a risk assessment and make sure you understand the cost and risk of downtime or data loss in your organization.

    Observação

    Se o MTTR de qualquer componente crítico em uma configuração altamente disponível exceder o RTO do sistema, uma falha no sistema poderá causar uma interrupção inaceitável do negócio.If the MTTR of any critical component in a highly available setup exceeds the system RTO, a failure in the system might cause an unacceptable business disruption. Ou seja, não é possível restaurar o sistema dentro do RTO definido.That is, you can't restore the system within the defined RTO.

  • Determine os destinos de disponibilidade da carga de trabalho.Determine workload availability targets. Para garantir que a arquitetura do aplicativo atenda aos seus requisitos de negócios, defina os SLAs de destino para cada carga de trabalho.To ensure that application architecture meets your business requirements, define target SLAs for each workload. Considere o custo e a complexidade de atender aos requisitos de disponibilidade, além das dependências do aplicativo.Account for the cost and complexity of meeting availability requirements, in addition to application dependencies.

  • Entenda os SLAs (Contratos de Nível de Serviço).Understand service-level agreements. No Azure, o SLA descreve os compromissos da Microsoft em relação ao tempo de atividade e à conectividade.In Azure, the SLA describes the Microsoft commitments for uptime and connectivity. Se o SLA para um serviço específico for de 99,9%, você deverá esperar que o serviço esteja disponível 99,9% do tempo.If the SLA for a particular service is 99.9 percent, you should expect the service to be available 99.9 percent of the time.

    Defina seus próprios SLAs de destino para cada carga de trabalho em sua solução, para que você possa determinar se a arquitetura atende aos requisitos de negócios.Define your own target SLAs for each workload in your solution, so you can determine whether the architecture meets the business requirements. Por exemplo, se uma carga de trabalho exigir tempo de atividade de 99,99%, mas depender de um serviço com um SLA de 99,9%, o serviço não poderá ser um ponto único de falha no sistema.For example, if a workload requires 99.99 percent uptime but depends on a service with a 99.9 percent SLA, that service can't be a single point of failure in the system.

Para obter mais informações sobre como desenvolver os requisitos para aplicativos confiáveis, consulte Como desenvolver requisitos para aplicativos resilientes do Azure.For more information about developing requirements for reliable applications, see Developing requirements for resilient Azure applications.

Use as melhores práticas de arquiteturaUse architectural best practices

Durante a fase de arquitetura, concentre-se na implementação de práticas que atendem aos seus requisitos de negócios, identificam pontos de falha e minimizam o escopo de falhas.During the architectural phase, focus on implementing practices that meet your business requirements, identify failure points, and minimize the scope of failures.

  • Execute uma FMA (Análise do modo de falha).Perform a failure mode analysis (FMA). A FMA cria resiliência em um aplicativo no início do estágio de design.FMA builds resiliency into an application early in the design stage. Ela ajuda você a identificar os tipos de falhas de que seu aplicativo pode enfrentar, os possíveis efeitos de cada um deles e possíveis estratégias de recuperação.It helps you identify the types of failures your application might experience, the potential effects of each, and possible recovery strategies.

  • Crie um plano de redundância.Create a redundancy plan. O nível de redundância necessário para cada carga de trabalho depende de suas necessidades de negócios e compõe o custo geral de seu aplicativo.The level of redundancy required for each workload depends on your business needs and factors into the overall cost of your application.

  • Desenvolva buscando escalabilidade.Design for scalability. Um aplicativo em nuvem deve ser capaz de escalar para acomodar as alterações no uso.A cloud application must be able to scale to accommodate changes in usage. Comece com componentes discretos e desenvolva o aplicativo para responder automaticamente ao carregamento de alterações sempre que possível.Begin with discrete components, and design the application to respond automatically to load changes whenever possible. Mantenha os limites de dimensionamento em mente durante o desenvolvimento para que você possa expandir facilmente no futuro.Keep scaling limits in mind during design so you can expand easily in the future.

  • Planeje os requisitos de assinatura e de serviço.Plan for subscription and service requirements. Você pode precisar de assinaturas adicionais para provisionar recursos suficientes para atender aos requisitos de negócios para armazenamento, conexões, taxa de transferência e muito mais.You might need additional subscriptions to provision enough resources to meet your business requirements for storage, connections, throughput, and more.

  • 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.

  • Implemente estratégias de resiliência.Implement resiliency strategies. Resiliência é a capacidade de um sistema de se recuperar de falhas e continuar funcionando.Resiliency is the ability of a system to recover from failures and continue to function. Sempre que possível, implemente padrões de design de resiliência, tais como isolamento de recursos críticos, uso de transações de compensação e execução de operações assíncronas.Implement resiliency design patterns, such as isolating critical resources, using compensating transactions, and performing asynchronous operations whenever possible.

  • Crie requisitos de disponibilidade em seu design.Build availability requirements into your design. A disponibilidade é a proporção de tempo em que o sistema está funcional e em execução.Availability is the proportion of time your system is functional and working. Tome medidas para garantir a disponibilidade de aplicativos em conformidade com o contrato de nível de serviço.Take steps to ensure that application availability conforms to your service-level agreement. Por exemplo, evite pontos únicos de falha, decomponha as cargas de trabalho por objetivo de nível de serviço e limite os usuários de alto volume.For example, avoid single points of failure, decompose workloads by service-level objective, and throttle high-volume users.

  • Gerencie seus dados.Manage your data. O modo como você armazena, faz backup e replica os dados é essencial.How you store, back up, and replicate data is critical.

    • Escolha os métodos de replicação para os dados do aplicativo.Choose replication methods for your application data. Os dados do aplicativo são armazenados em diferentes armazenamentos de dados e podem ter requisitos de disponibilidade diferentes.Your application data is stored in various data stores and might have different availability requirements. Avalie os métodos de replicação e os locais de cada tipo de armazenamento de dados para garantir que ele atenda às suas necessidades.Evaluate the replication methods and locations for each type of data store to ensure that they satisfy your requirements.
    • Documente e teste os processos de failover e failback.Document and test your failover and failback processes. Documente claramente as instruções para fazer failover para um novo armazenamento de dados. Teste-as regularmente para verificar se elas são precisas e fáceis de acompanhar.Clearly document instructions to fail over to a new data store, and test them regularly to make sure they are accurate and easy to follow.
    • Proteja seus dados.Protect your data. Faça backup dos dados e valide-os regularmente. Assegure que nenhuma conta de usuário individual tenha acesso tanto aos dados de backup quanto aos de produção.Back up and validate data regularly, and make sure no single user account has access to both production and backup data.
    • Planeje a recuperação de dados.Plan for data recovery. Verifique se sua estratégia de backup e replicação fornece tempos de recuperação de dados que atendem aos seus requisitos de nível de serviço.Make sure that your backup and replication strategy provides for data recovery times that meet your service-level requirements. Contabilize todos os tipos de dados usados pelo seu aplicativo, incluindo bancos de dados e dados de referência.Account for all types of data your application uses, including reference data and databases.

Para obter mais informações sobre como arquitetar aplicativos confiáveis, consulte Como arquitetar aplicativos do Azure para resiliência e disponibilidade.For more information about architecting reliable applications, see Architecting Azure applications for resiliency and availability.

Testar com simulações e failovers forçadosTest with simulations and forced failovers

O teste de confiabilidade requer medição do desempenho da carga de trabalho de ponta a ponta sob condições de falha intermitentes.Testing for reliability requires measuring how the end-to-end workload performs under failure conditions that only occur intermittently.

  • Teste para cenários de falha comuns disparando falhas reais ou simulando-as.Test for common failure scenarios by triggering actual failures or by simulating them. Use o teste de injeção de falha para testar cenários comuns (incluindo combinações de falhas) e o tempo de recuperação.Use fault injection testing to test common scenarios (including combinations of failures) and recovery time.
  • Identifique falhas que ocorrem apenas sob carga.Identify failures that occur only under load. Teste a carga de pico usando dados de produção ou sintéticos, desde que estes se aproximem o máximo possível dos dados de produção, para ver como é o comportamento do aplicativo sob condições do mundo real.Test for peak load, using production data or synthetic data that is as close to production data as possible, to see how the application behaves under real-world conditions.
  • Execute simulações de recuperação de desastre.Run disaster recovery drills. Tenha um plano para recuperação de desastre em vigor e teste-o periodicamente para verificar se ele funciona.Have a disaster recovery plan in place, and test it periodically to make sure it works.
  • Execute teste de failover e de failback.Perform failover and failback testing. Verifique se os serviços que dependem do seu aplicativo fazem failover e failback na ordem correta.Ensure that your application's dependent services fail over and fail back in the correct order.
  • Execute testes de simulação.Run simulation tests. Testar cenários da vida real pode realçar problemas que precisam ser resolvidos.Testing real-life scenarios can highlight issues that need to be addressed. Cenários devem ser controláveis e sem interrupções para os negócios.Scenarios should be controllable and non-disruptive to the business. Informe à gerência sobre planos de teste com simulação.Inform management of simulation testing plans.
  • Teste as investigações de integridade.Test health probes. Configure investigações de integridade para balanceadores de carga e gerenciadores de tráfego para verificar os componentes essenciais do sistema.Configure health probes for load balancers and traffic managers to check critical system components. Teste-as para verificar se elas respondem adequadamente.Test them to make sure that they respond appropriately.
  • Teste os sistemas de monitoramento.Test monitoring systems. Verifique se os sistemas de monitoramento estão relatando dados precisos e informações críticas de modo confiável para ajudar a identificar possíveis falhas.Be sure that monitoring systems are reliably reporting critical information and accurate data to help identify potential failures.
  • Inclua serviços de terceiros em cenários de teste.Include third-party services in test scenarios. Teste possíveis pontos de falha devido à interrupção do serviço de terceiros, bem como a recuperação.Test possible points of failure due to third-party service disruption, in addition to recovery.

O teste é um processo iterativo.Testing is an iterative process. Teste o aplicativo, avalie o resultado, analise e resolva eventuais falhas e repita o processo.Test the application, measure the outcome, analyze and address any failures, and repeat the process.

Para obter mais informações sobre como testar a confiabilidade do aplicativo, veja Como testar aplicativos do Azure para resiliência e disponibilidade.For more information about testing for application reliability, see Testing Azure applications for resiliency and availability.

Implantar o aplicativo de forma consistenteDeploy the application consistently

A implantação inclui etapas de provisionamento de recursos do Azure, implantação do código do aplicativo e aplicação de definições de configuração.Deployment includes provisioning Azure resources, deploying application code, and applying configuration settings. Uma atualização pode envolver todas as três tarefas ou um subconjunto delas.An update may involve all three tasks or a subset of them.

Após um aplicativo ser implantado para produção, as atualizações são uma possível fonte de erros.After an application is deployed to production, updates are a possible source of errors. Minimize os erros com processos de implantação reproduzíveis e previsíveis.Minimize errors with predictable and repeatable deployment processes.

  • Automatize o processo de implantação do aplicativo.Automate your application deployment process. Automatize o maior número possível de processos.Automate as many processes as possible.
  • Projete seu processo de lançamento para maximizar a disponibilidade.Design your release process to maximize availability. Se o processo de lançamento exigir que os serviços fiquem offline durante a implantação, o aplicativo ficará não disponível até que eles fiquem online novamente.If your release process requires services to go offline during deployment, your application is unavailable until they come back online. Aproveite os recursos de preparo e produção da plataforma.Take advantage of platform staging and production features. Usar lançamentos canário ou "blue-green" para implantar atualizações, de modo que, se ocorrer uma falha, você poderá rapidamente reverter a atualização.Use blue-green or canary releases to deploy updates, so if a failure occurs, you can quickly roll back the update.
  • Tenha um plano de reversão para a implantação.Have a rollback plan for deployment. Crie um processo de reversão para voltar para uma última versão válida conhecida e minimizar o tempo de inatividade em caso de falha em uma implantação.Design a rollback process to return to a last known good version and to minimize downtime if a deployment fails.
  • Registre as implantações e audite-as.Log and audit deployments. Se você usar técnicas de implantação com preparo, haverá mais de uma versão do aplicativo em execução na produção.If you use staged deployment techniques, more than one version of your application is running in production. Implemente uma estratégia de registro em log robusta para capturar o máximo possível de informações específicas da versão.Implement a robust logging strategy to capture as much version-specific information as possible.
  • Documente o processo de lançamento do aplicativo.Document the application release process. Defina e documente claramente seu processo de lançamento e verifique se ele está disponível para toda a equipe de operações.Clearly define and document your release process, and ensure that it's available to the entire operations team.

Para obter mais informações sobre como testar a implantação e a confiabilidade do aplicativo, veja Como implantar aplicativos do Azure para resiliência e disponibilidade.For more information about application reliability and deployment, see Deploying Azure applications for resiliency and availability.

Monitorar a integridade do aplicativoMonitor application health

Implemente práticas recomendadas para monitoramento e alertas em seu aplicativo para que você possa detectar falhas e alertar um operador para corrigi-las.Implement best practices for monitoring and alerts in your application so you can detect failures and alert an operator to fix them.

  • Implemente investigações de integridade e verifique as funções.Implement health probes and check functions. Execute-as regularmente de fora do aplicativo para identificar a degradação do desempenho e da integridade do aplicativo.Run them regularly from outside the application to identify degradation of application health and performance.

  • Verifique os fluxos de trabalho de execução longa.Check long-running workflows. Detectar problemas antecipadamente pode minimizar a necessidade de reverter todo o fluxo de trabalho ou de executar várias transações de compensação.Catching issues early can minimize the need to roll back the entire workflow or to execute multiple compensating transactions.

  • Mantenha os logs do aplicativo.Maintain application logs.

    • Registre em log aplicativos em produção e em limites de serviço.Log applications in production and at service boundaries.
    • Use o registro em log semântico e assíncrono.Use semantic and asynchronous logging.
    • Separe os logs do aplicativo dos logs de auditoria.Separate application logs from audit logs.
  • Meça estatísticas de chamada remota e compartilhe dados com a equipe de aplicativos.Measure remote call statistics, and share the data with the application team. Para fornecer à sua equipe de operações uma exibição instantânea da integridade do aplicativo, resuma métricas de chamada remota, tais como latência, taxa de transferência e erros nos percentuais 99 e 95.To give your operations team an instantaneous view into application health, summarize remote call metrics, such as latency, throughput, and errors in the 99 and 95 percentiles. Execute análise estatística nas métricas para revelar os erros que ocorrem dentro de cada percentual.Perform statistical analysis on the metrics to uncover errors that occur within each percentile.

  • Acompanhe as exceções transitórias e novas tentativas durante um período de tempo apropriado.Track transient exceptions and retries over an appropriate time frame. Uma tendência de aumento de exceções ao longo do tempo indica que o serviço está apresentando um problema e pode falhar.A trend of increasing exceptions over time indicates that the service is having an issue and may fail.

  • Configure um sistema de avisos antecipados.Set up an early warning system. Identifique os KPIs (indicadores chave de desempenho) de integridade de um aplicativo, tais como exceções transitórias e latência de chamadas remotas e defina valores limite adequados para cada um deles.Identify the key performance indicators (KPIs) of an application's health, such as transient exceptions and remote call latency, and set appropriate threshold values for each of them. Envie um alerta para operações quando o valor limite é atingido.Send an alert to operations when the threshold value is reached.

  • Opere dentro dos limites de assinatura do Azure.Operate within Azure subscription limits. As assinaturas do Azure têm limites para determinados tipos de recursos, tais como o número de grupos de recursos, núcleos e contas de armazenamento.Azure subscriptions have limits on certain resource types, such as the number of resource groups, cores, and storage accounts. Observe seu uso dos tipos de recursos.Watch your use of resource types.

  • Monitore os serviços de terceiros.Monitor third-party services. Registre suas invocações e correlacione-as com a integridade e o log de diagnóstico do aplicativo usando um identificador exclusivo.Log your invocations and correlate them with your application's health and diagnostic logging using a unique identifier.

  • Treine vários operadores para monitorar o aplicativo e executar etapas de recuperação manual.Train multiple operators to monitor the application and to perform manual recovery steps. Verifique se há sempre pelo menos um operador treinado ativo.Make sure there is always at least one trained operator active.

Para obter mais informações sobre o monitoramento da confiabilidade do aplicativo, veja Como monitorar a integridade do aplicativo do Azure.For more information about monitoring for application reliability, see Monitoring Azure application health.

Responder a falhas e desastresRespond to failures and disasters

Crie um plano de recuperação e verifique se ele aborda a restauração de dados, interrupções de rede, falhas de serviços dependentes e interrupções de serviço em toda a região.Create a recovery plan, and make sure that it covers data restoration, network outages, dependent service failures, and region-wide service disruptions. Considere suas VMs, armazenamento, bancos de dados e outros serviços da plataforma Azure em sua estratégia de recuperação.Consider your VMs, storage, databases, and other Azure platform services in your recovery strategy.

  • Planeje as interações com o Suporte do Azure.Plan for Azure support interactions. Antes da necessidade surgir, estabeleça um processo para entrar em contato com o Suporte do Azure.Before the need arises, establish a process for contacting Azure support.
  • Documente e teste seu plano de recuperação de desastre.Document and test your disaster recovery plan. Escreva um plano de recuperação de desastre que reflita o impacto das falhas do aplicativo nos negócios.Write a disaster recovery plan that reflects the business impact of application failures. Automatize o processo de recuperação tanto quanto possível e documente eventuais etapas manuais.Automate the recovery process as much as possible, and document any manual steps. Teste regularmente seu processo de recuperação de desastres, para validar e aprimorar o plano.Regularly test your disaster recovery process to validate and improve the plan.
  • Faça failover manualmente quando necessário.Fail over manually when required. Alguns sistemas não conseguem executar failover automaticamente e requerem um failover manual.Some systems can't fail over automatically and require a manual failover. Se um aplicativo fizer failover para uma região secundária, execute um teste de prontidão operacional.If an application fails over to a secondary region, perform an operational readiness test. Verifique se a região principal está íntegra e pronta para receber o tráfego. antes de fazer failback.Verify that the primary region is healthy and ready to receive traffic again before failing back. Determine o que é a funcionalidade reduzida do aplicativo e como o aplicativo informa os usuários sobre problemas temporários.Determine what the reduced application functionality is and how the app informs users of temporary problems.
  • Prepare-se para falhas do aplicativo.Prepare for application failure. Prepare para uma variedade de falhas, inclusive as falhas que são tratadas automaticamente, aquelas que resultam em funcionalidade reduzida e aquelas que fazem com que o aplicativo fique indisponível.Prepare for a range of failures, including faults that are handled automatically, those that result in reduced functionality, and those that cause the application to become unavailable. O aplicativo deve informar problemas temporários aos usuários.The application should inform users of temporary issues.
  • Recupere dados corrompidos.Recover from data corruption. Se ocorrer falha em um armazenamento de dados, verifique se há inconsistências de dados quando o armazenamento fica disponível novamente, especialmente se os dados foram replicados.If a failure happens in a data store, check for data inconsistencies when the store becomes available again, especially if the data was replicated. Restaure dados corrompidos por meio de um backup.Restore corrupt data from a backup.
  • Recupere-se de uma interrupção da rede.Recover from a network outage. Você poderá usar dados armazenados em cache para executar localmente com funcionalidade reduzida do aplicativo.You might be able to use cached data to run locally with reduced application functionality. Caso contrário, considere a possibilidade de tempo de inatividade do aplicativo ou faça failover para outra região.If not, consider application downtime or fail over to another region. Armazene seus dados em um local alternativo até que a conectividade seja restaurada.Store your data in an alternate location until connectivity is restored.
  • Recupere-se de uma falha de serviço dependente.Recover from a dependent service failure. Determine qual funcionalidade ainda está disponível e como o aplicativo deve responder.Determine which functionality is still available and how the application should respond.
  • Recupere-se de uma interrupção do serviço em toda a região.Recover from a region-wide service disruption. Interrupções de serviço em toda a região são incomuns, mas você deve ter uma estratégia para solucioná-los, especialmente para aplicativos críticos.Region-wide service disruptions are uncommon, but you should have a strategy to address them, especially for critical applications. Você poderá reimplantar o aplicativo para outra região ou redistribuir o tráfego.You might be able to redeploy the application to another region or redistribute traffic.

Para obter mais informações sobre como responder a falhas e recuperação de desastre, consulte Recuperação de desastre e falha para aplicativos do Azure.For more information about responding to failures and disaster recovery, see Failure and disaster recovery for Azure applications.

Próximas etapasNext steps