Visão geral do pilar de confiabilidade

A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Incorporar resiliência na arquitetura de sua estrutura do aplicativo garante que suas cargas de trabalho fiquem disponíveis e possam se recuperar de falhas em qualquer escala.

A compilação em prol da confiabilidade inclui:

  • Garantir uma arquitetura altamente disponível
  • Recuperar-se de falhas, como perda de dados, tempo de inatividade prolongado ou incidentes de ransomware

Para avaliar a confiabilidade de sua carga de trabalho usando os princípios encontrados na Microsoft Azure Well-Architected Framework, confira a Revisão da Microsoft Azure Well-Architected.

Para obter mais informações, explore o vídeo a seguir sobre o aprofundamento da confiabilidade da carga de trabalho do Azure:


No desenvolvimento de aplicativos tradicionais, o foco era em como aumentar o MTBF (tempo médio entre falhas). Era feito um esforço para impedir que o sistema falhasse. Na computação em nuvem, uma mentalidade diferente é necessária devido a vários fatores:

  • Sistemas distribuídos são complexos e uma falha em um ponto potencialmente pode se disseminar em cascata por todo o sistema.
  • Os custos dos ambientes em nuvem são mantidos baixos com hardwares de mercadoria, portanto falhas ocasionais de hardware devem ser esperadas.
  • Aplicativos geralmente dependem de serviços externos, que podem ficar temporariamente indisponíveis ou limitar usuários de alto volume.
  • Os usuários atuais esperam que um aplicativo esteja disponível 24/7 sem nunca ficar offline.

Todos esses fatores significam que os aplicativos de nuvem devem ser criados para esperar falhas ocasionais e recuperarem-se delas. O Azure tem muitos recursos de resiliência já incorporados à plataforma. Por exemplo:

  • O Armazenamento do Microsoft Azure, o Banco de Dados SQL e o Cosmos DB oferecem replicação de dados interna entre zonas de disponibilidade e regiões.
  • Os Azure Managed Disks são colocados automaticamente em unidades de escala de armazenamento diferentes para limitar os efeitos das falhas de hardware.
  • As VMs (máquinas virtuais) em um conjunto de disponibilidade são distribuídas entre vários domínios de falha. Um domínio de falha é um grupo de VMs que compartilham uma mesma fonte de energia e um mesmo comutador de rede. Distribuir as VMs entre domínios de falha limita o impacto de falhas de hardware, indisponibilidades da rede ou interrupções de energia.
  • Zonas de disponibilidade são locais fisicamente separados dentro de uma região do Azure. Cada zona é composta por um ou mais datacenters equipados com energia, resfriamento e infraestrutura de rede independentes. Com as zonas de disponibilidade, é possível projetar e operar aplicativos e bancos de dados que fazem a transição entre as zonas automaticamente, sem interrupção, o que garante a resiliência caso uma zona seja afetada. Para obter mais informações, confira Regiões e Zonas de Disponibilidade no Azure.

Dito isso, você ainda precisa criar resiliência em seu aplicativo. Estratégias de resiliência podem ser aplicadas em todos os níveis da arquitetura. Algumas mitigações de risco têm natureza mais tática – por exemplo, repetir uma chamada remota após uma falha transitória de rede. Outras mitigações de risco são mais estratégicas, como fazer failover de todo o aplicativo para uma região secundária. Táticas de mitigação de risco podem fazer uma grande diferença. Embora seja raro que toda uma região sofra uma interrupção, problemas transitórios, como o congestionamento de rede, são mais comuns – sendo assim, foque nesses problemas primeiro. Também é importante ter o monitoramento e o diagnóstico certos, tanto para detectar falhas quando elas ocorrem quanto para localizar a causa raiz.

Ao criar um aplicativo para ser resiliente, você deve entender seus requisitos de disponibilidade. Quanto tempo de inatividade é aceitável? A quantidade de tempo de inatividade é determinada, parcialmente, pelo custo. Quanto o tempo de inatividade em potencial custará para sua empresa? Quanto você deve investir para tornar o aplicativo altamente disponível?

Tópicos e melhores práticas

O pilar da confiabilidade aborda os seguintes tópicos e melhores práticas para ajudar você a criar uma carga de trabalho resiliente:

Tópico de confiabilidade Descrição
Princípios de confiabilidade Esses princípios críticos são usados como lentes para avaliar a confiabilidade de um aplicativo implantado no Azure.
Design em prol da confiabilidade Considere como os sistemas usam Zonas de Disponibilidade, executam a escalabilidade, respondem a falhas e outras estratégias que otimizam a confiabilidade no design do aplicativo.
Lista de verificação de resiliência para serviços específicos do Azure Cada tecnologia tem seus próprios modos de falha específicos, o que você deve considerar ao projetar e implementar seu aplicativo. Use esta lista de verificação para revisar as considerações de resiliência para serviços específicos do Azure.
Metas e requisitos não funcionais Requisitos de destino e não funcionais, como metas de disponibilidade e metas de recuperação, permitem medir o tempo de atividade e o tempo de inatividade das suas cargas de trabalho. Ter metas claramente definidas é crucial para trabalhar com elas e fazer medições.
Resiliência e dependências A incorporação da recuperação de falhas ao sistema deve fazer parte das fases de arquitetura e design desde o início para evitar riscos de falha. As dependências são necessárias para que o aplicativo opere totalmente.
Zonas de Disponibilidade As Zonas de Disponibilidade podem ser usadas para distribuir uma solução em várias zonas dentro de uma região, permitindo que um aplicativo continue funcionando quando uma zona falhar.
Disponibilidade de serviços A disponibilidade de serviços em regiões do Azure depende do tipo de uma região. A política geral do Azure de implantação de serviços em qualquer região específica é controlada principalmente por tipo de região, categorias de serviço e demanda do cliente.
Terminologia da zona de disponibilidade Para entender melhor as regiões e as zonas de disponibilidade do Azure, é útil entender os principais termos ou conceitos.
Práticas recomendadas 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.
Testes de confiabilidade Testes regulares devem ser executados como parte de cada alteração principal para validar os limites, os destinos e as suposições existentes.
Monitorando a confiabilidade Tenha uma visão geral da integridade do aplicativo. Se algo falhar, você precisa saber que falhou, quando falhou e por quê.
Padrões de confiabilidade Os aplicativos devem ser projetados e implementados para maximizar a disponibilidade.

Próxima etapa