Consideração de planeamento de capacidade de clusters do Service Fabric

O planeamento da capacidade do cluster é importante para todos os ambientes de produção do Service Fabric. As principais considerações incluem:

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

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

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

Este artigo irá guiá-lo pelos pontos de decisão significativos para cada uma destas áreas.

Número inicial e propriedades dos tipos de nós 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 num cluster do Service Fabric mapeia para um conjunto de dimensionamento de máquinas virtuais.

Uma vez que cada tipo de nó é um conjunto de dimensionamento distinto, pode ser aumentado ou reduzido verticalmente de forma independente, ter diferentes conjuntos de portas abertos e ter métricas de capacidade diferentes. Para obter mais informações sobre a relação entre os tipos de nós e os conjuntos de dimensionamento de máquinas virtuais, veja Tipos de nós de cluster do Service Fabric.

Cada cluster necessita de um tipo de nó principal, que executa serviços de sistema críticos que fornecem capacidades de plataforma do Service Fabric. Embora também seja possível utilizar tipos de nós primários para executar as suas aplicações, recomenda-se que as dedique exclusivamente à execução de serviços do sistema.

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

O tipo de nó principal é configurado com o isPrimary atributo na definição do tipo de nó no modelo de implementação Resource Manager do Azure. Veja o objeto NodeTypeDescription para obter a lista completa das propriedades do tipo de nó. Por exemplo, a utilização, abra qualquer ficheiro AzureDeploy.json nos exemplos de cluster do Service Fabric e Procure onodeTypes objeto na Página.

Considerações de planeamento do tipo de nó

O número de tipos de nós iniciais depende da finalidade do cluster e das aplicações e serviços em execução no mesmo. Considere as perguntas seguintes:

  • A sua aplicação tem vários serviços e algum deles tem de ser público ou com acesso à Internet?

    As aplicações típicas contêm um serviço de gateway de front-end que recebe entradas de um cliente e um ou mais serviços de back-end que comunicam com os serviços de front-end, com redes separadas entre os serviços de front-end e back-end. Normalmente, estes casos requerem três tipos de nós: um tipo de nó primário e dois tipos de nó nãoprimários (um para cada um para o serviço front-end e back-end).

  • Os serviços que compõem a sua aplicação têm necessidades de infraestrutura diferentes, tais como maiores ciclos de RAM ou de CPU superiores?

    Muitas vezes, o serviço de front-end pode ser executado em VMs mais pequenas (tamanhos de VM como D2) que têm portas abertas para a Internet. Os serviços de back-end computacionalmente intensivos podem ter de ser executados em VMs maiores (com tamanhos de VM como D4, D6, D15) que não têm acesso à Internet. Definir diferentes tipos de nós para estes serviços permite-lhe fazer uma utilização mais eficiente e segura das VMs subjacentes do Service Fabric e permite-lhes dimensioná-las de forma independente. Para obter mais informações sobre como estimar a quantidade de recursos de que irá precisar, veja Capacity planning for Service Fabric applications (Planeamento de capacidade para aplicações do Service Fabric)

  • Algum dos seus serviços de aplicação terá de aumentar horizontalmente para além dos 100 nós?

    Um único tipo de nó não pode dimensionar de forma fiável para além de 100 nós por conjunto de dimensionamento de máquinas virtuais para aplicações 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ós adicionais).

  • O cluster irá abranger Zonas de Disponibilidade?

    O Service Fabric suporta clusters que abrangem vários Zonas de Disponibilidade ao implementar tipos de nós afixados em zonas específicas, garantindo a elevada disponibilidade das suas aplicações. Zonas de Disponibilidade exigir planeamento do tipo de nó adicional e requisitos mínimos. Para obter detalhes, veja 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ós para a criação inicial do cluster, tenha em atenção que pode sempre adicionar, modificar ou remover tipos de nós (nãoprimários) assim que o cluster for implementado. Os tipos de nó primário também podem ser aumentados ou reduzidos verticalmente em clusters em execução. No entanto, para tal, terá de criar um novo tipo de nó, mover a carga de trabalho e, em seguida, remover o tipo de nó primário original.

Uma outra consideração para as propriedades do 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. Utilize o tamanho das VMs que escolher para o cluster e a contagem de instâncias que atribui a tipos de nós individuais para ajudar a determinar o escalão de durabilidade adequado 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 as VMs do Service Fabric têm com a infraestrutura subjacente do Azure. Este privilégio permite ao Service Fabric colocar em pausa qualquer pedido de infraestrutura ao nível da VM (como reiniciar, recriar imagem ou migração) que afeta os requisitos de quórum para os serviços do sistema do Service Fabric e os seus serviços com monitorização de estado.

Importante

O nível de durabilidade é definido por tipo de nó. Se não for especificado nenhum, será utilizada a camada Bronze . As cargas de trabalho de produção requerem um nível de durabilidade de Silver ou Gold para ajudar a evitar a perda de dados de pedidos de infraestrutura ao nível da VM.

A tabela abaixo lista os escalões de durabilidade do Service Fabric, os respetivos requisitos e acessibilidades.

Escalão de durabilidade Número mínimo necessário de VMs Tamanhos de VM suportados Atualizações criar no conjunto de dimensionamento de máquinas virtuais Atualizações e manutenção iniciadas pelo Azure
Gold 5 Tamanhos de nós completos dedicados a um único cliente – tamanhos de VM disponíveis Pode ser adiado até ser aprovado pelo cluster do Service Fabric Pode ser colocada em pausa durante 2 horas por domínio de atualização para permitir tempo adicional para as réplicas recuperarem de falhas anteriores
Silver 5 VMs de núcleo único ou mais com, pelo menos, 50 GB de SSD local Pode ser adiado até ser aprovado pelo cluster do Service Fabric Não pode ser adiado por um período de tempo significativo
Bronze 1 VMs com, pelo menos, 50 GB de SSD local Não será adiado pelo cluster do Service Fabric Não pode ser adiado por um período de tempo significativo

Nota

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

Aviso

Com a durabilidade Bronze, a atualização automática da imagem do SO não está disponível. Embora a Aplicação de Orquestração de Patches (destinada apenas a clusters não alojados no Azure) não seja recomendada para níveis de silver ou maior durabilidade, é a única opção para automatizar atualizações do Windows no que diz respeito 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 num conjunto de dimensionamento de máquinas virtuais destruirá o cluster.

Bronze

Os tipos de nós em execução com durabilidade Bronze não obtêm privilégios. Isto significa que as tarefas de infraestrutura que afetam as cargas de trabalho com monitorização de estado não serão paradas ou atrasadas. Utilize a durabilidade Bronze para tipos de nós que executam apenas cargas de trabalho sem estado. Para cargas de trabalho de produção, é recomendado executar Silver ou superior.

Prata e Ouro

Utilize a durabilidade Silver ou Gold para todos os tipos de nós que alojam serviços com monitorização de estado que espera reduzir horizontalmente com frequência e onde pretende que as operações de implementação sejam atrasadas e a capacidade seja reduzida a favor da simplificação do processo. Os cenários de aumento horizontal não devem afetar a sua escolha do escalão de durabilidade.

Vantagens

  • Reduz o número de passos necessários para operações de redução horizontal (a desativação do nó e Remove-ServiceFabricNodeState são chamados automaticamente).
  • Reduz o risco de perda de dados devido às operações de alteração do tamanho da VM no local e às operações de infraestrutura do Azure.

Desvantagens

  • As implementações em conjuntos de dimensionamento de máquinas virtuais e outros recursos do Azure relacionados podem exceder o tempo limite, ser adiadas ou ser totalmente bloqueadas por problemas no cluster ou ao nível da infraestrutura.
  • Aumenta o número de eventos de ciclo de vida da réplica (por exemplo, trocas primárias) devido a desativações automatizadas de nós durante as operações de infraestrutura do Azure.
  • Retira os nós de serviço durante períodos de tempo enquanto estão a ocorrer atualizações de software da plataforma do Azure ou atividades de manutenção de hardware. Poderá ver nós com o estado Desativar/Desativado durante estas atividades. Isto reduz temporariamente a capacidade do cluster, mas não deve afetar a disponibilidade do cluster ou das aplicações.

Melhores práticas para tipos de nó de durabilidade Silver e Gold

Siga estas recomendações para gerir tipos de nós com durabilidade Silver ou Gold:

  • Mantenha sempre o estado de funcionamento do cluster e das aplicações e certifique-se de que as aplicações respondem a todos os eventos de ciclo de vida da réplica do Serviço (como a réplica na compilação está bloqueada) atempadamente.
  • Adote formas mais seguras de alterar o tamanho de uma VM (aumentar/reduzir verticalmente). Alterar o tamanho da VM de um conjunto de dimensionamento de máquinas virtuais requer um planeamento e cuidado cuidadosos. Para obter detalhes, veja Aumentar 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 de Ouro ou Prata ativado. O cluster irá introduzir o estado de erro se dimensionar abaixo deste limiar e terá de limpar manualmente o estado (Remove-ServiceFabricNodeState) dos nós removidos.
  • Cada conjunto de dimensionamento de máquinas virtuais com o nível de durabilidade Silver ou Gold tem de mapear para o seu próprio tipo de nó no cluster do Service Fabric. Mapear vários conjuntos de dimensionamento 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 elimine instâncias de VM aleatórias, utilize sempre a funcionalidade de dimensionamento de conjuntos de dimensionamento de máquinas virtuais. A eliminação de instâncias de VM aleatórias tem o potencial de criar desequilíbrios na instância da VM distribuídos por domínios de atualização e domínios de falha. Este desequilíbrio pode afetar negativamente a capacidade de balanceamento de carga dos sistemas entre as instâncias de serviço/Réplicas de serviço.
  • Se utilizar o Dimensionamento Automático, defina as regras de modo a que as operações de dimensionamento (remoção de instâncias de VM) sejam efetuadas apenas um nó de cada vez. O dimensionamento em mais do que uma instância de cada vez não é seguro.
  • Se eliminar ou desalocar VMs no tipo de nó primário, nunca reduza a contagem de VMs alocadas abaixo do que a camada de fiabilidade requer. Estas operações serão bloqueadas indefinidamente num 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 de Prata ou Ouro não podem ser reduzidos para Bronze.
  • A degradação dos tipos de nós com o nível de durabilidade de Ouro para Prata não é suportada.
  • Atualizar de Bronze para Prata ou Ouro pode demorar algumas horas.
  • Ao alterar o nível de durabilidade, certifique-se de que o atualiza na configuração da extensão do Service Fabric no recurso do conjunto de dimensionamento de máquinas virtuais e na definição do tipo de nó no recurso de cluster do Service Fabric. Estes valores têm de corresponder.

Outra consideração quando o planeamento de capacidade é o nível de fiabilidade do cluster, que determina a estabilidade dos serviços de sistema e do cluster global, conforme descrito na secção seguinte.

Características de fiabilidade do cluster

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

Importante

O nível de fiabilidade é definido ao 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 requerem um nível de fiabilidade de Prata (maior ou igual a cinco nós) ou superior.

O escalão de fiabilidade pode utilizar os seguintes valores:

  • Platinum – Serviços de sistema executados com a contagem de conjuntos de réplicas de destino de nove
  • Gold - Os serviços de sistema são executados com a contagem de conjuntos de réplicas de destino de sete
  • Silver – Serviços de sistema executados com a contagem de cinco conjuntos de réplicas de destino
  • Bronze – Os serviços de sistema são executados com a contagem de três conjuntos de réplicas de destino

Eis a recomendação sobre a escolha do escalão de fiabilidade. O número de nós de seed também está definido como o número mínimo de nós para um escalão de fiabilidade.

Número de nós Escalão de Fiabilidade
1 Não especifique o reliabilityLevel parâmetro: o sistema calcula-o.
3 Bronze
5 ou 6 Silver
7 ou 8 Gold
9 e para cima Platina

Quando aumenta ou diminui o tamanho do cluster (a soma das instâncias de VM em todos os tipos de nós), considere atualizar a fiabilidade do cluster de uma camada para outra. Esta ação aciona as atualizações de cluster necessárias para alterar a contagem de conjuntos de réplicas dos serviços de sistema. Aguarde pela conclusão da atualização antes de efetuar quaisquer outras alterações ao cluster, como adicionar nós. Pode monitorizar o progresso da atualização no Service Fabric Explorer ou ao executar Get-ServiceFabricClusterUpgrade

Planeamento de capacidade para fiabilidade

As necessidades de capacidade do cluster serão determinadas pelos seus requisitos específicos de carga de trabalho e fiabilidade. Esta secção fornece orientações gerais para o ajudar a começar a planear a capacidade.

Dimensionamento de máquinas virtuais

Para cargas de trabalho de produção, o tamanho de VM (SKU) recomendado é Standard D2_V2 (ou equivalente) com um mínimo de 50 GB de SSD local, 2 núcleos e 4 GiB de memória. Recomenda-se um mínimo de 50 GB de SSD local, no entanto, algumas cargas de trabalho (como as que executam contentores do Windows) exigirão discos maiores.

Por predefinição, o SSD local está configurado para 64 GB. O tamanho pode ser configurado na definição MaxDiskQuotaInMB da secção Diagnóstico das definições do cluster.

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

Para obter instruções sobre como ajustar as definições de cluster de um cluster autónomo alojado no Windows, veja Atualizar a configuração de um cluster autónomo

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

  • Não são suportados tamanhos de VM parciais/de núcleo único, como o Standard A0.
  • Série A Os tamanhos das VMs não são suportados por motivos de desempenho.
  • As VMs de baixa prioridade não são suportadas.
  • Os SKUs Expansíveis da Série B não são suportados.

Tipo de nó principal

As cargas de trabalho de produção no Azure requerem um mínimo de cinco nós primários (instâncias de VM) e o escalão de fiabilidade de Silver. Recomenda-se dedicar o tipo de nó primário do cluster aos serviços do sistema e utilizar restrições de colocação para implementar a sua aplicação em tipos de nó secundários.

As cargas de trabalho de teste no Azure podem executar um mínimo de um ou três nós primários. Para configurar um cluster de um nó, certifique-se de que a reliabilityLevel definição é omitida no modelo de Resource Manager (especificar o valor de cadeia vazia para reliabilityLevel não é suficiente). Se configurar o cluster de um nó configurado com portal do Azure, esta configuração é efetuada automaticamente.

Aviso

Os clusters de um nó são executados com uma configuração especial sem fiabilidade e onde o aumento horizontal não é suportado.

tipos de nós nãoprimários

O número mínimo de nós para um tipo de nó nãoprimário depende do nível de durabilidade específico do tipo de nó. Deve planear o número de nós (e o nível de durabilidade) com base no número de réplicas de aplicações ou serviços que pretende executar para o tipo de nó e consoante a carga de trabalho tenha estado ou sem estado. Tenha em atenção que pode aumentar ou diminuir o número de VMs num tipo de nó em qualquer altura depois de ter implementado o cluster.

Cargas de trabalho com estado

Para cargas de trabalho de produção com estado com coleções fiáveis do Service Fabric ou Reliable Actors, é recomendada uma contagem mínima e de réplica de destino de cinco. Com isto, no estado estável, acaba com uma réplica (a partir de um conjunto de réplicas) em cada domínio de falha e domínio de atualização. Em geral, utilize o nível de fiabilidade que definiu para os serviços de sistema como um guia para a contagem de réplicas que utiliza para os seus serviços com estado.

Cargas de trabalho sem estado

Para cargas de trabalho de produção sem estado, o tamanho mínimo do tipo de nó nãoprimário suportado é três para manter o quórum, no entanto é recomendado um tamanho de tipo de nó de cinco.

Passos seguintes

Antes de configurar o cluster, reveja as políticas de atualização do Not Allowed cluster para mitigar ter de recriar o cluster mais tarde devido a definições de configuração do sistema inalteráveis.

Para obter mais informações sobre o planeamento de clusters, consulte: