Compartilhar via


Confiabilidade nas Máquinas Virtuais do Azure

As Máquinas Virtuais do Azure fornecem recursos de computação escalonáveis sob demanda. Como um serviço de infraestrutura fundamental, ele foi projetado para fornecer confiabilidade e disponibilidade de nível empresarial para cargas de trabalho críticas.

Quando você usa o Azure, a confiabilidade é uma responsabilidade compartilhada. A Microsoft fornece uma variedade de recursos para dar suporte à resiliência e recuperação. Você é responsável por entender como esses recursos funcionam em todos os serviços que você usa e selecionar os recursos necessários para atender aos seus objetivos de negócios e metas de tempo de atividade.

Este artigo descreve como tornar as Máquinas Virtuais resilientes a uma variedade de possíveis interrupções e problemas, incluindo falhas transitórias, interrupções de zona de disponibilidade, interrupções na região e manutenção do serviço. Ele também descreve como você pode usar backups para se recuperar de outros tipos de problemas e realça algumas informações importantes sobre o SLA (contrato de nível de serviço) de Máquinas Virtuais.

Importante

Ao considerar a confiabilidade de uma VM (máquina virtual), você também precisa considerar a confiabilidade de seus discos, infraestrutura de rede e aplicativos executados em suas VMs. Melhorar a resiliência da VM por si só poderá ter impacto limitado se os outros componentes não forem igualmente resilientes. Dependendo dos requisitos de resiliência, talvez seja necessário fazer alterações de configuração em várias áreas.

Recomendações de implantação de produção

Para obter mais informações sobre como implantar VMs para dar suporte aos requisitos de confiabilidade da solução e como a confiabilidade afeta outros aspectos de sua arquitetura, consulte as práticas recomendadas de arquitetura para máquinas virtuais e conjuntos de dimensionamento no Azure Well-Architected Framework.

Visão geral da arquitetura de confiabilidade

As VMs são a unidade de computação fundamental no Azure, seja você provisionar as VMs por conta própria ou usar outros serviços de computação do Azure que provisionam e gerenciam de forma transparente para você.

Uma VM individual também é conhecida como uma VM de instância única. Ele é executado em um host específico, que é um servidor físico. A maioria das VMs compartilha seu host com outras VMs.

Ao criar suas VMs, você pode influenciar onde elas são executadas na infraestrutura subjacente. Normalmente, você toma decisões de posicionamento com base em seus requisitos de confiabilidade, latência e isolamento. O Azure fornece várias opções de configuração que afetam a forma como suas VMs são colocadas.

  • Região: Você pode selecionar em qual região do Azure sua VM deve ser executada. Uma região é uma área geográfica que pode conter vários datacenters, cada um com um grande número de hosts.

  • Zona de disponibilidade:as zonas de disponibilidade são grupos fisicamente separados de datacenters em cada região do Azure. Em regiões que dão suporte a zonas de disponibilidade, você pode selecionar em qual zona a VM é executada. Para obter mais informações, consulte Resiliência a falhas de zona de disponibilidade.

  • Conjuntos de disponibilidade: Um conjunto de disponibilidade é um agrupamento lógico de VMs que permite ao Azure entender como seu aplicativo é criado para fornecer redundância e disponibilidade.

    Quando você usa conjuntos de disponibilidade, o Azure distribui um grupo de VMs em diferentes domínios de falha. Essa distribuição minimiza o risco de falhas de hardware localizadas agrupando VMs que compartilham uma fonte de energia e um alternador de rede comuns.

    Os conjuntos de disponibilidade também podem colocar diferentes VMs em diferentes domínios de atualização, que controla como a plataforma do Azure distribui atualizações de plataforma. Usando domínios de atualização, você pode garantir que apenas um subconjunto de suas VMs seja reiniciado para atualizações ao mesmo tempo.

  • Grupos de posicionamento por proximidade: Para cargas de trabalho que precisam obter a menor latência possível entre VMs, você pode usar um grupo de posicionamento por proximidade para garantir que o Azure coloque as VMs fisicamente próximas umas das outras. No entanto, o posicionamento por proximidade significa que uma interrupção do datacenter pode afetar todas as VMs no grupo. Para obter alta confiabilidade, talvez seja necessário provisionar vários grupos de posicionamento por proximidade em diferentes zonas de disponibilidade.

  • Hosts dedicados: Você pode usar o Host Dedicado do Azure para provisionar seu próprio servidor físico que executa uma ou mais VMs, como para requisitos de conformidade rigorosos. No entanto, quando você provisiona um host dedicado, uma interrupção em seu datacenter pode afetar todas as VMs nesse host. Para obter alta confiabilidade, talvez seja necessário provisionar vários hosts dedicados em diferentes zonas de disponibilidade.

Se você criar um conjunto de VMs que executam funções semelhantes, considere usar conjuntos de dimensionamento de máquinas virtuais do Azure para criar e gerenciar as VMs como um grupo. Os conjuntos de dimensionamento também fornecem mais opções de confiabilidade, como a disseminação das VMs em várias zonas de disponibilidade.

Para obter mais informações sobre a disponibilidade para VMs, consulte as opções de disponibilidade para Máquinas Virtuais.

Resiliência a falhas transitórias

Falhas transitórias são falhas curtas e intermitentes nos componentes. Elas ocorrem com frequência em um ambiente distribuído, como a nuvem, e são uma parte normal das operações. Falhas transitórias se corrigem após um curto período de tempo. É importante que seus aplicativos possam lidar com falhas transitórias, geralmente repetindo solicitações afetadas.

Todos os aplicativos hospedados na nuvem devem seguir as diretrizes transitórias de tratamento de falhas do Azure quando eles se comunicam com qualquer APIs, bancos de dados e outros componentes hospedados na nuvem. Para obter mais informações, confira Recomendações para tratamento de falhas transitórias.

Os aplicativos executados em suas VMs devem implementar estratégias apropriadas de tratamento de falhas para garantir que quaisquer interrupções temporárias no serviço não afetem sua carga de trabalho.

Resiliência a falhas de zona de disponibilidade

As zonas de disponibilidade são grupos fisicamente separados de datacenters em uma região do Azure. Quando uma zona falha, os serviços podem fazer o failover de uma das zonas restantes.

Uma VM individual pode ser implantada em uma configuração zonal , o que significa que ela está fixada em uma única zona de disponibilidade selecionada. Por si só, uma VM zonal não é resiliente a interrupções de zona. No entanto, você pode criar várias VMs e colocá-las em zonas de disponibilidade diferentes e, em seguida, espalhar seus aplicativos e dados entre as instâncias da VM. Como alternativa, você pode usar conjuntos de dimensionamento de máquinas virtuais para implantar um conjunto de VMs em várias zonas de disponibilidade.

Se você não configurar uma VM para ser zonal, ela será considerada nonzonal ou regional. As VMs nonzonas podem ser colocadas em qualquer zona de disponibilidade dentro da região. Se qualquer zona de disponibilidade na região sofrer uma interrupção, as VMs não zonais poderão estar na zona impactada e podem experienciar um período de indisponibilidade.

Suporte de regiões

As VMs zonais podem ser implantadas em qualquer região que dê suporte a zonas de disponibilidade.

No entanto, alguns tipos e tamanhos de VM só estão disponíveis em regiões específicas ou zonas específicas dentro de uma região. Para verificar quais regiões e zonas dão suporte aos tipos de VM necessários, use os seguintes recursos:

Custo

Não há diferença de custo entre uma VM zonal e nonzonal.

Configurar o suporte à zona de disponibilidade

Esta seção explica como configurar o suporte à zona de disponibilidade para sua instância de VM.

Observação

Quando você seleciona quais zonas de disponibilidade usar, na verdade está selecionando a zona de disponibilidade lógica. Se você implantar outros componentes de carga de trabalho em uma assinatura diferente do Azure, eles podem usar um número de zona de disponibilidade lógica diferente para acessar a mesma zona de disponibilidade física. Para obter mais informações, confira Zonas de disponibilidade físicas e lógicas.

Comportamento quando todas as zonas estão saudáveis

Esta seção descreve o que esperar quando as instâncias de VM são configuradas com suporte à zona de disponibilidade e todas as zonas de disponibilidade estão operacionais.

  • Roteamento de tráfego entre zonas: Você é responsável por rotear o tráfego entre VMs, incluindo VMs que estão em zonas de disponibilidade diferentes. As abordagens comuns incluem o Azure Load Balancer e o Gateway de Aplicativo do Azure. Para obter mais informações, consulte opções de balanceamento de carga.

  • Replicação de dados entre zonas: Você é responsável por qualquer replicação de dados que precise ocorrer entre VMs, inclusive em VMs em diferentes zonas de disponibilidade. Bancos de dados e outros aplicativos com estado semelhantes que são executados em VMs geralmente fornecem recursos para replicar dados.

Comportamento durante uma falha de zona

Esta seção descreve o que esperar quando as instâncias de VM são configuradas com suporte à zona de disponibilidade e há uma interrupção em suas zonas de disponibilidade.

  • Detecção e resposta: Você é responsável por detectar e responder a falhas de zona que afetam suas VMs.

  • Notificação: Use o Azure Resource Health para detectar falhas de zona e disparar processos de failover.

  • Solicitações ativas: Qualquer solicitação ativa ou outro trabalho que ocorra na VM durante a falha de zona provavelmente será encerrado.

  • Perda de dados esperada: Os discos de VM zonal podem ficar indisponíveis durante uma falha de zona.

    Se você usar discos ZRS (armazenamento com redundância de zona) e uma interrupção afetar sua VM, você poderá forçar a desanexação dos discos ZRS da VM com falha. Essa abordagem permite que você anexe os discos ZRS a outra VM.

  • Tempo de inatividade esperado: As VMs permanecem inoperantes até que a zona de disponibilidade se recupere.

  • Redirecionamento de tráfego: Você é responsável por redirecionar o tráfego para outras VMs em zonas íntegras.

    Se você configurar um balanceador de carga resiliente à zona e ele executar verificações de integridade, o balanceador de carga normalmente detectará VMs com falha e poderá rotear o tráfego para outras instâncias de VM em zonas íntegras.

Recuperação de zona

Depois que a zona estiver íntegra, as VMs na zona serão reiniciadas. Você é responsável por todos os procedimentos de recuperação de zona e sincronização de dados que suas cargas de trabalho exigem.

Testar falhas em zonas

Você pode usar o Azure Chaos Studio para simular a perda de uma VM como parte de um experimento. O Chaos Studio fornece falhas internas para VMs, incluindo a capacidade de desligar uma VM. Você pode usar esses recursos para simular falhas no nível da zona e testar seus processos de failover.

Soluções de várias zonas personalizadas para resiliência

Ao implantar várias VMs em zonas diferentes, você é responsável por configurar e gerenciar processos de replicação, balanceamento de carga, failover e failback.

Alguns aplicativos fornecem recursos internos que podem ajudar ao implantar em várias VMs. Por exemplo, o SQL Server em VMs do Azure fornece um conjunto de recursos para simplificar seus processos de configuração e gerenciamento em zonas de disponibilidade.

Considere usar Azure Site Recovery recuperação de desastre entre zonas (DR) quando o aplicativo é executado em uma única zona de disponibilidade por vez e não há necessidade de failover quase instantâneo entre zonas. A DR zona a zona tem algumas limitações importantes, portanto, examine seus requisitos minuciosamente.

Resiliência a falhas em toda a região

As VMs são recursos de região única. Se a região ficar indisponível, sua VM também ficará indisponível.

Soluções personalizadas de várias regiões para resiliência

Você pode implantar várias VMs em regiões diferentes, mas precisa implementar processos de replicação, balanceamento de carga e failover.

O Site Recovery é um serviço que habilita a recuperação de desastre replicando VMs e seus dados em uma região secundária. Você pode selecionar quase qualquer região do Azure como região secundária, incluindo combinações de regiões não emparelhadas. Para obter mais informações, confira a arquitetura de DR de Azure para Azure.

Alguns aplicativos criam clusters ou outros constructos para replicar dados e distribuir o trabalho em várias VMs, inclusive em regiões diferentes. Esses aplicativos podem simplificar a configuração de uma solução de várias regiões.

Para obter uma arquitetura de exemplo que ilustra o uso de VMs em várias regiões, consulte o balanceamento de carga de várias regiões com o Gerenciador de Tráfego do Azure, o Firewall do Azure e o Gateway de Aplicativo.

Resiliência à manutenção do serviço

O Azure executa manutenção periódica regular em VMs para garantir a confiabilidade. Há várias maneiras de garantir que suas cargas de trabalho permaneçam operacionais durante as atividades de manutenção:

  • Ao usar conjuntos de disponibilidade ou conjuntos de dimensionamento de máquinas virtuais, você pode configurar domínios de atualização. Os domínios de atualização ajudam a distribuir atividades de manutenção em diferentes VMs em momentos diferentes, para que suas VMs não reiniciem simultaneamente.

  • Você pode personalizar o tempo em que a manutenção é aplicada às suas VMs usando o controle de manutenção. Você pode usar configurações de manutenção para agendá-la em um momento adequado à sua carga de trabalho.

  • Você pode receber notificações de atividades de manutenção futuras.

Para obter mais informações, consulte Atualizações de convidado e visão geral da manutenção do host.

Backup e restauração

As Máquinas Virtuais dão suporte nativo ao backup por meio do Backup do Azure. O Backup do Azure fornece uma solução nativa para proteger máquinas virtuais criando e gerenciando backups, com proteção consistente com o aplicativo para toda a VM, incluindo todos os discos anexados. Essa abordagem é ideal quando você precisa de backup coordenado de vários discos ou backups com reconhecimento de aplicativo. Para cargas de trabalho de banco de dados, considere soluções de backup específicas do aplicativo que fornecem proteção consistente com transações e opções de recuperação mais rápidas.

Você pode personalizar a frequência de backup, a duração da retenção e a configuração de armazenamento para atender às suas necessidades. Para obter mais informações, consulte o Backup do Azure para VMs.

O backup também dá suporte a discos anexados a VMs. Para obter mais informações, consulte Visão geral do Backup de Disco do Azure.

Contrato de nível de serviço

O acordo de nível de serviço (SLA) dos serviços do Azure descreve a disponibilidade esperada de cada serviço e as condições que sua solução deve atender para alcançar essa expectativa de disponibilidade. Para obter mais informações, consulte SLAs para serviços online.

Para máquinas virtuais, o SLA fornece um nível base de disponibilidade. O percentual de tempo de atividade definido no SLA aumenta quando você tem duas ou mais VMs e você toma as seguintes ações:

  • Configure essas VMs para serem implantadas em duas ou mais zonas de disponibilidade.
  • Configure essas VMs para serem implantadas em um conjunto de disponibilidade.

Para obter mais informações, consulte SLAs para serviços online.

Próximas etapas