Considerações de planejamento de capacidade de cluster do Service Fabric

O planejamento da capacidade do cluster é importante para cada ambiente de produção do Service Fabric. Entre as considerações principais estão:

  • Número inicial e propriedades de tipos de nó de cluster

  • Nível de durabilidade de cada tipo de nó, que determina privilégios de VM do Service Fabric na infraestrutura do Azure

  • Nível de confiabilidade do cluster, que determina a estabilidade dos serviços do sistema do Service Fabric e a função de cluster geral

Este artigo explicará os pontos de decisão significativos de cada uma dessas áreas.

Número inicial e propriedades de tipos de nó de cluster

Um tipo de nó define o tamanho, o número e as propriedades de um conjunto de nós (máquinas virtuais) no cluster. Cada tipo de nó definido em um cluster do Service Fabric mapeia para um conjunto de dimensionamento de máquinas virtuais.

Como cada tipo de nó é um conjunto de dimensionamento distinto, ele pode ser escalado verticalmente ou reduzido verticalmente de forma independente, ter conjuntos diferentes de portas abertas e ter métricas de capacidade diferente. Para obter mais informações sobre a relação entre os tipos de nó e os conjuntos de escala da máquina virtual, consulte Tipos de nós de cluster do Service Fabric.

Cada cluster requer um tipo de nó primário, que executa serviços de sistema críticos que fornecem recursos de plataforma do Service Fabric. Embora seja possível também usar tipos de nó primário para executar seus aplicativos, é recomendável dedicá-los exclusivamente aos serviços do sistema em execução.

Tipos de nó não primários podem ser usados para definir funções de aplicativo (como serviços de front-end e back-end) e para isolar fisicamente os serviços em um cluster. Os clusters do Service Fabric podem ter zero ou mais tipos de nós não primários.

O tipo de nó primário é configurado usando o atributo isPrimary sob a definição de tipo de nó no modelo de implantação do Azure Resource Manager. Consulte o objeto NodeTypeDescription para obter a lista completa de propriedades de tipo de nó. Para uso de exemplo, abra qualquer arquivo AzureDeploy.jsno em Exemplos de cluster do Service Fabric e, em Localizar na página, pesquise o objeto nodeTypes.

Considerações de planejamento do tipo de nó

O número de tipos de nós iniciais depende da finalidade do cluster e dos aplicativos e serviços em execução nele. Considere as seguintes perguntas:

  • O aplicativo tem vários serviços, e algum deles precisa ser público ou voltado para a Internet?

    Os aplicativos típicos contêm um serviço de gateway de front-end que recebe entrada de um cliente e um ou mais serviços de back-end que se comunicam com os serviços de front-end, com rede separada entre os serviços de front-end e back-end. Esses casos normalmente exigem três tipos de nó: um tipo de nó primário e dois tipos de nó não primário (um para o serviço de front-end e outro para o de back-end).

  • Os serviços que compõem o aplicativo têm necessidades de infraestrutura diferentes, como maior RAM ou mais ciclos de CPU?

    Frequentemente, o serviço de front-end pode ser executado em VMs menores (com tamanhos de VM como D2) que têm portas abertas para a Internet. Serviços de back-end que fazem uso intensivo de computação podem precisar ser executados em VMs maiores (com tamanhos de VM como D4, D6, D15) que não são voltadas para a Internet. Definir diferentes tipos de nó para esses serviços permite que você faça uso mais eficiente e seguro de VMs do Service Fabric subjacentes e permite dimensioná-las de forma independente. Para saber mais sobre como estimar a quantidade de recursos necessários, confira Planejamento de capacidade para aplicativos do Service Fabric

  • Algum dos seus serviços de aplicativo precisará ser escalado horizontalmente além de 100 nós?

    Um único tipo de nó não pode ser dimensionado de forma confiável além de 100 nós por conjunto de dimensionamento de máquinas virtuais para aplicativos do Service Fabric. A execução de mais de 100 nós requer conjuntos de dimensionamento de máquinas virtuais adicionais (e, portanto, tipos de nó adicionais).

  • O cluster se estenderá entre Zonas de Disponibilidade?

    O Service Fabric dá suporte a clusters que se estendem por Zonas de Disponibilidade por meio da implantação de tipos de nós que são fixados em zonas específicas, garantindo a alta disponibilidade de seus aplicativos. Zonas de Disponibilidade exigem planejamento de tipo de nó adicional e requisitos mínimos. Para mais detalhes, consulte Topologia para abranger um tipo de nó primário entre Zonas de Disponibilidade.

Ao determinar o número e as propriedades dos tipos de nó para a criação inicial do cluster, tenha em mente que você sempre pode adicionar, modificar ou remover tipos de nós (não primários) depois que o cluster é implantado. Os tipos de nós primários também podem ser escalados ou reduzidos verticalmente em clusters em execução, embora seja necessário criar um outro tipo de nó, mover a carga de trabalho para ele e remover o tipo de nó primário original.

Outra consideração para suas propriedades de tipo de nó é o nível de durabilidade, que determina os privilégios que as VMs de um tipo de nó têm na infraestrutura do Azure. Use o tamanho das VMs escolhidas para o cluster e a contagem de instâncias que você atribui para tipos de nó individuais para ajudar a determinar a camada de durabilidade apropriada para cada um dos tipos de nó, conforme descrito a seguir.

Características de durabilidade do cluster

O nível de durabilidade designa os privilégios que suas VMs do Service Fabric têm com a infraestrutura subjacente do Azure. Esse privilégio permite que o Service Fabric pause qualquer solicitação de infraestrutura de nível de VM (por exemplo, reinicialização, recriação de imagem ou migração) que afete os requisitos de quorum para os serviços do sistema do Service Fabric e os serviços com estado.

Importante

O nível de durabilidade é definido por tipo de nó. Se não houver nenhum especificado, a camada Bronze será usada. As cargas de trabalho de produção exigem um nível de durabilidade Prata ou Ouro para ajudar a evitar a perda de dados de solicitações de infraestrutura no nível da VM.

A tabela a seguir lista as camadas de durabilidade do Service Fabric, seus requisitos e capacidades.

Camada de durabilidade Número mínimo necessário de VMs Tamanhos de VM com suporte Atualizações que você faz no seu conjunto de dimensionamento de máquina virtual Atualizações e manutenção iniciada pelo Azure
Ouro 5 Tamanhos de nó completo dedicados a um único cliente (por exemplo, L32s, GS5, G5, DS15_v2, D15_v2) Pode ser atrasado até aprovado pelo cluster do Service Fabric Pode ser pausado por 2 horas por domínio de atualização para possibilitar tempo adicional para réplicas para recuperar de falhas anteriores
Prata 5 VMs de núcleo único ou superior com pelo menos 50 GB de SSD local Pode ser atrasado até aprovado pelo cluster do Service Fabric Não pode ser atrasado por qualquer período de tempo significativo
Bronze 1 VMs com pelo menos 50 GB de SSD local Não será atrasado pelo cluster do Service Fabric Não pode ser atrasado por qualquer período de tempo significativo

Observação

O número mínimo mencionado acima de VMs é um requisito necessário para cada nível de durabilidade. Temos validações in-loco, o que impedirá a criação ou a modificação de conjuntos de dimensionamento de máquinas virtuais existentes que não atendam a esses requisitos.

Aviso

A atualização automática de imagem do sistema operacional não está disponível com a durabilidade bronze. Embora o Aplicativo de Orquestração de Patch (destinado apenas a clusters não hospedados no Azure) não seja recomendado para níveis de durabilidade prata ou superior, ele é a única opção para automatizar as atualizações do Windows com relação aos domínios de atualização do Service Fabric.

Importante

Independentemente do nível de durabilidade, a execução de uma operação de Desalocação em um conjunto de dimensionamento de máquinas virtuais destruirá o cluster.

Bronze

Tipos de nó executados com durabilidade Bronze não têm nenhum privilégio. Isso significa que trabalhos de infraestrutura que afetam sus cargas de trabalho com estado não serão interrompidas ou atrasadas. Use a durabilidade Bronze para tipos de nós que executam somente cargas de trabalho sem estado. Para cargas de trabalho de produção, em execução Prata ou superior é recomendado.

Prata e Ouro

Use a durabilidade Prata ou Ouro para todos os tipos de nós que hospedam serviços com estado que você pretende reduzir horizontalmente com frequência e onde prefere que as operações de implantação sejam atrasadas e a capacidade seja reduzida para simplificar o processo. Cenários de expansão não devem afetar sua escolha da camada de durabilidade.

Vantagens

  • Reduz o número de etapas necessárias para operações de expansão (desativação de nó e Remove-ServiceFabricNodeState são chamadas automaticamente).
  • Reduz o risco de perda de dados devido a operações de alteração de tamanho de VM in-loco e operações de infraestrutura do Azure.

Desvantagens

  • As implantações nos conjuntos de dimensionamento de máquinas virtuais e outros recursos do Azure relacionados podem atingir o tempo limite, ser atrasadas ou ser totalmente bloqueadas por problemas no cluster ou no nível de infraestrutura.
  • Aumenta o número de eventos de ciclo de vida de réplica (por exemplo, trocas primárias) devido às desativações de nós automatizadas durante as operações de infraestrutura do Azure.
  • Coloca os nós fora de serviço por períodos durante as atividades de manutenção de hardware ou atualizações de software da plataforma Azure. Você poderá ver os nós o com o status Desabilitando/Desabilitado durante essas atividades. Isso reduz a capacidade do cluster temporariamente, mas não deve afetar a disponibilidade do cluster ou dos aplicativos.

Práticas recomendadas para tipos de nós de durabilidade Prata e Ouro

Siga estas recomendações para gerenciar tipos de nós com durabilidade Prata ou Ouro:

  • Mantenha sempre a integridade do cluster e dos aplicativos e verifique se os aplicativos respondem a todos os eventos de ciclo de vida de réplica do Serviço (como quando a réplica sendo compilada está paralisada) de maneira oportuna.
  • Adote maneiras mais seguras de alterar o tamanho da VM (escalar/reduzir verticalmente). Alterar o tamanho da VM de um conjunto de dimensionamento de máquinas virtuais requer um planejamento cuidadoso e atenção. Para obter detalhes, consulte Escalar verticalmente um tipo de nó do Service Fabric
  • Mantenha uma contagem mínima de cinco nós para qualquer conjunto de dimensionamento de máquinas virtuais que tenha o nível de durabilidade Ouro ou Prata habilitado. O cluster entrará no estado de erro se você reduzir horizontalmente abaixo desse limite, e você precisará limpar manualmente o estado (Remove-ServiceFabricNodeState) dos nós removidos.
  • Cada escala de máquina virtual definida com nível de durabilidade Silver ou Gold deve ser mapeada para seu próprio tipo de nó no cluster do Service Fabric. O mapeamento de vários conjuntos de escala de máquinas virtuais para um único tipo de nó impedirá que a coordenação entre o cluster do Service Fabric e a infraestrutura do Azure funcione corretamente.
  • Não exclua instâncias aleatórias de VM, use sempre o recurso de reduzir horizontalmente o conjunto de dimensionamento de máquinas virtuais. A exclusão de instâncias de VM aleatórias tem o potencial de criar desequilíbrios na difusão das instâncias de VM por domínios de atualização e domínios de falha. Esse desequilíbrio pode afetar de maneira negativa a capacidade dos sistemas de executar um balanceamento de carga adequado entre as instâncias do serviço/réplicas do Serviço.
  • Se usar o Dimensionamento Automático, defina as regras de modo que as operações de redução horizontal (remoção de instâncias de VM) sejam executadas em um nó de cada vez. A redução horizontal de mais de uma instância por vez não é segura.
  • Se for excluir ou desalocar VMs no tipo de nó primário, nunca reduza a contagem de VMs alocadas abaixo do que requer o nível de confiabilidade. Essas operações serão bloqueadas indefinidamente em um conjunto de dimensionamento com um nível de durabilidade de Prata ou Ouro.

Alterar os níveis de durabilidade

Dentro de determinadas restrições, o nível de durabilidade do tipo de nó pode ser ajustado:

  • Os tipos de nós com níveis de durabilidade Prata ou Ouro não podem ser rebaixados para Bronze.
  • Não há suporte para o downgrade de tipos de nó com nível de durabilidade Ouro para Prata.
  • A atualização do nível Bronze, Prata ou Ouro pode levar algumas horas.
  • Ao alterar o nível de durabilidade, certifique-se de atualizá-lo na configuração da extensão do Service Fabric no recurso de conjunto de dimensionamento de máquinas virtuais e na definição de tipo de nó no recurso de cluster do Service Fabric. Estes valores devem ser correspondentes.

Outra consideração no planejamento da capacidade é o nível de confiabilidade do cluster, que determina a estabilidade dos serviços do sistema e do cluster geral, conforme descrito na próxima seção.

Características de confiabilidade do cluster

O nível de confiabilidade do cluster determina o número de réplicas de serviços do sistema em execução no tipo de nó primário do cluster. Quanto mais réplicas, mais confiáveis são os serviços do sistema (e, portanto, o cluster como um todo).

Importante

O nível de confiabilidade é definido no nível do cluster e determina o número mínimo de nós do tipo de nó primário. As cargas de trabalho de produção exigem um nível de confiabilidade Prata (maior ou igual a cinco nós) ou superior.

A camada de confiabilidade pode ter os valores a seguir:

  • Platina - Os serviços do sistema são executados com uma contagem de conjuntos de réplicas de destino de nove
  • Ouro - Os serviços do sistema são executados com uma contagem de conjuntos de réplicas de destino de sete
  • Prata - Os serviços do sistema são executados com uma contagem de conjuntos de réplicas de destino de cinco
  • Bronze - Os serviços do sistema são executados com uma contagem de conjuntos de réplicas de destino de três

Aqui está a recomendação sobre como escolher o nível de confiabilidade. O número de nós iniciais também é configurado para o número mínimo de nós para um nível de confiabilidade.

Número de nós Camada de confiabilidade
1 Não especifique o parâmetro reliabilityLevel: o sistema o calculará.
3 Bronze
5 ou 6 Prata
7 ou 8 Ouro
9 e superior Platinum

Quando você aumenta ou diminui o tamanho do cluster (a soma das instâncias VM em todos os tipos de nó), considere a atualização da confiabilidade do seu cluster de um nível para outro. Fazer isso dispara as atualizações de cluster necessárias para alterar a contagem de conjuntos de réplicas dos serviços do sistema. Aguarde a conclusão da atualização em andamento antes de fazer outras alterações no cluster, assim como adicionar nós. Você pode monitorar o andamento da atualização no Service Fabric Explorer ou executando Get-ServiceFabricClusterUpgrade

Planejamento de capacidade para confiabilidade

As necessidades de capacidade do cluster serão determinadas por seus requisitos específicos de confiabilidade e carga de trabalho. Esta seção fornece diretrizes gerais para ajudá-lo a iniciar o planejamento da capacidade.

Dimensionamento de máquina virtual

Para cargas de trabalho de produção, o tamanho de VM recomendado (SKU) é Standard D2_V2 (ou equivalente) com um mínimo de 50 GB de SSD local, 2 núcleos e 4 GiB de memória. É recomendável um mínimo de 50 GB de SSD local, no entanto, algumas cargas de trabalho (como aquelas que executam contêineres do Windows) exigirão discos maiores.

Por padrão, o SSD local é configurado para 64 GB. Ele pode ser definido na configuração MaxDiskQuotaInMB da seção Diagnóstico das configurações do cluster.

Para obter instruções sobre como ajustar as configurações de cluster de um cluster hospedado no Azure, consulte Atualizar a configuração de um cluster no Azure

Para obter instruções sobre como ajustar as configurações de um cluster autônomo hospedado no Windows, consulte Atualizar a configuração de um cluster autônomo

Ao escolher outros tamanhos de VM para cargas de trabalho de produção, tenha em mente as seguintes restrições:

  • Tamanhos de VM de núcleo parcial / único como Standard A0 não são suportados.
  • Os tamanhos de VM Série A não são suportados por motivos de desempenho.
  • Não há suporte para VMs de baixa prioridade.
  • Não há suporte para SKUs com capacidade de intermitência da Série B.

Tipo de nó primário

As cargas de trabalho de produção no Azure exigem um mínimo de cinco nós primários (instâncias de VM) e a camada de confiabilidade Prata. É recomendável dedicar o tipo de nó primário de cluster aos serviços do sistema e usar restrições de posicionamento para implantar o aplicativo em tipos de nó secundários.

Cargas de trabalho de teste no Azure podem executar no mínimo um ou três nós primários. Para configurar um cluster de um nó, certifique-se de que a configuração reliabilityLevel seja completamente omitida no seu modelo do Resource Manager (especificar um valor de cadeia de caracteres vazio para reliabilityLevel não é suficiente). Se você configurar o cluster de um nó configurado usando o portal do Azure, essa configuração será feita automaticamente.

Aviso

Clusters de um nó são executados com uma configuração especial sem confiabilidade e onde não há suporte para a expansão horizontal.

Tipos de nó não primários

O número mínimo de nós para um tipo de nó não primário depende do nível de durabilidade específico do tipo de nó. Você deve planejar o número de nós (e o nível de durabilidade) com base no número de réplicas de aplicativos ou serviços que você deseja executar para o tipo de nó e dependendo de a carga de trabalho ser com estado ou sem estado. Tenha em mente que você pode aumentar ou diminuir o número de VMs em um tipo de nó a qualquer momento depois de ter implantado o cluster.

Cargas de trabalho com estado

Para cargas de trabalho de produção com estado que usam coletas confiáveis ou Reliable Actors do Service Fabric, é recomendável uma contagem de cinco de réplicas mínimas e de destino. Com isso, no estado estável, você fica com uma réplica (de um conjunto de réplicas) em cada domínio de falha e em cada domínio de atualização. No geral, use o nível de confiabilidade definido para serviços do sistema como um guia para a contagem de réplicas que você usa para seus serviços com estado.

Cargas de trabalho sem estado

Para cargas de trabalho de produção sem estado, o tamanho mínimo de tipo de nó não primário com suporte é de três para manter o quorum; no entanto, é recomendado um tamanho de tipo de nó de cinco.

Próximas etapas

Antes de configurar o cluster, revise as Not Allowedpolíticas de atualização de cluster para atenuar a recriação do cluster mais tarde, devido a configurações de sistema inalteráveis.

Para obter mais informações sobre o planejamento de cluster, consulte: