Lista de verificação de resiliência para serviços específicos do AzureResiliency checklist for specific Azure services

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. Cada tecnologia tem seus próprios modos de falha específicos, o que você deve considerar ao projetar e implementar seu aplicativo.Every technology has its own particular failure modes, which you must consider when designing and implementing your application. Use esta lista de verificação para revisar as considerações de resiliência para serviços específicos do Azure.Use this checklist to review the resiliency considerations for specific Azure services. Para obter mais informações sobre como criar aplicativos resilientes, consulte criar aplicativos confiáveis do Azure.For more information about designing resilient applications, see Design reliable Azure applications.

Serviço de AplicativoApp Service

Use a camada Standard ou Premium.Use Standard or Premium tier. Essas camadas dão suporte a slots de preparo e backups automáticos.These tiers support staging slots and automated backups. Para obter mais informações, consulte Visão geral aprofundada de planos do Serviço de Aplicativo do AzureFor more information, see Azure App Service plans in-depth overview

Evite expandir ou reduzir verticalmente.Avoid scaling up or down. Em vez disso, selecione uma camada e o tamanho de instância que atendem aos seus requisitos de desempenho sob carga típica e, em seguida, aumente as instâncias para manipular as alterações no volume de tráfego.Instead, select a tier and instance size that meet your performance requirements under typical load, and then scale out the instances to handle changes in traffic volume. Expandir e reduzir verticalmente pode disparar uma reinicialização do aplicativo.Scaling up and down may trigger an application restart.

Armazene a configuração como configurações de aplicativo.Store configuration as app settings. Use as configurações de aplicativo para manter definições de configuração como configurações de aplicativo.Use app settings to hold configuration settings as app settings. Defina as configurações em seus modelos do Resource Manager ou usando o PowerShell, para que você possa aplicá-las como parte de um processo automatizado de implantação/atualização, que é mais confiável.Define the settings in your Resource Manager templates, or using PowerShell, so that you can apply them as part of an automated deployment / update process, which is more reliable. Para obter mais informações, consulte Configurar aplicativos Web no Serviço de Aplicativo do Azure.For more information, see Configure web apps in Azure App Service.

Crie Planos do Serviço de Aplicativo separados para produção e teste.Create separate App Service plans for production and test. Não use slots em sua implantação de produção para teste.Don't use slots on your production deployment for testing. Todos os aplicativos dentro do mesmo Plano do Serviço de Aplicativo compartilham as mesmas instâncias de VM.All apps within the same App Service plan share the same VM instances. Se você colocar a produção e implantações de teste no mesmo plano, isso poderá afetar negativamente a implantação de produção.If you put production and test deployments in the same plan, it can negatively affect the production deployment. Por exemplo, testes de carga podem prejudicar o site de produção dinâmica.For example, load tests might degrade the live production site. Colocando as implantações de teste em um plano separado, você as isola da versão de produção.By putting test deployments into a separate plan, you isolate them from the production version.

Separe aplicativos Web de APIs da Web.Separate web apps from web APIs. Se sua solução tiver um front-end da Web e uma API Web, considere a possibilidade de decompo-los em aplicativos de serviço de aplicativo separados.If your solution has both a web front end and a web API, consider decomposing them into separate App Service apps. Esse design torna mais fácil para decompor a solução pela carga de trabalho.This design makes it easier to decompose the solution by workload. Você pode executar o aplicativo Web e a API em Planos do Serviço de Aplicativo separados, de modo que eles possam ser dimensionados de forma independente.You can run the web app and the API in separate App Service plans, so they can be scaled independently. Se você não precisar desse nível de escalabilidade inicialmente, poderá implantar os aplicativos no mesmo plano e movê-los para planos separados posteriormente, se necessário.If you don't need that level of scalability at first, you can deploy the apps into the same plan, and move them into separate plans later, if needed.

Evite usar o recurso de Serviço de Aplicativo de backup para fazer backup de Bancos de Dados SQL do Azure.Avoid using the App Service backup feature to back up Azure SQL databases. Em vez disso, use os Backups automatizados do Banco de Dados SQL.Instead, use SQL Database automated backups. O backup do serviço de aplicativo exporta o banco de dados para um arquivo BACPAC do SQL, que custa DTUs.App Service backup exports the database to a SQL BACPAC file, which costs DTUs.

Implante em um slot de preparo.Deploy to a staging slot. Crie um slot de implantação para preparo.Create a deployment slot for staging. Implante atualizações de aplicativo para o slot de preparo e verifique a implantação antes de trocá-la para produção.Deploy application updates to the staging slot, and verify the deployment before swapping it into production. Isso reduz a chance de uma atualização inválida em produção.This reduces the chance of a bad update in production. Isso também garante que todas as instâncias sejam aquecidas antes de serem trocadas para produção.It also ensures that all instances are warmed up before being swapped into production. Muitos aplicativos têm um tempo significativo de aquecimento e de resfriamento.Many applications have a significant warmup and cold-start time. Para obter mais informações, consulte Configurar ambientes de preparo para aplicativos Web no Serviço de Aplicativo do Azure.For more information, see Set up staging environments for web apps in Azure App Service.

Crie um slot de implantação para conter a LKG (última implantação válida).Create a deployment slot to hold the last-known-good (LKG) deployment. Quando você implanta uma atualização para produção, mova a implantação de produção anterior para o slot da LKG.When you deploy an update to production, move the previous production deployment into the LKG slot. Isso torna mais fácil reverter uma implantação incorreta.This makes it easier to roll back a bad deployment. Se você descobrir um problema posteriormente, você poderá reverter rapidamente para a versão LKG.If you discover a problem later, you can quickly revert to the LKG version. Para obter mais informações, veja Basic web application (Aplicativo Web básico).For more information, see Basic web application.

Habilite o log de diagnósticos , incluindo o log de aplicativo e o log do servidor Web.Enable diagnostics logging , including application logging and web server logging. O registro em log é importante para monitoramento e diagnóstico.Logging is important for monitoring and diagnostics. Consulte habilitar o log de diagnóstico para aplicativos Web no serviço Azure appSee Enable diagnostics logging for web apps in Azure App Service

Registre em log para o Armazenamento de Blobs.Log to blob storage. Isso torna mais fácil coletar e analisar os dados.This makes it easier to collect and analyze the data.

Criar uma conta de armazenamento separada para logs.Create a separate storage account for logs. Não use a mesma conta de armazenamento para logs e dados de aplicativo.Don't use the same storage account for logs and application data. Isso ajuda a impedir o registro em log de reduzir o desempenho do aplicativo.This helps to prevent logging from reducing application performance.

Monitore o desempenho.Monitor performance. Use um serviço de monitoramento de desempenho como o New Relic ou o Application Insights para monitorar o desempenho e o comportamento do aplicativo sob carga.Use a performance monitoring service such as New Relic or Application Insights to monitor application performance and behavior under load. O monitoramento de desempenho fornece informações sobre o aplicativo em tempo real.Performance monitoring gives you real-time insight into the application. Ele permite a você diagnosticar problemas e executar a análise de causa raiz de falhas.It enables you to diagnose issues and perform root-cause analysis of failures.

Gateway de AplicativoApplication Gateway

Provisione pelo menos duas instâncias.Provision at least two instances. Implante um Gateway de Aplicativo com pelo menos duas instâncias.Deploy Application Gateway with at least two instances. Uma única instância é um ponto único de falha.A single instance is a single point of failure. Use duas ou mais instâncias para redundância e escalabilidade.Use two or more instances for redundancy and scalability. Para se qualificar para o SLA, você deverá provisionar duas ou mais instâncias médias ou maiores.In order to qualify for the SLA, you must provision two or more medium or larger instances.

Cosmos DBCosmos DB

Replique o banco de dados entre regiões.Replicate the database across regions. O Cosmos DB permite associar qualquer número de regiões do Azure a uma conta de banco de dados do Cosmos DB.Cosmos DB allows you to associate any number of Azure regions with a Cosmos DB database account. Um banco de dados do Azure Cosmos DB pode ter várias regiões de leitura e uma de gravação.A Cosmos DB database can have one write region and multiple read regions. Se houver uma falha na região de gravação, você poderá ler de outra réplica.If there is a failure in the write region, you can read from another replica. O SDK do cliente lida com isso automaticamente.The Client SDK handles this automatically. Você também pode fazer failover da região de gravação para outra região.You can also fail over the write region to another region. Para obter mais informações, confira Como distribuir os dados globalmente com o Azure Cosmos DB.For more information, see How to distribute data globally with Azure Cosmos DB.

Hubs de EventosEvent Hubs

Use pontos de verificação .Use checkpoints . Um consumidor de evento deve gravar sua posição atual no armazenamento persistente em um intervalo predefinido.An event consumer should write its current position to persistent storage at some predefined interval. Dessa forma, se o consumidor apresentar uma falha (por exemplo, falhas do consumidor ou do host), uma nova instância poderá retomar a leitura do fluxo da última posição gravada.That way, if the consumer experiences a fault (for example, the consumer crashes, or the host fails), then a new instance can resume reading the stream from the last recorded position. Para obter mais informações, consulte Consumidores de evento.For more information, see Event consumers.

Tratar mensagens duplicadas.Handle duplicate messages. Se um consumidor de evento falhar, o processamento de mensagem é retomado do último ponto de verificação gravado.If an event consumer fails, message processing is resumed from the last recorded checkpoint. As mensagens que já foram processadas após o último ponto de verificação serão processadas novamente.Any messages that were already processed after the last checkpoint will be processed again. Portanto, sua lógica de processamento de mensagem deve ser idempotente, ou o aplicativo deve ser capaz de eliminar a duplicação de mensagens.Therefore, your message processing logic must be idempotent, or the application must be able to deduplicate messages.

Tratar exceções. .Handle exceptions. . Um consumidor de evento normalmente processa um lote de mensagens em um loop.An event consumer typically processes a batch of messages in a loop. Você deve tratar exceções neste loop de processamento para evitar a perda de um lote inteiro de mensagens se uma única mensagem causar uma exceção.You should handle exceptions within this processing loop to avoid losing an entire batch of messages if a single message causes an exception.

Use uma fila de mensagens mortas.Use a dead-letter queue. Se o processamento de uma mensagem resultar em uma falha não transitória, coloque a mensagem em uma fila de mensagens mortas, para que você possa acompanhar o status.If processing a message results in a nontransient failure, put the message onto a dead-letter queue, so that you can track the status. Dependendo do cenário, você pode tentar novamente a mensagem mais tarde, aplicar uma transação de compensação ou executar alguma outra ação.Depending on the scenario, you might retry the message later, apply a compensating transaction, or take some other action. Observe que os Hubs de Eventos não têm nenhuma funcionalidade interna de fila de mensagens mortas.Note that Event Hubs does not have any built-in dead-letter queue functionality. Você pode usar o Armazenamento de Filas do Azure ou o Barramento de Serviço para implementar uma fila de mensagens mortas ou usar o Azure Functions ou outro mecanismo de eventos.You can use Azure Queue Storage or Service Bus to implement a dead-letter queue, or use Azure Functions or some other eventing mechanism.

Implementar recuperação de desastres efetuando failover para um namespace secundário de Hubs de Eventos.Implement disaster recovery by failing over to a secondary Event Hubs namespace. Para saber mais, confira Recuperação de desastre geográfico dos Hubs de Eventos do Azure.For more information, see Azure Event Hubs Geo-disaster recovery.

Cache Redis do AzureAzure Cache for Redis

Configure a replicação geográfica .Configure Geo-replication . A replicação geográfica fornece um mecanismo para vincular dois caches do Azure de camada Premium para instâncias de Redis.Geo-replication provides a mechanism for linking two Premium-tier Azure Cache for Redis instances. Os dados gravados no cache primário são replicados para um cache secundário de somente leitura.Data written to the primary cache is replicated to a secondary read-only cache. Para obter mais informações, consulte como configurar a replicação geográfica para o cache do Azure para RedisFor more information, see How to configure geo-replication for Azure Cache for Redis

Configurar a persistência de dados.Configure data persistence. A persistência do Redis permite persistir os dados armazenados no Redis.Redis persistence allows you to persist data stored in Redis. Você também pode tirar instantâneos e fazer backup dos dados, que podem ser carregados em caso de falha de hardware.You can also take snapshots and back up the data, which you can load in case of a hardware failure. Para obter mais informações, consulte como configurar a persistência de dados para um cache do Azure de camada Premium para RedisFor more information, see How to configure data persistence for a Premium-tier Azure Cache for Redis

Se você estiver usando o cache do Azure para Redis como um cache de dados temporário e não como um repositório persistente, talvez essas recomendações não se apliquem.If you are using Azure Cache for Redis as a temporary data cache and not as a persistent store, these recommendations may not apply.

Provisione mais de uma réplica.Provision more than one replica. Use pelo menos duas réplicas para alta disponibilidade de leitura ou três para alta disponibilidade de leitura/gravação.Use at least two replicas for read high-availability, or three for read-write high-availability.

Configure indexadores para implantações de várias regiões.Configure indexers for multi-region deployments. Se você tiver uma implantação de várias regiões, considere as opções para a continuidade na indexação.If you have a multi-region deployment, consider your options for continuity in indexing.

  • Se a fonte de dados é com replicação geográfica, você geralmente deve apontar cada indexador de cada serviço do Azure Search regional para a respectiva réplica de fonte de dados local.If the data source is geo-replicated, you should generally point each indexer of each regional Azure Search service to its local data source replica. No entanto, essa abordagem não é recomendada para grandes conjuntos de dados armazenados no Banco de Dados SQL do Azure.However, that approach is not recommended for large datasets stored in Azure SQL Database. O motivo é que o Azure Search não pode executar a indexação incremental de réplicas de Banco de Dados SQL secundárias, somente de réplicas primárias.The reason is that Azure Search cannot perform incremental indexing from secondary SQL Database replicas, only from primary replicas. Em vez disso, aponte todos os indexadores para a réplica primária.Instead, point all indexers to the primary replica. Após um failover, aponte os indexadores do Azure Search para a nova réplica primária.After a failover, point the Azure Search indexers at the new primary replica.

  • Se a fonte de dados não é com replicação geográfica, aponte vários indexadores na fonte de dados, de forma que os serviços do Azure Search façam a indexação da fonte de dados de modo contínuo e independente.If the data source is not geo-replicated, point multiple indexers at the same data source, so that Azure Search services in multiple regions continuously and independently index from the data source. Para obter mais informações, consulte Considerações de desempenho e otimização do Azure Search.For more information, see Azure Search performance and optimization considerations.

Barramento de ServiçoService Bus

Use a camada Premium para cargas de trabalho de produção .Use Premium tier for production workloads . Mensagens Premium do Barramento de Serviço fornecem recursos de processamento dedicado e reservado e a capacidade de memória para dar suporte a desempenho e taxa de transferência previsíveis.Service Bus Premium Messaging provides dedicated and reserved processing resources, and memory capacity to support predictable performance and throughput. A camada de Mensagens Premium também oferece acesso a novos recursos que estão disponíveis somente para clientes Premium no início.Premium Messaging tier also gives you access to new features that are available only to premium customers at first. Você pode decidir o número de unidades do sistema de mensagens com base em cargas de trabalho esperadas.You can decide the number of messaging units based on expected workloads.

Tratar mensagens duplicadas .Handle duplicate messages . Se um editor falha imediatamente após enviar uma mensagem ou enfrenta problemas de rede ou do sistema, pode deixar de registrar erroneamente que a mensagem foi entregue e pode enviar a mesma mensagem ao sistema duas vezes.If a publisher fails immediately after sending a message, or experiences network or system issues, it may erroneously fail to record that the message was delivered, and may send the same message to the system twice. O Barramento de Serviço pode lidar com esse problema habilitando a detecção de duplicatas.Service Bus can handle this issue by enabling duplicate detection. Para saber mais, confira Detecção de duplicatas.For more information, see Duplicate detection.

Tratar exceções .Handle exceptions . As APIs de mensagens geram exceções quando ocorre um erro de usuário, um erro de configuração ou outro erro.Messaging APIs generate exceptions when a user error, configuration error, or other error occurs. O código do cliente (remetentes e receptores) deve tratar essas exceções em seu código.The client code (senders and receivers) should handle these exceptions in their code. Isso é especialmente importante no processamento em lotes, em que o tratamento de exceção pode ser usado para evitar a perda de um lote inteiro de mensagens.This is especially important in batch processing, where exception handling can be used to avoid losing an entire batch of messages. Para saber mais, veja Exceções de mensagens do Barramento de Serviço.For more information, see Service Bus messaging exceptions.

Política de repetição .Retry policy . O Barramento de Serviço permite que você escolha a melhor política de repetição para os aplicativos.Service Bus allows you to pick the best retry policy for your applications. A política padrão é permitir no máximo nove tentativas de repetição e aguardar 30 segundos, mas isso pode ser ajustado.The default policy is to allow 9 maximum retry attempts, and wait for 30 seconds but this can be further adjusted. Para saber mais, confira Política de repetição – Barramento de Serviço.For more information, see Retry policy – Service Bus.

Use uma fila de mensagens mortas .Use a dead-letter queue . Se uma mensagem não pode ser processada ou entregue a nenhum receptor após várias tentativas, é movida para uma fila de mensagens mortas.If a message cannot be processed or delivered to any receiver after multiple retries, it is moved to a dead letter queue. Implemente um processo para ler mensagens da fila de mensagens mortas, inspecioná-las e corrigir o problema.Implement a process to read messages from the dead letter queue, inspect them, and remediate the problem. Dependendo do cenário, você pode repetir a mensagem como está, fazer alterações e tentar novamente ou descartar a mensagem.Depending on the scenario, you might retry the message as-is, make changes and retry, or discard the message. Para saber mais, confira Visão geral das filas de mensagens mortas do Barramento de Serviço.For more information, see Overview of Service Bus dead-letter queues.

Usar a recuperação de desastre em área geográfica .Use Geo-Disaster Recovery . A recuperação de desastre em área geográfica garante que o processamento de dados continue a operar em uma região ou datacenter diferente, se uma região inteira do Azure ou o datacenter se tornar indisponível devido a um desastre.Geo-disaster recovery ensures that data processing continues to operate in a different region or datacenter if an entire Azure region or datacenter becomes unavailable due to a disaster. Para mais informações consulte Recuperação de desastre em área geográfica do Barramento de Serviço do Azure.For more information, see Azure Service Bus Geo-disaster recovery.

ArmazenamentoStorage

Para dados de aplicativo, use RA-GRS (armazenamento com redundância geográfica com acesso de leitura).For application data, use read-access geo-redundant storage (RA-GRS). O armazenamento de RA-GRS replica os dados para uma região secundária e fornece acesso somente leitura da região secundária.RA-GRS storage replicates the data to a secondary region, and provides read-only access from the secondary region. Se há uma interrupção de armazenamento na região primária, o aplicativo pode ler os dados da região secundária.If there is a storage outage in the primary region, the application can read the data from the secondary region. Para obter mais informações, consulte Replicação do Armazenamento do Azure.For more information, see Azure Storage replication.

Para discos de VM, use Managed disks.For VM disks, use managed disks. Os discos gerenciados fornecem melhor confiabilidade para VMs em um conjunto de disponibilidade, porque os discos estão suficientemente isolados uns dos outros para evitar pontos únicos de falha.Managed disks provide better reliability for VMs in an availability set, because the disks are sufficiently isolated from each other to avoid single points of failure. Além disso, os discos gerenciados não estão sujeitos aos limites de IOPS de VHDs criados em uma conta de armazenamento.Also, managed disks aren't subject to the IOPS limits of VHDs created in a storage account. Para saber mais, confira Gerenciar a disponibilidade de máquinas virtuais Windows no Azure.For more information, see Manage the availability of Windows virtual machines in Azure.

Para o Armazenamento de Filas, crie uma fila de backup em outra região.For Queue storage, create a backup queue in another region. Para o armazenamento de fila, a utilidade de uma réplica somente leitura é limitada, porque não é possível enfileirar itens nem removê-los da fila.For Queue storage, a read-only replica has limited use, because you can't queue or dequeue items. Em vez disso, crie uma fila de backup em uma conta de armazenamento em outra região.Instead, create a backup queue in a storage account in another region. Se houver uma interrupção de armazenamento, o aplicativo poderá usar a fila de backup até que a região primária fique disponível novamente.If there is a storage outage, the application can use the backup queue, until the primary region becomes available again. Dessa forma, o aplicativo ainda poderá processar novas solicitações.That way, the application can still process new requests.

Banco de Dados SQLSQL Database

Use a camada Standard ou Premium.Use Standard or Premium tier. Essas camadas fornecem um período de Recuperação Pontual mais longo (35 dias).These tiers provide a longer point-in-time restore period (35 days). Para obter mais informações, consulte Opções e desempenho de Banco de Dados SQL.For more information, see SQL Database options and performance.

Habilite a auditoria do banco de dados SQL.Enable SQL Database auditing. A auditoria pode ser usada para diagnosticar erros humanos ou ataques mal-intencionados.Auditing can be used to diagnose malicious attacks or human error. Para saber mais, confira Introdução à Auditoria do Banco de Dados SQL.For more information, see Get started with SQL database auditing.

Use a Replicação Geográfica Ativa . Use a replicação geográfica ativa para criar uma réplica secundária legível em uma região diferente.Use Active Geo-Replication Use Active Geo-Replication to create a readable secondary in a different region. Se o seu banco de dados primário falhar ou simplesmente precisar ser colocado offline, faça um failover manual para qualquer o banco de dados secundário.If your primary database fails, or simply needs to be taken offline, perform a manual failover to the secondary database. O banco de dados secundário permanece somente leitura até você fazer o failover.Until you fail over, the secondary database remains read-only. Para saber mais, confira Replicação Geográfica Ativa para o Banco de Dados SQL.For more information, see SQL Database Active Geo-Replication.

Use fragmentação.Use sharding. Considere o uso de fragmentação para particionar o banco de dados horizontalmente.Consider using sharding to partition the database horizontally. A fragmentação pode proporcionar o isolamento de falhas.Sharding can provide fault isolation. Para saber mais, confira Expansão com o Banco de Dados SQL do Azure.For more information, see Scaling out with Azure SQL Database.

Use a Recuperação Pontual para se recuperar de erro humano.Use point-in-time restore to recover from human error. A Recuperação Pontual retorna seu banco de dados para um ponto anterior no tempo.Point-in-time restore returns your database to an earlier point in time. Para obter mais informações, consulte Recuperar um Banco de Dados SQL do Azure usando backups de banco de dados automatizados.For more information, see Recover an Azure SQL database using automated database backups.

Use a restauração geográfica para recuperar-se de uma interrupção de serviço.Use geo-restore to recover from a service outage. A restauração geográfica restaura um banco de dados de um backup com redundância geográfica.Geo-restore restores a database from a geo-redundant backup. Para obter mais informações, consulte Recuperar um Banco de Dados SQL do Azure usando backups de banco de dados automatizados.For more information, see Recover an Azure SQL database using automated database backups.

Azure Synapse AnalyticsAzure Synapse Analytics

Não desabilite o backup geográfico.Do not disable geo-backup. Por padrão, o Synapse Analytics faz um backup completo de seus dados a cada 24 horas para recuperação de desastres.By default, Synapse Analytics takes a full backup of your data every 24 hours for disaster recovery. Não é recomendável desativar esse recurso.It is not recommended to turn this feature off. Para obter mais informações, veja Backups geográficos.For more information, see Geo-backups.

SQL Server em execução em uma VMSQL Server running in a VM

Replicar o banco de dados.Replicate the database. Use SQL Server grupos de disponibilidade Always On para replicar o banco de dados.Use SQL Server Always On availability groups to replicate the database. Fornece alta disponibilidade se uma instância do SQL Server falha.Provides high availability if one SQL Server instance fails. Para obter mais informações, consulte Executar VMs do Windows para um aplicativo de N camadasFor more information, see Run Windows VMs for an N-tier application

Fazer backup do banco de dados .Back up the database . Se você já estiver usando Backup do Azure para fazer backup de suas VMs, considere usar o Backup do Azure para cargas de trabalho do SQL Server usando o DPM.If you are already using Azure Backup to back up your VMs, consider using Azure Backup for SQL Server workloads using DPM. Com essa abordagem, há uma função de administrador de backup para a organização e um procedimento de recuperação unificado para as VMs e o SQL Server.With this approach, there is one backup administrator role for the organization and a unified recovery procedure for VMs and SQL Server. Caso contrário, use o Backup gerenciado pelo SQL Server para o Microsoft Azure.Otherwise, use SQL Server Managed Backup to Microsoft Azure.

Gerenciador de TráfegoTraffic Manager

Faça o failback manual.Perform manual failback. Após um failover do Gerenciador de Tráfego, faça o failback manual em vez de automaticamente.After a Traffic Manager failover, perform manual failback, rather than automatically failing back. Verifique se todos os subsistemas de aplicativo estão íntegros antes de fazer o failback.Before failing back, verify that all application subsystems are healthy. Caso contrário, você pode criar uma situação em que o aplicativo é alternado entre data centers.Otherwise, you can create a situation where the application flips back and forth between datacenters. Para obter mais informações, consulte Executar VMs em várias regiões para ter alta disponibilidade.For more information, see Run VMs in multiple regions for high availability.

Criar um ponto de extremidade de investigação de integridade.Create a health probe endpoint. Crie um ponto de extremidade personalizado que relata a integridade geral do aplicativo.Create a custom endpoint that reports on the overall health of the application. Isso permite que o Gerenciador de Tráfego faça failover se qualquer caminho crítico falha, não apenas o front-end.This enables Traffic Manager to fail over if any critical path fails, not just the front end. O ponto de extremidade deve retornar um código de erro HTTP se qualquer dependência crítica está não íntegra ou inacessível.The endpoint should return an HTTP error code if any critical dependency is unhealthy or unreachable. No entanto, não relate erros para serviços não críticos.Don't report errors for non-critical services, however. Caso contrário, a investigação de integridade poderá disparar o failover quando ele não for necessário, criando falsos positivos.Otherwise, the health probe might trigger failover when it's not needed, creating false positives. Para obter mais informações, consulte Monitoramento e failover do ponto de extremidade do Gerenciador de Tráfego.For more information, see Traffic Manager endpoint monitoring and failover.

Máquinas VirtuaisVirtual Machines

Evite executar uma carga de trabalho de produção em uma única VM.Avoid running a production workload on a single VM. Uma única implantação de VM não é resiliente para manutenção (planejada ou não).A single VM deployment is not resilient to planned or unplanned maintenance. Em vez disso, coloque várias VMs em um conjunto de disponibilidade ou conjunto de dimensionamento de máquinas virtuais, com um balanceador de carga na frente.Instead, put multiple VMs in an availability set or virtual machine scale set, with a load balancer in front.

Especifique um conjunto de disponibilidade ao provisionar a VM.Specify an availability set when you provision the VM. Atualmente, não há nenhuma maneira de adicionar uma VM a um conjunto de disponibilidade depois que a VM é provisionada.Currently, there is no way to add a VM to an availability set after the VM is provisioned. Quando você adiciona uma nova VM a um conjunto de disponibilidade existente, verifique se você criou um adaptador de rede para a VM e adicione o adaptador de rede ao pool de endereços de back-end no balanceador de carga.When you add a new VM to an existing availability set, make sure to create a NIC for the VM, and add the NIC to the back-end address pool on the load balancer. Caso contrário, o balanceador de carga não roteará o tráfego de rede para essa VM.Otherwise, the load balancer won't route network traffic to that VM.

Coloque cada camada de aplicativo em um conjunto de disponibilidade separado.Put each application tier into a separate Availability Set. Em um aplicativo de N camadas, não coloque as VMs de camadas diferentes no mesmo conjunto de disponibilidade.In an N-tier application, don't put VMs from different tiers into the same availability set. VMs em um conjunto de disponibilidade são colocadas em FDs (domínios de falha) e UDs (domínios de atualização).VMs in an availability set are placed across fault domains (FDs) and update domains (UD). No entanto, para obter o benefício de redundância de FDs e UDs, todas as VMs no conjunto de disponibilidade devem ser capazes de lidar com as mesmas solicitações de cliente.However, to get the redundancy benefit of FDs and UDs, every VM in the availability set must be able to handle the same client requests.

Replique VMs usando o Azure Site Recovery.Replicate VMs using Azure Site Recovery. Quando você replicar VMs do Azure usando a Recuperação de Site, todos os discos de VM serão replicados continuamente para a região de destino assincronamente.When you replicate Azure VMs using Site Recovery, all the VM disks are continuously replicated to the target region asynchronously. Os pontos de replicação são criados a cada poucos minutos.The recovery points are created every few minutes. Isso fornece um RPO (Objetivo de Ponto de Recuperação) na ordem de minutos.This gives you a Recovery Point Objective (RPO) in the order of minutes. Você pode conduzir as análises de recuperação de desastre quantas vezes desejar, sem afetar o aplicativo de produção ou a replicação em andamento.You can conduct disaster recovery drills as many times as you want, without affecting the production application or the ongoing replication. Para saber mais, confira Realizar uma análise detalhada da recuperação de desastre para o Azure.For more information, see Run a disaster recovery drill to Azure.

Escolha o tamanho de VM correto com base nos requisitos de desempenho.Choose the right VM size based on performance requirements. Ao mover uma carga de trabalho existente para o Azure, comece com o tamanho da VM que mais se aproxima de seus servidores locais.When moving an existing workload to Azure, start with the VM size that's the closest match to your on-premises servers. Em seguida, meça o desempenho da carga de trabalho real com relação à CPU, memória e IOPS e ajuste o tamanho, se necessário.Then measure the performance of your actual workload with respect to CPU, memory, and disk IOPS, and adjust the size if needed. Isso ajuda a garantir que o aplicativo se comporte como esperado em um ambiente de nuvem.This helps to ensure the application behaves as expected in a cloud environment. Além disso, se você precisar de várias NICs, esteja ciente do limite de NIC para cada tamanho.Also, if you need multiple NICs, be aware of the NIC limit for each size.

Use discos gerenciados para VHDs.Use managed disks for VHDs. Os discos gerenciados fornecem melhor confiabilidade para VMs em um conjunto de disponibilidade, porque os discos estão suficientemente isolados uns dos outros para evitar pontos únicos de falha.Managed disks provide better reliability for VMs in an availability set, because the disks are sufficiently isolated from each other to avoid single points of failure. Além disso, os discos gerenciados não estão sujeitos aos limites de IOPS de VHDs criados em uma conta de armazenamento.Also, managed disks aren't subject to the IOPS limits of VHDs created in a storage account. Para saber mais, confira Gerenciar a disponibilidade de máquinas virtuais Windows no Azure.For more information, see Manage the availability of Windows virtual machines in Azure.

Instale aplicativos em um disco de dados, não no disco de SO.Install applications on a data disk, not the OS disk. Caso contrário, você poderá atingir o limite de tamanho do disco.Otherwise, you may reach the disk size limit.

Use o Backup do Azure para fazer backup de VMs.Use Azure Backup to back up VMs. Os backups protegem contra perda de dados acidental.Backups protect against accidental data loss. Para obter mais informações, consulte proteger VMs do Azure com um cofre dos serviços de recuperação.For more information, see Protect Azure VMs with a Recovery Services vault.

Habilite os logs de diagnóstico.Enable diagnostic logs. Inclua métricas de integridade básicas, logs de infraestrutura e diagnóstico de inicialização.Include basic health metrics, infrastructure logs, and boot diagnostics. O diagnóstico de inicialização poderá ajudar a diagnosticar uma falha de inicialização se sua VM entrar em um estado não inicializável.Boot diagnostics can help you diagnose a boot failure if your VM gets into a nonbootable state. Para obter mais informações, consulte Visão Geral dos Logs de Diagnóstico do Azure.For more information, see Overview of Azure Diagnostic Logs.

Configurar Azure Monitor.Configure Azure Monitor. Coletar e analisar dados de monitoramento de máquinas virtuais do Azure, incluindo o sistema operacional convidado e as cargas de trabalho que são executadas nele, consulte Azure monitor e início rápido: Azure monitor.Collect and analyze monitoring data from Azure virtual machines including the guest operating system and the workloads that run in it, see Azure Monitor and Quickstart: Azure Monitor.

Rede VirtualVirtual Network

Para permitir ou bloquear endereços IP públicos, adicione um grupo de segurança de rede à sub-rede.To allow or block public IP addresses, add a network security group to the subnet. Bloqueie o acesso de usuários mal-intencionados ou permita o acesso somente de usuários que têm o privilégio de acessar o aplicativo.Block access from malicious users, or allow access only from users who have privilege to access the application.

Crie uma investigação de integridade personalizada.Create a custom health probe. As investigações de integridade do balanceador de carga podem testar HTTP ou TCP.Load Balancer Health Probes can test either HTTP or TCP. Se uma VM for executada em um servidor HTTP, a investigação HTTP será um melhor indicador do status de integridade do que uma investigação TCP.If a VM runs an HTTP server, the HTTP probe is a better indicator of health status than a TCP probe. Para uma investigação HTTP, use um ponto de extremidade personalizado que relata a integridade geral do aplicativo, incluindo todas as dependências críticas.For an HTTP probe, use a custom endpoint that reports the overall health of the application, including all critical dependencies. Para obter mais informações, veja Visão geral do Azure Load Balancer.For more information, see Azure Load Balancer overview.

Não bloqueie a investigação de integridade.Don't block the health probe. A investigação de integridade do balanceador de carga é enviada de um endereço IP conhecido, 168.63.129.16.The Load Balancer Health probe is sent from a known IP address, 168.63.129.16. Não bloqueie o tráfego de ou para esse IP em nenhuma política de firewall ou em regras de grupo de segurança de rede.Don't block traffic to or from this IP in any firewall policies or network security group rules. Bloquear a investigação de integridade faria com que o balanceador de carga remova a VM da rotação.Blocking the health probe would cause the load balancer to remove the VM from rotation.

Habilite o registro em log do balanceador de carga.Enable Load Balancer logging. Os logs de mostram quantas muitas VMs no back-end não estão recebendo o tráfego de rede devido a respostas de investigação com falha.The logs show how many VMs on the back-end are not receiving network traffic due to failed probe responses. Para obter mais informações, consulte Log Analytics para o Azure Load Balancer.For more information, see Log analytics for Azure Load Balancer.