Partilhar via


Perspetiva do Well-Architected Framework no Azure Service Fabric

O Azure Service Fabric é uma plataforma de sistemas distribuídos que facilita o empacotamento, a implantação e o gerenciamento de microsserviços e contêineres escaláveis e confiáveis. Esses recursos são implantados em um conjunto conectado à rede de máquinas virtuais ou físicas, que é chamado de cluster .

Este artigo pressupõe que, como arquiteto, você revisou a árvore de decisão de computação e escolheu o Service Fabric como a plataforma de computação para sua carga de trabalho. As orientações neste artigo fornecem recomendações de arquitetura mapeadas de acordo com os princípios dos pilares do Well-Architected Framework.

Importante

Como usar este guia

Cada seção tem uma lista de verificação de projeto que apresenta áreas arquitetônicas de preocupação, juntamente com estratégias de design localizadas para o escopo da tecnologia.

Também estão incluídas recomendações para os recursos tecnológicos que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista exaustiva de todas as configurações disponíveis para o Azure Service Fabric e suas dependências. Em vez disso, listam as principais recomendações de acordo com as perspetivas de design. Use as recomendações para criar sua prova de conceito ou para otimizar seus ambientes existentes.

Arquitetura fundamental que demonstra as principais recomendações: arquitetura de microsserviços no Azure Service Fabric.

Âmbito da tecnologia

Esta análise concentra-se nas decisões inter-relacionadas para os seguintes recursos do Azure:

  • Service Fabric

Observação

Este guia de serviço baseia-se nas orientações encontradas no guia de serviço de Máquinas Virtuais e conjuntos de dimensionamento. Os nós do Service Fabric são apoiados por conjuntos de escala de VM, portanto, consulte esse guia de serviço para obter recomendações sobre como operar o back-end de computação para seus nós do Service Fabric.

Ao discutir considerações de arquitetura e recomendações de configuração com o Azure Service Fabric, é importante distinguir entre de um cluster e de carga de trabalho. A configuração de cluster é uma responsabilidade compartilhada entre o administrador de cluster do Service Fabric e seu provedor de recursos, enquanto a configuração de carga de trabalho é o domínio de um desenvolvedor. O Azure Service Fabric tem considerações e recomendações para ambas as funções.

Na lista de verificação de design e na lista de recomendações abaixo, são feitas indicações para indicar se cada opção é aplicável à arquitetura de cluster, arquitetura da carga de trabalho ou ambas.

Fiabilidade

O objetivo do pilar Confiabilidade é fornecer funcionalidade contínua, criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.

Os princípios de design de fiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos do sistema e ao sistema como um todo.

Lista de verificação de design

Inicie a sua estratégia de projeto com base na lista de verificação de revisão de projeto para Confiabilidade. Determine sua relevância para os requisitos do seu negócio, tendo em mente os [aspetos específicos da oferta]. Alargar a estratégia de modo a incluir mais abordagens, conforme necessário.

  • (Agrupamento) Determine o nível de confiabilidade apropriado para o seu cluster, com base na métrica geral de destino de confiabilidade para a carga de trabalho. O nível de confiabilidade do cluster que você identificar ditará o número mínimo de nós a serem implantados para o tipo de nó principal. Consulte a documentação de planejamento de capacidade para saber mais sobre como fazer essas determinações.
  • Para cargas de trabalho críticas, considere usar zonas de disponibilidade para os seus clusters do Service Fabric.
  • (Agrupamento) Para cenários de produção, use a SKU de cluster gerenciado padrão com uma camada de durabilidade Silver (5 VMs) ou superior. Este SKU oferece recursos de confiabilidade mais altos do que o SKU Básico, que deve ser usado para cenários de não produção.
  • (Cluster) Crie tipos adicionais de nós secundários para as suas cargas de trabalho, isolando diferentes tipos de tarefas. Isso pode ajudá-lo a separar os serviços front-end dos serviços back-end, permitindo que você gerencie e dimensione esses serviços de forma independente. Cada tipo de nó é suportado pelo seu próprio conjunto de escala.

Recomendações

Recomendação Benefício
(Agrupamento) O Gerenciamento de API (APIM) pode integrar diretamente ao Service Fabric. Considere usá-lo para expor e descarregar funcionalidades transversais para APIs hospedadas no cluster. O APIM é um gateway de aplicativo rico em recursos que ajuda você a publicar, gerenciar e monitorar APIs implantadas com segurança no cluster do Service Fabric.
(Carga de trabalho) Para cenários de carga de trabalho com estado, considere o uso do Reliable Services. O modelo de Serviços Confiáveis permite que seus serviços permaneçam ativos quando você enfrenta falhas no sistema ou problemas de rede, ou em casos em que os próprios serviços encontram falhas. Para serviços stateful, o seu estado é preservado quando ocorrem falhas.

Segurança

O objetivo do pilar Segurança é fornecer confidencialidade, integridade e disponibilidade garantias para a carga de trabalho.

Os princípios de design de segurança fornecem uma estratégia de design de alto nível para atingir essas metas, aplicando abordagens ao design técnico do Service Fabric.

Lista de verificação de design

Baseie-se sua estratégia de design na lista de verificação de revisão de design para Segurança.

  • (Cluster e carga de trabalho) Familiarize-se com as diretrizes de segurança do produto Service Fabric. Consulte práticas recomendadas de segurança, cenários de segurança de clustere de segurança de aplicativos e serviços do Service Fabric.
  • (Agrupamento) Aplique segmentação e controles de rede configurando NSGs para restringir o fluxo de tráfego entre sub-redes e tipos de nós.
  • (Agrupamento) Gerencie com segurança segredos de aplicativos e certificados de cliente usando ferramentas nativas. Os segredos do aplicativo devem ser gerenciados com o Repositório Secreto do Service Fabric e os certificados devem ser gerenciados com o Cofre da Chave.
  • (Agrupamento) Considere trazer seu próprio balanceador de carga, que permite usar um balanceador de carga interno e definir diferentes balanceadores de carga e NSGs para cada tipo de nó.
  • (Agrupamento) Controle com segurança o acesso ao cluster habilitando a integração do Microsoft Entra, permitindo que os usuários se autentiquem com suas credenciais do Entra. Como alternativa, você pode usar certificados de cliente e administrador de cluster. Não distribua os certificados de cliente de cluster entre os usuários do Service Fabric Explorer.
  • (Cluster e carga de trabalho) Crie um processo para monitorar a data de expiração de certificados de cliente.
  • (Cluster e carga de trabalho) Mantenha clusters separados para desenvolvimento, preparação e produção. Os ambientes de produção normalmente exigem controles de segurança mais rígidos do que os ambientes que não são de produção, e isolar os ambientes uns dos outros adiciona uma camada de segurança se um ambiente for comprometido.

Recomendações

Recomendação Benefício
(Agrupamento) Certifique-se de que as portas corretas estejam abertas para implantação de aplicativos e cargas de trabalho. Essa configuração garante que a comunicação entre os recursos do Service Fabric e o restante da carga de trabalho seja protegida.
(Agrupamento) Ao usar o Repositório Secreto do Service Fabric para distribuir segredos, use um certificado de codificação de dados separado para criptografar os valores. O uso de um certificado de codificação separado garante o isolamento entre certificados, reduzindo o risco de um único ponto de falha e permitindo um controle de acesso mais granular.
(Agrupamento) Aplique uma Lista de Controle de Acesso (ACL) ao certificado do cliente para o cluster do Service Fabric. O uso de uma ACL fornece um nível adicional de autenticação, permitindo um controle mais granular sobre quem pode acessar os certificados.
(Agrupamento) Use solicitações de recursos e limites para controlar o uso de recursos entre os nós do cluster. A imposição de limites de recursos ajuda a garantir que um serviço não consuma muitos recursos e prive outros serviços.
(Carga de trabalho) Inclua certificados de cliente em aplicativos do Service Fabric. Fazer com que seus aplicativos usem certificados de cliente para autenticação oferece oportunidades de segurança no nível do cluster e da carga de trabalho.
(Carga de trabalho) Autentique aplicativos do Service Fabric nos Recursos do Azure usando Identidade Gerenciada. O uso da Identidade Gerenciada permite que você gerencie com segurança as credenciais em seu código para autenticação em vários serviços sem salvá-las localmente em uma estação de trabalho do desenvolvedor ou no controle do código-fonte.
(Cluster e carga de trabalho) Ao hospedar aplicativos não confiáveis, use a tecnologia de sandboxing mais forte aplicável, remova o acesso ao tempo de execução do Service Fabric e siga outras práticas recomendadas Service Fabric. Seguir as práticas recomendadas fornecidas ajuda a garantir que apenas aplicativos confiáveis e verificados tenham permissão para interagir com componentes críticos, limitando o impacto que aplicativos não confiáveis com vulnerabilidades ou códigos mal-intencionados podem ter na operação normal do cluster.

Otimização de Custos

A Otimização de Custos concentra-se em detetar padrões de gastos, priorizar investimentos em áreas críticas e otimizar em outras para atender ao orçamento da organização enquanto atende aos requisitos de negócios.

Os princípios de design para otimização de custos fornecem uma estratégia de design de alto nível para alcançar esses objetivos e realizar trocas conforme necessário no design técnico relacionado ao Service Fabric e ao seu ambiente.

Lista de verificação de design

Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Otimização de Custos para investimentos. Ajuste o design para que a carga de trabalho esteja alinhada com o orçamento alocado para a carga de trabalho. Seu design deve usar os recursos certos do Azure, monitorar investimentos e encontrar oportunidades para otimizar ao longo do tempo.

  • (Carga de trabalho e cluster) Estime o custo inicial usando a calculadora de preços do Azure. Você será cobrado apenas pelas instâncias de computação, armazenamento, recursos de rede e endereços IP escolhidos ao criar um cluster do Service Fabric. Não há cobrança pelo serviço oferecido pelo próprio Service Fabric. Para ajudar a começar a modelagem de custos, consulte o exemplo de processo de cálculo de custos para o planejamento de aplicativos.
  • (Agrupamento) Selecione as SKUs de VM apropriadas. Escolha VMs com base nas características da carga de trabalho. A carga de trabalho da CPU é intensiva ou executa processos interruptíveis?
  • (Agrupamento) Selecione os códigos de referência de agrupamento apropriados. Use Standard para ambientes de produção e Basic para ambientes de não-produção, a menos que haja um motivo convincente para fazer o contrário. Use tipos e tamanhos de nó apropriados em cada ambiente.
  • (Cluster e carga de trabalho) Selecione os níveis e tamanhos de disco gerenciado apropriados. Consulte o guia de serviço do WAF para obter informações sobre armazenamento em disco. Evite usar SKUs de VM com ofertas de disco temporário para evitar pagar por recursos desnecessários.

Recomendações

Recomendação Benefício
(Agrupamento) Se não tiveres necessidade de manter estado, considera escolher um SKU de VM com suporte de disco temporário. Aproveite ao máximo os recursos pelos quais está a pagar. Usar um disco temporário em vez de um disco gerido pode reduzir os custos de cargas de trabalho sem estado.
(Cluster e carga de trabalho) Alinhe de seleção de SKU de VM com os requisitos de carga de trabalho. Certifique-se de ter identificado os tipos de nó corretos, , que estão hospedados nos conjuntos de escala, para atender às suas necessidades. Adequar sua seleção às demandas de carga de trabalho ajuda a evitar pagar por SKUs de VM caras que talvez não sejam necessárias.
(Cluster e carga de trabalho) Alinhe de seleção de tipo de disco com os requisitos de carga de trabalho. Escolher o tipo de disco gerenciado correto ajuda a evitar pagar por tipos caros que talvez não sejam necessários.

Excelência Operacional

A Excelência Operacional concentra-se principalmente em procedimentos para práticas de desenvolvimento de , observabilidade e gestão de lançamentos.

Os princípios de design de Excelência Operacional fornece uma estratégia de design de alto nível com o objetivo de alcançar esses objetivos dos requisitos operacionais do volume de trabalho.

Lista de verificação de design

Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Excelência Operacional para definir processos de observabilidade, teste e implantação relacionados ao Service Fabric.

  • (Cluster e carga de trabalho) Integre seus componentes do Service Fabric, incluindo clusters, infraestrutura relacionada e o próprio aplicativo, em sua plataforma de monitoramento e alerta. Consulte o artigo práticas recomendadas de monitorização para obter orientações detalhadas.
  • (Cluster e carga de trabalho) Use o modelo de integridade do Service Fabric para monitorar continuamente a integridade da sua solução. Essa ferramenta deve complementar o seu modelo geral de saúde da carga de trabalho
  • (Cluster e carga de trabalho) Crie um processo para monitorar a data de expiração de certificados de cliente. Por exemplo, o Key Vault oferece um recurso que envia um e-mail quando x% da vida útil do certificado tiver decorrido.
  • (Cluster e carga de trabalho) Use a integração contínua e as práticas de implantação contínua para gerenciar suas implantações de cluster. Use uma ferramenta criada propositadamente como o Azure Pipelines ou o Github Actions para gerenciar seus pipelines de CI/CD, o que permite gerenciar centralmente todas as suas implantações de carga de trabalho em todos os ambientes com estratégias adequadas de controle do código-fonte.

Recomendações

Recomendação Benefício
(Carga de trabalho) Use o Application Insights para monitorar suas cargas de trabalho. O Application Insights fornece monitoramento abrangente de desempenho de aplicativos (APM) para aplicativos Web ativos, permitindo que você colete e analise a telemetria de aplicativos, aprimorando a integridade e o monitoramento de desempenho de aplicativos.
(Cluster e carga de trabalho) Use Azure Monitor para monitorar eventos de infraestrutura de cluster e contêiner. O Azure Monitor fornece recursos abrangentes de monitoramento e diagnóstico, permitindo que você colete e analise logs e métricas de seus aplicativos e da infraestrutura do Azure. O Azure Monitor integra-se bem com a plataforma Azure, incluindo o Service Fabric.
(Agrupamento) Implemente políticas de integridade de cluster apropriadas como parte de sua modelagem de integridade. As políticas permitem personalizar como as falhas são interpretadas de uma perspetiva de integridade do cluster. Por exemplo, pode-se definir a porcentagem máxima tolerada de nós que podem não estar funcionais antes que o cluster seja considerado em erro.
(Agrupamento) Implemente políticas de integridade de de tipo de aplicativo e serviço apropriadas como parte de sua modelagem de integridade. A política de integridade do aplicativo descreve como a avaliação de eventos e agregação de estados filhos é feita para aplicativos e seus filhos. O Service Fabric assume que a entidade não está íntegra se tiver um relatório de integridade ou um filho no estado de integridade de aviso ou erro.
(Cluster e carga de trabalho) Use do Azure Chaos Studio para injetar falhas em sua solução como parte de sua estratégia de teste. A introdução propositada de avarias na sua solução irá ajudá-lo a identificar potenciais pontos de falha e a praticar as suas medidas de resposta a incidentes.
(Cluster e carga de trabalho) Use o Azure Pipelines para sua solução de integração e implantação contínua (CI/CD). Usar uma solução de CI/CD como o Azure Pipelines ajuda você a gerenciar suas implantações de forma eficiente, consistente e segura. O Azure Pipelines tem suporte nativo para implantações do Service Fabric.

Eficiência de desempenho

A Eficiência de Desempenho tem a ver manter a experiência do usuário, mesmo quando há um aumento na de carga por meio do gerenciamento de capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar potenciais gargalos e otimizar para obter o máximo desempenho.

Os princípios de Eficiência de Desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade em relação ao uso esperado.

Lista de verificação de design

Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Eficiência de desempenho. Defina uma linha de base baseada em indicadores-chave de desempenho para o Service Fabric.

  • (Agrupamento) Aproveite a otimização do desempenho e os recursos de aprimoramento conforme exigido pela carga de trabalho. Consulte o guia de serviço VM para obter recomendações relacionadas à plataforma de computação subjacente.
  • (Agrupamento) Implante VMs e tamanhos de disco que atendam aos seus requisitos de desempenho sem incorrer em despesas desnecessárias por capacidade não utilizada. Certifique-se de que você será capaz de adicionar capacidade facilmente para atender aos seus planos de crescimento futuros.
  • (Carga de trabalho) Entenda os modelos de programação suportados pelo Service Fabric e escolha o melhor modelo para seus requisitos de carga de trabalho. Cada modelo de programação tem vantagens e desvantagens exclusivas, e seus requisitos específicos de carga de trabalho podem se alinhar com um modelo melhor do que outros.
  • (Carga de trabalho) Use padrões de arquitetura de nuvem estabelecidos para projetar sua carga de trabalho. Microsserviços, orientados a eventose processamento em segundo plano são padrões de arquitetura que são bons candidatos para os projetos de aplicativos Service Fabric.

Recomendação

Recomendação Benefício
(Cluster) Exclua os processos do Service Fabric em execução em suas VMs do Windows do Windows Defender se suas políticas de segurança permitirem excluir processos e caminhos para software de código aberto. A exclusão de processos do Service Fabric reduz o impacto no desempenho e a sobrecarga de consumo de recursos incorridos pelo Windows Defender
(Agrupamento) Considere usar de dimensionamento automático para seu cluster para habilitar a adição ou redução de nós sob demanda em um tipo de nó secundário. O dimensionamento automático reduz a sobrecarga de gerenciamento e o potencial impacto nos negócios, monitorando e otimizando a quantidade de nós que atendem sua carga de trabalho.
(Agrupamento) Considere usar Rede Acelerada. A rede acelerada permite um caminho de alto desempenho que ignora o host no percurso de dados, o que reduz a latência, a instabilidade e a utilização da CPU para as requisições de rede mais exigentes.
(Agrupamento) Considere usar a criptografia no host em vez da Criptografia de Disco do Azure (ADE). A criptografia no host melhora o ADE dando suporte a todos os tipos de sistema operacional e imagens, incluindo imagens personalizadas, para suas VMs criptografando dados no serviço de Armazenamento do Azure.
(Carga de trabalho) Implemente os modelos de programação do Service Fabric mais adequados para sua carga de trabalho. Escolher um modelo de programação apropriado permite que você aproveite os recursos internos que suportam requisitos de carga de trabalho, como gerenciamento de estado, simultaneidade e reutilização de sua base de código existente. Você também pode garantir que seus padrões de implantação sejam mantidos selecionando um modelo de programação que esteja alinhado com esses padrões.
(Cluster e carga de trabalho) Implemente o dimensionamento para atender às suas necessidades de negócios. Encontre o mecanismo de dimensionamento certo para sua carga de trabalho.. Você pode usar o dimensionamento para habilitar a utilização máxima de recursos para sua solução.

Políticas do Azure

O Azure fornece um extenso conjunto de políticas internas relacionadas ao Service Fabric e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio da Política do Azure. Por exemplo, pode verificar se:

  • Os Clusters do Service Fabric são configurados para terem Redundância de Zona.
  • Os clusters do Service Fabric têm a propriedade ClusterProtectionLevel definida como EncryptAndSign.
  • Os clusters do Service Fabric são configurados para usar apenas o Azure Ative Directory para autenticação de cliente.

Para obter uma governança abrangente, revise as definições internas da Política do Azure para o Service Fabric e outras políticas que possam afetar a segurança da [área de infraestrutura de nuvem].

Recomendações do Azure Advisor

O Azure Advisor é um consultor de nuvem personalizado que ajuda você a seguir as práticas recomendadas para otimizar suas implantações do Azure. Aqui estão algumas recomendações que podem ajudá-lo a melhorar a confiabilidade, a segurança, a relação custo-benefício, o desempenho e a excelência operacional do Service Fabric.

Confira o artigo de opções de configuração de cluster gerenciado do Azure Service Fabric para obter uma lista de todas as opções que você tem ao criar e manter seu cluster.

Analise a de fundamentos da arquitetura de aplicativos do Azure para obter orientação sobre como desenvolver suas cargas de trabalho. Embora o Service Fabric possa ser usado apenas como uma plataforma de hospedagem de contêiner, o uso de cargas de trabalho bem arquitetadas aproveita toda a funcionalidade do Service Fabric.

Use estas recomendações ao criar seu cluster gerenciado do Service Fabric usando um modelo ARM ou por meio do portal do Azure: