Tornar todos os aspetos redundantesMake all things redundant

Integre a redundância na sua aplicação, para evitar ter pontos únicos de falhaBuild redundancy into your application, to avoid having single points of failure

Uma aplicação resiliente contorna as falhas.A resilient application routes around failure. Identifique os caminhos críticos na sua aplicação.Identify the critical paths in your application. Há redundância em cada um dos pontos no caminho?Is there redundancy at each point in the path? Se um subsistema falhar, a aplicação efetuará a ativação pós-falha para outro local?If a subsystem fails, will the application fail over to something else?

RecomendaçõesRecommendations

Considere os requisitos empresariais.Consider business requirements. A quantidade de redundância incorporada num sistema pode afetar o custo e a complexidade.The amount of redundancy built into a system can affect both cost and complexity. A arquitetura deve estar informada dos seus requisitos empresariais, como o objetivo de tempo de recuperação (RTO).Your architecture should be informed by your business requirements, such as recovery time objective (RTO). Por exemplo, uma implementação em várias regiões é mais dispendiosa do que uma implementação numa única região, além de implicar uma gestão mais complexa.For example, a multi-region deployment is more expensive than a single-region deployment, and is more complicated to manage. Irá precisar de procedimentos operacionais para processar a ativação pós-falha e a reativação pós-falha.You will need operational procedures to handle failover and failback. A complexidade e o custo adicionais podem ser justificados para alguns cenários empresariais, mas para outros não.The additional cost and complexity might be justified for some business scenarios and not others.

Coloque VMs atrás de um balanceador de carga.Place VMs behind a load balancer. Não utilize só uma VM para as cargas de trabalho fundamentais.Don't use a single VM for mission-critical workloads. Em vez disso, coloque várias VMs atrás de um balanceador de carga.Instead, place multiple VMs behind a load balancer. Se qualquer uma das VMs ficar indisponível, o balanceador de carga distribui o tráfego pelas restantes VMs em bom estado de funcionamento.If any VM becomes unavailable, the load balancer distributes traffic to the remaining healthy VMs. Para saber como implementar esta configuração, veja Várias VMs para escalabilidade e disponibilidade.To learn how to deploy this configuration, see Multiple VMs for scalability and availability.

Diagrama de VMs com balanceamento de carga

Replique as bases de dados.Replicate databases. A Base de Dados SQL do Azure e o Cosmos DB replicam automaticamente os dados dentro de uma região e pode ativar a georreplicação para várias regiões.Azure SQL Database and Cosmos DB automatically replicate the data within a region, and you can enable geo-replication across regions. Se estiver a utilizar uma solução de base de dados de IaaS, escolha uma que oferece suporte a replicação e ativação pós-falha, tal como grupos de disponibilidade SQL Server Always On.If you are using an IaaS database solution, choose one that supports replication and failover, such as SQL Server Always On availability groups.

Ative a georreplicação.Enable geo-replication. A georreplicação para a Base de Dados SQL do Azure e o Cosmos DB cria réplicas legíveis secundárias dos seus dados numa ou mais regiões secundárias.Geo-replication for Azure SQL Database and Cosmos DB creates secondary readable replicas of your data in one or more secondary regions. Em caso de falha, a base de dados pode efetuar a ativação pós-falha para a região secundária para fins de escrita.In the event of an outage, the database can fail over to the secondary region for writes.

Crie partições para a disponibilidade.Partition for availability. Muitas vezes, a criação de partições de bases de dados é utilizada para melhorar a escalabilidade, mas também pode melhorar a disponibilidade.Database partitioning is often used to improve scalability, but it can also improve availability. Se uma partição ficar inativa, continua a ser possível aceder às outras partições.If one shard goes down, the other shards can still be reached. Uma falha numa partição irá interromper apenas um subconjunto do total de transações.A failure in one shard will only disrupt a subset of the total transactions.

Implemente em várias regiões.Deploy to more than one region. Para obter a maior disponibilidade possível, implemente a aplicação em mais do que uma região.For the highest availability, deploy the application to more than one region. Dessa forma, nos raros casos em que um problema possa afetar uma região inteira, a aplicação pode efetuar a ativação pós-falha para outra região.That way, in the rare case when a problem affects an entire region, the application can fail over to another region. O diagrama seguinte mostra uma aplicação com várias regiões que utiliza o Gestor de Tráfego do Azure para processar a ativação pós-falha.The following diagram shows a multi-region application that uses Azure Traffic Manager to handle failover.

Diagrama da utilização do Gestor de tráfego do Azure para processar a ativação pós-falha

Sincronize a ativação pós-falha do front-end e back-end.Synchronize front and backend failover. Utilize o Gestor de Tráfego do Azure para efetuar a ativação pós-falha do front-end.Use Azure Traffic Manager to fail over the front end. Se o front-end ficar inacessível numa região, o Gestor de Tráfego encaminhará os novos pedidos para a região secundária.If the front end becomes unreachable in one region, Traffic Manager will route new requests to the secondary region. Dependendo da sua solução de base de dados, poderá ter de coordenar a ativação pós-falha na base de dados.Depending on your database solution, you may need to coordinate failing over the database.

Utilize a ativação pós-falha automática por um lado, mas a reativação pós-falha manual por outro.Use automatic failover but manual failback. Utilize o Gestor de Tráfego para a ativação pós-falha automática, mas não o utilize para a reativação pós-falha automática.Use Traffic Manager for automatic failover, but not for automatic failback. A reativação pós-falha automática comporta um risco, que se traduz na possibilidade de mudar para a região primária antes de a região atingir o bom estado de funcionamento pleno.Automatic failback carries a risk that you might switch to the primary region before the region is completely healthy. Em vez disso, verifique se todos os subsistemas da aplicação estão em bom estado de funcionamento antes de efetuar a reativação pós-falha manual.Instead, verify that all application subsystems are healthy before manually failing back. Além disso, dependendo da base de dados, poderá ter de verificar a consistência dos dados antes da reativação pós-falha.Also, depending on the database, you might need to check data consistency before failing back.

Inclua a redundância para o Gestor de Tráfego.Include redundancy for Traffic Manager. O Gestor de Tráfego é um ponto de falha possível.Traffic Manager is a possible failure point. Reveja o SLA do Gestor de Tráfego e determine se a utilização do Gestor de Tráfego sem mais nada cumpre os seus requisitos empresariais de elevada disponibilidade.Review the Traffic Manager SLA, and determine whether using Traffic Manager alone meets your business requirements for high availability. Se não for o caso, pondere adicionar outra solução de gestão de tráfego para fins de reativação pós-falha.If not, consider adding another traffic management solution as a failback. Se o serviço Gestor de Tráfego do Azure falhar, altere os registos CNAME no DNS de modo a apontar para o outro serviço de gestão de tráfego.If the Azure Traffic Manager service fails, change your CNAME records in DNS to point to the other traffic management service.