Compartilhar via


Perspectiva 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 escaloná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 seu workload. As diretrizes neste artigo fornecem recomendações arquitetônicas que são mapeadas para os princípios dos pilares do Well-Architected Framework.

Importante

Como usar este guia

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

Também estão incluídas recomendações para os recursos de tecnologia que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista completa de todas as configurações disponíveis para o Azure Service Fabric e suas dependências. Eles listam as principais recomendações mapeadas para as perspectivas de design. Use as recomendações para criar sua prova de conceito ou otimizar seus ambientes existentes.

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

Escopo de tecnologia

Esta revisão se concentra nas decisões interrelacionadas para os seguintes recursos do Azure:

  • Service Fabric

Nota

Este guia de serviço se baseia nas diretrizes 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 dimensionamento 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 cluster e carga de trabalho. A configuração do cluster é uma responsabilidade compartilhada entre o administrador do 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 chamadas para indicar se cada opção é aplicável à arquitetura do cluster, à arquitetura da carga de trabalho ou a ambas.

Fiabilidade

A finalidade do pilar confiabilidade é fornecer funcionalidade contínua criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.

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

Lista de verificação de design

Comece sua estratégia de design com base na lista de verificação de revisão de design para confiabilidade. Determine sua relevância para seus requisitos de negócios, tendo em mente os [aspectos específicos da oferta]. Estenda a estratégia para incluir mais abordagens conforme necessário.

  • (Cluster) Determine o nível de confiabilidade apropriado para o seu cluster com base na métrica geral de confiabilidade desejada para a carga de trabalho. O nível de confiabilidade do cluster que você identificar determinará o número mínimo de nós a serem implantados para seu tipo de nó primário. Consulte a documentação de planejamento de capacidade para saber mais sobre como fazer essas determinações.
  • (Cluster) Para cargas de trabalho críticas, considere usar Zonas de Disponibilidade para seus clusters Service Fabric.
  • (Cluster) Para cenários de produção, use o SKU do cluster gerenciado Standard com um camada de durabilidade Prata (5 VMs) ou superior. Essa SKU oferece funcionalidades de confiabilidade mais altas do que a SKU Básica, que deve ser usada para cenários de não produção.
  • (Cluster) Crie tipos de nó secundário adicionais para suas cargas de trabalho e isole diferentes tipos de tarefas. Isso pode ajudá-lo a separar os serviços de front-end dos serviços de back-end, permitindo que você gerencie e dimensione esses serviços de forma independente. Cada tipo de nó é apoiado por seu próprio conjunto.

Recomendações

Recomendação Benefício
(Cluster) O API Management (APIM) pode ser integrado diretamente ao Service Fabric. Considere usá-la para expor e transferir a funcionalidade transversal das APIs hospedadas no cluster. O APIM é um gateway de aplicativo avançado em recursos que ajuda você a publicar, gerenciar e monitorar as APIs implantadas com segurança no cluster do Service Fabric.
(Carga de trabalho) Para cenários de carga de trabalho com estado, considere usar Reliable Services. O modelo de Reliable Services 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 defeitos. Para serviços com estado, seu estado é preservado quando ocorrem problemas de funcionamento.

Segurança

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

Os princípios de design do Security 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 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 do Service Fabric. Consulte práticas recomendadas de segurança, cenários de segurança do cluster e segurança de serviço e aplicativo do Service Fabric.
  • (Cluster) Aplique segmentação e controles de rede configurando NSGs para restringir o fluxo de tráfego entre sub-redes e tipos de nós.
  • (Cluster) Gerencie com segurança os segredos do aplicativo e os certificados do cliente usando ferramentas nativas. Os segredos do aplicativo devem ser gerenciados com o Repositório de Segredos do Service Fabric e os certifcados devem ser gerenciados com o Key Vault.
  • (Cluster) Considere trazer seu próprio Load Balancer, o que permite que você use um balanceador de carga interno e defina diferentes Load Balancers e NSGs para cada tipo de nó.
  • (Cluster) 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 do cluster entre os usuários do Service Fabric Explorer.
  • (Cluster e carga de trabalho) Crie um processo para monitorar a data de validade dos certificados do cliente.
  • (Cluster e carga de trabalho) Mantenha clusters separados para desenvolvimento, preparo e produção. Os ambientes de produção normalmente exigem controles de segurança mais rigorosos do que ambientes de não produção e isolar ambientes uns dos outros adiciona uma camada de secuirty se um ambiente estiver comprometido.

Recomendações

Recomendação Benefício
(Cluster) 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.
(Cluster) Ao usar o Repositório de Segredos 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 cercamento separado garante o isolamento entre certificados, reduzindo o risco de um único ponto de falha e permitindo um controle de acesso mais granular.
(Cluster) Aplique uma ACL (Lista de Controle de Acesso) em seu certificado 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.
(Cluster) Use solicitações e limites de recursos para controlar o uso de recursos nos nós do seu cluster. A imposição de limites de recursos ajuda a garantir que um serviço não consuma muitos recursos e deixe outros serviços com fome.
(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) Autenticar aplicativos do Service Fabric para os 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 área restrita mais forte aplicável, remova o acesso ao runtime do Service Fabric e siga outras práticas recomendadas do Service Fabric . Seguir as práticas recomendadas fornecidas ajuda a garantir que apenas aplicativos confiáveis e verificados possam interagir com componentes críticos, limitando o impacto que aplicativos não confiáveis com vulnerabilidades ou código mal-intencionado podem ter na operação normal do cluster.

Otimização de custos

A otimização de custos se concentra na na detecção de padrões de gastos, na priorização de investimentos em áreas críticas e na otimização de outras para atender ao orçamento da organização e, ao mesmo tempo, aos requisitos comerciais.

Os princípios de design da Otimização de Custos fornecem uma estratégia de design de alto nível para atingir essas metas e fazer compensações conforme necessário no design técnico relacionado ao Service Fabric e seu ambiente.

Lista de verificação de design

Comece sua estratégia de design com base na lista de verificação de revisão de design para otimização de custos em investimentos. Ajuste o design para que a carga de trabalho seja alinhada com o orçamento alocado para a carga de trabalho. Seu design deve usar os recursos corretos 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ê só é cobrado 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á nenhum custo para o 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 custo para o planejamento de aplicativos.
  • (Cluster) Selecione SKUs de VM apropriados. Escolha VMs com base nas características da carga de trabalho. A CPU da carga de trabalho é intensiva ou executa processos interruptíveis?
  • (Cluster) Selecione SKUs de cluster apropriadas. Use o Standard para ambientes de produção e Básico 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ós apropriados em cada ambiente.
  • (Cluster e carga de trabalho) Selecione as camadas e tamanhos de disco gerenciado apropriados. Reveja o guia de serviço do WAF para armazenamento em disco. Evite usar SKUs de VM com ofertas de disco temporário para não pagar por recursos desnecessários.

Recomendações

Recomendação Benefício
(Cluster) Se você não tiver requisitos para manter o estado, considere escolher um SKU de VM com suporte de disco temporário. Aproveite ao máximo os recursos pelos quais você está pagando. Usar um disco temporário em vez de um disco gerenciado pode reduzir os custos de cargas de trabalho sem estado.
(Cluster e carga de trabalho) Alinhe a seleção do SKU da VM com os requisitos da carga de trabalho. Certifique-se de ter identificado os tipos de nós corretos, que estão hospedados em conjuntos de escala, para atender aos seus requisitos. Corresponder sua seleção às suas demandas de carga de trabalho ajuda você a evitar pagar por SKUs de VM caras que talvez você não precise.
(Cluster e carga de trabalho) Alinhe a seleção do tipo de disco com os requisitos de carga de trabalho. Escolher o tipo de disco gerenciado correto ajuda você a evitar pagar por tipos caros que talvez você não precise.

Excelência Operacional

A Excelência Operacional concentra-se principalmente em procedimentos para práticas de desenvolvimento, observabilidade e gerenciamento de versões.

Os princípios de design da Excelência Operacional fornecem uma estratégia de design de alto nível para atingir essas metas para os requisitos operacionais da carga de trabalho.

Lista de verificação de design

Inicie sua estratégia de design com base na lista de verificação para a Excelência Operacional, definindo 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 alertas. Consulte o artigo de práticas recomendadas de monitoramento para diretrizes detalhadas.
  • (Cluster e carga de trabalho) Use o modelo de integridade do Service Fabric para monitorar continuamente a integridade da solução. Esta ferramenta deve complementar seu modelo de integridade da carga de trabalho geral
  • (Cluster e carga de trabalho) Crie um processo para monitorar a data de validade dos certificados do cliente. Por exemplo, o Key Vault oferece um recurso que envia um e-mail quando x% do prazo de validade do certificado tiver passado.
  • (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 de propósito, como o Azure Pipelines ou o Github Actions, para gerenciar seus pipelines de CI/CD, o que permite gerenciar centralmente todas as implantações de carga de trabalho em todos os ambientes com estratégias de controle do código-fonte adequadas.

Recomendações

Recomendação Benefício
(Carga de trabalho) Use o Application Insights para monitorar suas cargas de trabalho. O Application Insights fornece APM (monitoramento abrangente de desempenho de aplicativos) para aplicativos Web dinâmicos, permitindo que você colete e analise a telemetria do aplicativo, melhorando o monitoramento de desempenho e integridade do aplicativo.
(Cluster e carga de trabalho) Use o 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 à plataforma do Azure, incluindo o Service Fabric.
(Cluster) 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 perspectiva de saúde do cluster. Por exemplo, você pode definir o percentual máximo tolerado de nós que podem não estar saudáveis antes que o cluster seja considerado em estado de erro.
(Cluster) Implemente políticas de saúde de tipo de aplicativo e serviço como parte da sua modelagem de integridade. A política de integridade do aplicativo descreve como a avaliação da agregação dos estados de eventos e filhos é feita para aplicativos e seus filhos. O Service Fabric suporá que a entidade não está íntegra se ela tiver um relatório de integridade ou um filho no estado de integridade com erro ou aviso.
(Cluster e carga de trabalho) Use o Azure Chaos Studio para injetar defeitos em sua solução como parte de sua estratégia de teste. A introdução proposital de defeitos em sua solução ajudará você a identificar possíveis pontos de falha e a praticar as medidas de resposta a incidentes.
(Cluster e carga de trabalho) Use Azure Pipelines para sua solução de integração e implantação contínua (CI/CD). O uso de 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

Eficiência de desempenho significa manter a experiência do usuário mesmo quando há um aumento na carga por meio do gerenciamento da capacidade. A estratégia inclui dimensionamento de recursos, identificação e otimização de possíveis gargalos e otimização para o desempenho de pico.

Os princípios de design 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

Comece sua estratégia de design com base na lista de verificação de revisão de design para eficiência de desempenho. Defina uma linha de base baseada nos principais indicadores de desempenho do Service Fabric.

  • (Cluster) Aproveite a otimização de desempenho e os recursos de aprimoramento, conforme exigido pela carga de trabalho. Consulte o guia de serviço da VM para obter recomendações relacionadas à plataforma de computação subjacente.
  • (Cluster) Implante tamanhos de VM e disco que atendam aos seus requisitos de perfomance sem incorrer em despesas desnecessárias para capacidade não utilizada. Certifique-se de que você será capaz de adicionar facilmente capacidade para atender aos seus planos de crescimento futuros.
  • (Carga de trabalho) Entenda os modelos de programação compatíveis com o 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 de carga de trabalho específicos podem se alinhar a um modelo melhor do que outros.
  • (Carga de trabalho) Use padrões de arquitetura de nuvem estabelecidos para projetar sua carga de trabalho. Padrões de arquitetura de microsserviços, baseados em evento e processamento em segundo plano são todos bons candidatos para designs de aplicativos do Service Fabric.

Recomendação

Recomendação Benefício
(Cluster) Excluir os processos do Service Fabric em execução em suas VMs windows do Windows Defender se suas políticas de segurança permitirem que você exclua processos e caminhos para software de software livre. A exclusão de processos do Service Fabric reduz o impacto no desempenho e a sobrecarga de consumo de recursos incorrida pelo Windows Defender
(Cluster) Considere usar o dimensionamento automático no seu cluster para permitir 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 comercial ao monitorar e otimizar o número de nós que atendem à carga de trabalho.
(Cluster) Considere usar a rede acelerada. A rede acelerada permite um caminho de alto desempenho que ignora o host do caminho de dados, o que reduz a latência, a instabilidade e a utilização da CPU para as cargas de trabalho de rede mais exigentes.
(Cluster) Considere usar criptografia no host em vez do Azure Disk Encryption (ADE). A criptografia no host melhora no 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 dão suporte a requisitos de carga de trabalho, como gerenciamento de estado, simultaneidade e reutilização da 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 se alinhe a esses padrões.
(Cluster e carga de trabalho) Implemente o dimensionamento para atender aos seus requisitos de negócios. Encontrar o mecanismo de dimensionamento correto 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 amplo conjunto de políticas internas relacionadas ao Service Fabric e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio do Azure Policy. Por exemplo, você pode verificar se:

  • Os Clusters do Service Fabric são configurados para serem com 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 Active Directory para autenticação de cliente.

Para uma governança abrangente, analise as definições internas da política do Azure para o Service Fabric e outras políticas que podem afetar a segurança da [cloud-infrastructure-area].

Recomendações do Assistente do Azure

O Assistente do Azure é 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, o custo-benefício, o desempenho e a excelência operacional do Service Fabric.

Confira o artigo 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 o cluster.

Examine os conceitos básicos da arquitetura de aplicativo do Azure para obter diretrizes sobre como desenvolver suas cargas de trabalho. Embora o Service Fabric possa ser usado apenas como uma plataforma de hospedagem de contêineres, o uso de cargas de trabalho bem arquitetas aproveita a funcionalidade completa do Service Fabric.

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