Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Virtual Machine Scale Sets é um recurso de computação Azure que pode usar para criar e gerir um grupo de instâncias de máquinas virtuais (VM). O número de instâncias de VM pode aumentar ou diminuir automaticamente em resposta à procura ou a um calendário definido. Os conjuntos de escala de máquinas virtuais ajudam a tornar as aplicações altamente disponíveis e resilientes ao distribuir VMs por múltiplas zonas de disponibilidade e domínios de falha.
Quando você usa o Azure, a confiabilidade é uma responsabilidade compartilhada. A Microsoft fornece uma variedade de recursos para oferecer 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 os Conjuntos de Escala de Máquinas Virtuais resilientes a vários potenciais cortes e problemas, incluindo falhas transitórias, interrupções em zonas de disponibilidade, interrupções regionais, reconfiguração de VMs e manutenção de serviços. Descreve também como pode usar backups para recuperar de outros tipos de problemas e destaca informações chave sobre o acordo de nível de serviço (SLA) dos Conjuntos de Escala de Máquinas Virtuais.
Importante
Quando considera a fiabilidade de um conjunto de escalas e das suas VMs, também precisa de considerar a fiabilidade dos seus discos, infraestrutura de rede e aplicações que correm nas suas VMs. Melhorar a resiliência das VMs sozinha pode ter um efeito limitado se os outros componentes não forem igualmente resilientes. Dependendo dos seus 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
O Azure Well-Architected Framework fornece recomendações para fiabilidade, desempenho, segurança, custo e operações. Para saber como estas áreas se influenciam mutuamente e contribuem para uma solução fiável de Conjuntos de Escala para Máquinas Virtuais, consulte as melhores práticas de arquitetura para Máquinas Virtuais Azure e conjuntos de escala no Well-Architected Framework.
Visão geral da arquitetura de confiabilidade
Um conjunto de escalas agrupa múltiplas instâncias de VM e aplica configuração centralizada, regras de autoescala e atualizações progressivas.
Os conjuntos de escalas suportam dois modos de orquestração distintos:
- Conjuntos de escala flexíveis (recomendados) dão-lhe mais flexibilidade para implementar e gerir instâncias individuais de VM.
- Conjuntos de escalas uniformes implementam VMs com configuração idêntica, e tu geres-nas como um grupo.
Espalhamento do domínio da falha
Domínios de falha são grupos de isolamento de falhas dentro de um centro de dados. Cada domínio de falha é como um rack de servidores, que é um conjunto de nós de hardware que partilham o mesmo esquema de energia, rede, arrefecimento e manutenção da plataforma. Como as instâncias de VM de cada conjunto de escalabilidade estão distribuídas por múltiplos domínios de falha, uma interrupção planeada ou não planeada que ocorre num domínio de falha provavelmente não afeta as instâncias de VM noutros domínios de falha.
Quando implementas um conjunto de escala, podes controlar a quantidade de domínios de falha nas quais estão distribuídas as VMs. Para a maioria dos cenários, use o comportamento de dispersão máxima , que utiliza o maior número possível de domínios de falha. Para mais informações, veja Escolher o número certo de domínios de falha para Conjuntos de Escala de Máquinas Virtuais.
Nas regiões que têm zonas de disponibilidade, cada zona tem um conjunto distinto de domínios de falha. Quando crias um conjunto de escalas que atravessa zonas, as instâncias estão distribuídas por domínios de falha em cada zona que o teu conjunto de escalas utiliza.
Balanceamento de carga
Os conjuntos de escala podem integrar-se com serviços de balanceamento de carga Azure, incluindo Azure Load Balancer e Azure Application Gateway. Quando o conjunto de escalas adiciona ou remove instâncias, a integração do balanceador de carga atualiza automaticamente a configuração do balanceador de carga. Para mais informações, consulte Rede para Conjuntos de Escala de Máquinas Virtuais.
Os conjuntos de escalas incluem muitos outros controlos e capacidades que afetam a forma como implementas, escalas, distribues e atualizas instâncias. Para mais informações, consulte Visão Geral dos Conjuntos de Escala de Máquinas Virtuais.
Resiliência a falhas transitórias
Falhas transitórias são falhas curtas e intermitentes em componentes. Eles ocorrem com frequência em um ambiente distribuído, como a nuvem, e são uma parte normal das operações. As falhas transitórias corrigem-se após um curto período de tempo. É importante que seus aplicativos possam lidar com falhas transitórias, geralmente tentando novamente as solicitações afetadas.
Todos os aplicativos hospedados na nuvem devem seguir as diretrizes de tratamento de falhas transitórias do Azure quando se comunicam com quaisquer APIs, bancos de dados e outros componentes hospedados na nuvem. Para obter mais informações, consulte Recomendações para o 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 problemas de instâncias
Quando um conjunto de escalas inicia uma tarefa de criação ou eliminação de instância de VM, a operação pode falhar. Para repetir automaticamente as tarefas de criação ou eliminação de instâncias de VM que falharam, considere usar a funcionalidade resiliente de criação e eliminação para Conjuntos de Escala de Máquinas Virtuais (pré-visualização).
Podem surgir problemas enquanto as instâncias estão a funcionar. Por exemplo, uma instância pode tornar-se pouco responsiva devido a falhas da aplicação ou esgotamento de recursos. Use reparações automáticas de instâncias para monitorizar o estado da sua aplicação e reiniciar, recriar ou substituir automaticamente uma instância de VM quando necessário.
Resiliência a falhas na zona de disponibilidade
As zonas de disponibilidade são grupos fisicamente separados de centros de dados dentro de uma região Azure. Quando uma zona falha, os serviços podem ser transferidos para uma das zonas restantes.
Os Virtual Machine Scale Sets suportam zonas de disponibilidade tanto em configurações que abrangem zonas como em configurações zonais.
Um conjunto de escalas que abrange zonas distribui as instâncias por várias zonas de disponibilidade que seleciona.
Distribuir instâncias de VM por zonas de disponibilidade dá-te o SLA mais alto. Recomendamos que utilize conjuntos de escalas que abrangem zonas para a maioria das cargas de trabalho baseadas em VMs no Azure.
Num conjunto de escalas que abrange zonas, cada instância de VM e os seus discos estão ligados a uma zona de disponibilidade específica. Quando todas as zonas estão saudáveis, as instâncias podem comunicar entre zonas usando uma rede de alto desempenho e baixa latência. Se uma zona sofrer uma falha ou problema de conectividade, as instâncias nas outras zonas permanecem não afetadas.
Por padrão, o conjunto de dimensionamento utiliza uma abordagem de melhor esforço para abranger uniformemente as instâncias entre zonas selecionadas. Mas se precisares de equilíbrio rigoroso, podes alterar a configuração de equilíbrio das zonas.
O diagrama seguinte mostra um conjunto de escalas que abrange zonas, distribuído por três zonas, com uma instância em cada zona.
A expansão por zonas é semelhante à redundância de zonas noutros serviços do Azure, mas os grupos de dimensionamento não fornecem replicação automática de dados entre zonas nem failover quando as zonas estão indisponíveis. Em algumas situações invulgares, um conjunto de escalas que atravessa uma zona pode também ter as suas instâncias implementadas numa única zona, como quando se ligam VMs individuais numa zona a um conjunto de escala flexível que abrange zonas, que tem uma única instância na mesma zona.
Observação
Se usar o modo de orquestração flexível e anexar, desligar ou remover VMs individuais, certifique-se de que as VMs estão distribuídas por várias zonas. Se as VMs estiverem todas numa única zona, o teu conjunto de escalas pode não ser resistente a uma falha nessa zona.
Um conjunto de escala zonal , também chamado alinhado a zonas, coloca todas as suas instâncias numa única zona de disponibilidade que especifica. Cada VM e os seus discos são zonais, por isso estão fixados nessa zona específica.
Importante
Fixar numa única zona de disponibilidade só é recomendado quando a latência entre diferentes zonas é demasiado alta para as suas necessidades e depois de verificar que a mesma não satisfaz os seus requisitos. Por si só, um recurso zonal não fornece resiliência a uma interrupção da zona de disponibilidade. Para melhorar a resiliência de um recurso zonal, você precisa implantar explicitamente recursos separados em várias zonas de disponibilidade e configurar o roteamento e o failover de tráfego. Para mais informações, consulte Recursos Zonais e resiliência de zonas.
O diagrama seguinte mostra uma escala zonal numa única zona, com três instâncias nessa zona.
Se não especificares zonas de disponibilidade para o teu conjunto de escalas, é não zonal ou regional. Neste cenário, as instâncias podem ser colocadas em qualquer zona dentro da região e podem não estar distribuidas de forma uniforme ou localizadas na mesma zona. Quando usas um conjunto de escalas não zonal, a colocação do disco na mesma zona é garantida para discos Ultra e Premium v2. A colocation é fornecida com base no melhor esforço para discos Premium v1 e não é garantida para discos SKU Standard, incluindo discos de estado sólido (SSD) ou discos rígidos (HDD). Se alguma zona da região falhar, o seu conjunto de dimensionamento pode sofrer indisponibilidade.
Requerimentos
Suporte de região: Pode implantar conjuntos de escalas abrangendo zonas e zonais em qualquer região que suporte 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 oferecem suporte aos tipos de VM necessários, use os seguintes recursos:
Para verificar os tipos de VM disponíveis em cada região, consulte Produtos disponíveis por região.
Para verificar os tipos e tamanhos de VM suportados em cada zona de uma região específica, consulte Verificar a disponibilidade de SKU de VM.
Se um SKU VM específico não estiver disponível em nenhuma das zonas que seleciona para o seu conjunto de escala, então o seu conjunto pode não conseguir escalar para satisfazer os requisitos de capacidade.
Hosts dedicados: As implementações de Azure Dedicated Host não suportam a abrangência de zonas ou conjuntos de escala em zonas.
Tipos: O suporte de zonas de disponibilidade está disponível para todos os tipos de conjuntos de escala, incluindo conjuntos flexíveis e uniformes.
Considerações
Espalhamento do domínio da falha: Quando o seu conjunto de escalas utiliza zonas de disponibilidade, deve selecionar entre abordagens específicas de espalhamento do domínio da falha. Recomendamos que use o max spreading, que utiliza o maior número possível de domínios de falha, para a maioria das cargas de trabalho. Para mais informações, veja Escolher o número certo de domínios de falha para Conjuntos de Escala de Máquinas Virtuais.
Balanceamento de zonas:O balanceamento de zonas determina se as instâncias de VM num conjunto de escalas estão distribuídas de forma uniforme entre as zonas que seleciona. Um conjunto de escalas é considerado equilibrado se cada zona tiver o mesmo número de VMs, mais ou menos uma VM. Podes configurar o modo de balanceamento de zonas para melhor esforço ou estrito. Esta configuração controla se o conjunto de escalas pode escalar de forma desigual, incluindo em cenários de interrupção por zona.
Grupos de colocação: Para conjuntos de escalas uniformes, se configurares vários grupos de colocação, o Azure implementa vários grupos de colocação em cada zona que o teu conjunto de escalas utiliza.
Custo
Não há diferença de custo entre um conjunto de escalas cobrindo várias zonas, zonal e não zonal que tenha o mesmo número e tipo de instâncias de máquinas virtuais.
Configurar o suporte à zona de disponibilidade
Esta secção explica como configurar o suporte a zonas de disponibilidade para o seu conjunto de escala.
Crie um conjunto de dimensionamento abrangendo zonas ou de escala zonal. Podes configurar zonas de disponibilidade quando criares um novo conjunto de escalas. Para mais informações, consulte Criar um conjunto de escalas de máquina virtual que utiliza zonas de disponibilidade.
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 poderão 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, consulte Zonas de disponibilidade física e lógica.
Converta conjuntos de escalas existentes para usar zonas de disponibilidade. Pode converter um conjunto de escala não zonal (regional) existente para usar zonas de disponibilidade. Para mais informações, consulte Atualizar conjuntos de escalas para adicionar zonas de disponibilidade.
Altere a configuração da zona de disponibilidade de um conjunto de escalas existente. Podes adicionar zonas a um conjunto de escalas existente, mas não podes remover zonas. Para mais informações, consulte Atualizar conjuntos de escalas para adicionar zonas de disponibilidade.
Importante
Quando expandes um conjunto de escalas para mais zonas, as instâncias originais da VM não migram ou mudam imediatamente. Quando se amplia, novas instâncias são criadas e distribuídas uniformemente pelas zonas de disponibilidade selecionadas. Se precisares de dados das instâncias originais, és responsável por migrar os dados para instâncias nas novas zonas. Quando ajustas a escala no conjunto de dimensionamento, quaisquer instâncias regionais são priorizadas para serem removidas em primeiro lugar. Depois, as instâncias são removidas com base na política de scale-in do conjunto de dimensionamento. Para mais informações, veja Como equilibrar manualmente o seu conjunto de balanças.
Planejamento e gerenciamento de capacidade
Para se preparar para falhas na zona de disponibilidade, considere sobre-provisionar o número de instâncias de VM no seu conjunto de escala. Esta abordagem permite que a solução tolere alguma perda de capacidade e continue a funcionar sem desempenho degradado, garantindo que as zonas restantes tenham capacidade suficiente para suportar a carga total de produção. Para obter mais informações, consulte Gerenciar a capacidade usando o provisionamento excessivo.
Comportamento quando todas as zonas estão íntegras
Esta secção descreve o que esperar quando os conjuntos de escala são configurados com suporte de zonas de disponibilidade e todas as zonas de disponibilidade estão operacionais.
Encaminhamento do tráfego entre zonas: És responsável por encaminhar o tráfego entre VMs no conjunto de escala, incluindo VMs que estão em diferentes zonas de disponibilidade. Abordagens comuns incluem o Load Balancer e o Application Gateway, que proporcionam integração integrada com conjuntos de escala. Para mais informações, consulte Rede para Conjuntos de Escala de Máquinas Virtuais.
Replicação de dados entre zonas: Você é responsável por qualquer replicação de dados que precise acontecer entre VMs, inclusive entre VMs em diferentes zonas de disponibilidade. Os bancos de dados e outros aplicativos com monitoração de estado semelhantes executados em VMs geralmente fornecem recursos para replicar dados.
Comportamento durante uma falha de zona
Esta secção descreve o que esperar quando os conjuntos de escala são configurados com suporte a zonas de disponibilidade e há uma falha nas suas zonas de disponibilidade.
Deteção e resposta: És responsável por detetar a perda de uma zona de disponibilidade e decidir como responder.
Para conjuntos de escala que abrangem zonas, quaisquer instâncias de VM na zona afetada podem não estar disponíveis. As instâncias nas zonas saudáveis mantêm-se operacionais.
Para conjuntos de escalas zonais implementados na zona afetada, todas as instâncias VM podem estar indisponíveis. Tens de planear como respondes a uma falha de zona. Por exemplo, pode redirecionar o tráfego para outra escala numa zona ou região diferente.
- Notificação: a Microsoft não o notifica automaticamente quando uma zona está inativa. No entanto, pode utilizar o Azure Resource Health para monitorizar a integridade de um recurso individual, e pode configurar alertas de integridade de recursos para notificá-lo de problemas. Também pode usar o Azure Service Health para compreender o estado geral do serviço, incluindo quaisquer falhas de zona, e pode configurar alertas de Service Health para o notificar de problemas.
Pedidos ativos: Quaisquer pedidos ativos ou outros trabalhos que ocorram em VMs na zona de disponibilidade afetada provavelmente serão terminados.
Perda de dados esperada: Os discos de VM zonais podem não estar disponíveis durante uma falha de zona.
Caso utilize discos ZRS (armazenamento com redundância de zona) e uma interrupção afetar a sua VM, tem a possibilidade de forçar a desanexação dos discos ZRS da VM que falhou. Essa abordagem permite anexar os discos ZRS a outra VM.
Tempo de inatividade previsto: Quaisquer VMs na zona afetada permanecem inativas até que a zona de disponibilidade recupere. Quando usas conjuntos de escala que abrangem zonas, VMs localizadas em zonas saudáveis continuam a funcionar.
Reencaminhamento do tráfego: Você é responsável por redirecionar o tráfego para outras VMs em zonas íntegras.
Se configurares um balanceador de carga resiliente a zonas que faz verificações de saúde, o balanceador normalmente deteta VMs falhadas e pode encaminhar tráfego para outras instâncias VM em zonas saudáveis.
Substituição de instância: O Virtual Machine Scale Sets não garante adicionar automaticamente novas instâncias a zonas saudáveis.
Se tiveres um conjunto de escalas que abrange zonas, podes escalar para adicionar mais instâncias. Se a falha da zona for restrita a conjuntos específicos de servidores dentro da zona, a operação de scale-out pode adicionar instâncias saudáveis à mesma zona, ou pode adicionar instâncias a outras zonas. No entanto, se o scale set usar equilíbrio de zonas estrito, o scale set bloqueia operações de escalonamento que causem um desequilíbrio.
Sugestão
É uma boa prática configurar regras de autoescalabilidade com base no consumo de CPU ou memória. As regras de autoescala podem permitir que o conjunto de escala responda à perda das instâncias VM numa zona, escalando para adicionar novas instâncias nas zonas operacionais restantes.
Recuperação de zona
Quando a zona estiver saudável, as VMs na zona reiniciam. Você é responsável por todos os procedimentos de recuperação de zona e sincronização de dados que suas cargas de trabalho exigem.
Se adicionares instâncias temporárias ao teu conjunto de escalas durante uma falha de zona, quando a zona for restaurada, podes precisar de reduzir o teu conjunto de escalas para a capacidade original.
Teste de falhas de zona
Podes usar o Azure Chaos Studio para simular a perda de VMs numa ou mais zonas de disponibilidade como parte de um experimento. O Chaos Studio fornece falhas incorporadas para conjuntos de escala, incluindo a capacidade de desligar VMs em zonas específicas. Você pode usar esses recursos para simular falhas no nível da zona e testar seus processos de failover.
Resiliência a falhas em toda a região
Conjuntos de escalas são recursos de uma única região. Se a região não estiver disponível, quaisquer conjuntos de escalas na região também ficam indisponíveis.
Soluções personalizadas de várias regiões para resiliência
Podes implementar múltiplos conjuntos de escalas em diferentes regiões, mas precisas de implementar processos de replicação, balanceamento de carga e failover. Por exemplo, pode implementar conjuntos de escalas idênticos em várias regiões e usar o Azure Front Door ou o Azure Traffic Manager com sondas de saúde para encaminhar o tráfego. És responsável por replicar o estado usando mecanismos de aplicação ou serviços de dados geridos.
Backup e restauração
O Azure Backup fornece suporte nativo de backup para VMs. O Azure Backup cria e gere backups e fornece proteção consistente com a aplicação para toda a VM, incluindo todos os discos ligados. Uma solução de backup de VM com Azure Backup é ideal quando precisa de backup coordenado de múltiplos discos ou backups com aplicação específica. No entanto, para cargas de trabalho de bases de dados, considere soluções de backup específicas para aplicações que ofereçam proteção consistente em transações e opções de recuperação mais rápidas.
Com o Azure Backup para VMs, pode personalizar a frequência de backup, a duração da retenção e a configuração de armazenamento para satisfazer as suas necessidades. Para obter mais informações, consulte Backup do Azure para VMs.
O backup também oferece suporte a discos conectados a VMs. Para obter mais informações, consulte Visão geral do Backup de Disco do Azure.
Para a maioria das soluções, você não deve confiar exclusivamente em backups. Em vez disso, use os outros recursos descritos neste guia para dar suporte aos seus requisitos de resiliência. No entanto, os backups protegem contra alguns riscos que outras abordagens não oferecem. Para obter mais informações, consulte O que são redundância, replicação e backup?.
Resiliência à reconfiguração de VMs
Os conjuntos de escala permitem controlar como aplicas alterações de configuração às tuas VMs, como mudar o SKU da VM, alterar a imagem que cada VM usa e adicionar ou remover extensões de VM. Podes controlar o modo de política de atualização, que determina como as melhorias são aplicadas. Para mais informações, consulte Modos de política de atualização para Conjuntos de Escala de Máquinas Virtuais.
Alguns tipos de atualização requerem reimagem ou reimplantação de uma instância. Para excluir instâncias específicas das atualizações automáticas, considere usar proteção de instância. Podes excluir instâncias que contenham estado que precisas de preservar ou configurações que não consegues replicar noutras instâncias.
Resiliência à manutenção de serviços
O Azure realiza periodicamente atualizações para melhorar a fiabilidade, desempenho e segurança da infraestrutura do host para VMs. Os conjuntos de escalabilidade oferecem múltiplas formas de compreender e gerir a manutenção planeada.
As notificações de manutenção planeada indicam quando a manutenção é necessária e permitem-lhe controlar quando ocorre a manutenção.
As configurações de manutenção permitem-lhe agendar uma janela de manutenção numa altura que se adequa às necessidades do seu negócio.
Eventos Programados para VMs Linux e VMs Windows dão tempo à sua aplicação para se preparar para a manutenção da VM. Fornece informações sobre eventos de manutenção futuros, como um reinício, para que a sua aplicação possa preparar-se para eles e limitar as interrupções.
Contrato de nível de serviço
O contrato de nível de serviço (SLA) para serviços do Azure descreve a disponibilidade esperada de cada serviço e as condições que sua solução deve atender para atingir essa expectativa de disponibilidade. Para obter mais informações, consulte Acordos de Nível de Serviço (SLAs) para serviços online.
Conjuntos de escala de máquinas virtuais partilham o SLA de disponibilidade para VMs. Pode alcançar uma percentagem de tempo de atividade mais elevada para as suas VMs usando um conjunto de escalas que cumpra ambos os seguintes critérios:
- O conjunto de escalas contém duas ou mais instâncias.
- O conjunto de escalas distribui essas instâncias por duas ou mais zonas de disponibilidade.