Revisão do Azure Well-Architected Framework - 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.
Há dois modelos de clusters no Azure Service Fabric: clusters padrão e clusters gerenciados.
Os clusters padrão exigem que você defina um recurso de cluster juntamente com vários recursos de suporte. Esses recursos devem ser configurados corretamente na implantação e mantidos corretamente durante todo o ciclo de vida do cluster. Caso contrário, o cluster e seus serviços não funcionarão corretamente.
Os clusters gerenciados simplificam suas operações de implantação e gerenciamento. O modelo de cluster gerenciado consiste em um único recurso de cluster gerenciado do Service Fabric que encapsula e abstrai os recursos subjacentes.
Este artigo discute principalmente o modelo de cluster gerenciado para simplificar. No entanto, os textos explicativos são feitos para quaisquer considerações especiais que se apliquem ao modelo de cluster padrão.
Neste artigo, você aprenderá as práticas recomendadas de arquitetura para o Azure Service Fabric. A orientação baseia-se nos cinco pilares da excelência arquitetónica:
- Fiabilidade
- Segurança
- Otimização de custos
- Excelência operacional
- Eficiência de desempenho
Pré-requisitos
Compreender os pilares do Well-Architected Framework pode ajudar a produzir uma arquitetura de nuvem de alta qualidade, estável e eficiente. Consulte a página de descrição geral do Azure Well-Architected Framework para rever os cinco pilares da excelência arquitetónica.
Analisar os principais conceitos do Azure Service Fabric e da arquitetura de microsserviços pode ajudá-lo a entender o contexto das práticas recomendadas fornecidas neste artigo.
Fiabilidade
As seções a seguir abordam considerações de design e recomendações de configuração, específicas para o Azure Service Fabric e confiabilidade.
Ao discutir a confiabilidade com o Azure Service Fabric, é importante distinguir entre confiabilidade de cluster e confiabilidade de carga de trabalho. A confiabilidade do cluster é uma responsabilidade compartilhada entre o administrador do cluster do Service Fabric e seu provedor de recursos, enquanto a confiabilidade da 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, os textos explicativos são feitos para indicar se cada opção é aplicável à arquitetura de cluster, arquitetura de carga de trabalho ou ambas.
Para obter mais informações sobre a confiabilidade do cluster do Azure Service Fabric, consulte a documentação de planejamento de capacidade.
Para obter mais informações sobre a confiabilidade da carga de trabalho do Azure Service Fabric, consulte o subsistema Confiabilidade incluído na arquitetura do Service Fabric.
Lista de verificação de estruturação
À medida que você faz escolhas de design para o Azure Service Fabric, revise os princípios de design para adicionar confiabilidade à arquitetura.
- Arquitetura de cluster: use SKU padrão para cenários de produção. Cluster padrão: use o nível de durabilidade Silver (5 VMs) ou superior para cenários de produção.
- Arquitetura de cluster: para cargas de trabalho críticas, considere o uso de zonas de disponibilidade para seus clusters do Service Fabric.
- Arquitetura de cluster: para cenários de produção, use o balanceador de carga de camada padrão. Os clusters gerenciados criam um Balanceador de Carga Padrão público do Azure e um nome de domínio totalmente qualificado com um IP público estático para os tipos de nó primário e secundário. Você também pode trazer seu próprio balanceador de carga, que suporta balanceadores de carga SKU Básico e Padrão.
- Arquitetura de cluster: crie tipos de nó secundários adicionais para suas cargas de trabalho.
Recomendações
Explore a tabela de recomendações a seguir para otimizar sua configuração do Azure Service Fabric para confiabilidade do serviço:
Recomendação do Azure Service Fabric | Benefício |
---|---|
Arquitetura de cluster: use SKU padrão para cenários de produção. | Esse nível garante que o provedor de recursos mantenha a confiabilidade do cluster. Cluster padrão: um cluster gerenciado por SKU padrão fornece o equivalente ao nível de durabilidade Silver. Para conseguir isso usando o modelo de cluster padrão, você precisará usar 5 VMs (ou mais). |
Arquitetura de cluster: considere o uso de zonas de disponibilidade para seus clusters do Service Fabric. | O cluster gerenciado do Service Fabric oferece suporte a implantações que abrangem várias zonas de disponibilidade para fornecer resiliência de zona. Essa configuração garantirá alta disponibilidade dos serviços críticos do sistema e de seus aplicativos para proteger contra pontos únicos de falha. |
Arquitetura de cluster: considere usar o Gerenciamento de API do Azure para expor e descarregar a funcionalidade transversal para APIs hospedadas no cluster. | O Gerenciamento de API pode se integrar diretamente ao Service Fabric. |
Arquitetura de carga de trabalho: para cenários de carga de trabalho com monitoração de estado, considere o uso de Serviços Confiáveis. | O modelo de Serviços Confiáveis permite que seus serviços permaneçam ativos mesmo em ambientes não confiáveis onde suas máquinas falham ou atingem problemas de rede, ou em casos em que os próprios serviços encontram erros e falham ou falham. Para serviços com monitoração de estado, seu estado é preservado mesmo na presença de falhas de rede ou outras. |
Para mais sugestões, consulte Princípios do pilar da fiabilidade.
Segurança
As seções a seguir abordam considerações de design e recomendações de configuração, específicas para o Azure Service Fabric e segurança.
Ao discutir a segurança com o Azure Service Fabric, é importante distinguir entre segurança de cluster e segurança de carga de trabalho. A segurança do cluster é uma responsabilidade compartilhada entre o administrador do cluster do Service Fabric e seu provedor de recursos, enquanto a segurança da 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, os textos explicativos são feitos para indicar se cada opção é aplicável à arquitetura de cluster, arquitetura de carga de trabalho ou ambas.
Para obter mais informações sobre a segurança de cluster do Azure Service Fabric, confira Cenários de segurança de cluster do Service Fabric.
Para obter mais informações sobre a segurança da carga de trabalho do Azure Service Fabric, consulte a segurança do aplicativo e do serviço do Service Fabric.
Lista de verificação de estruturação
À medida que você faz escolhas de design para o Azure Service Fabric, revise os princípios de design para adicionar segurança à arquitetura.
- Arquitetura de cluster: verifique se os NSG (Network Security Groups) estão configurados para restringir o fluxo de tráfego entre sub-redes e tipos de nós. Certifique-se de que as portas corretas estejam abertas para implantação de aplicativos e cargas de trabalho.
- Arquitetura de cluster: 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.
- Arquitetura de cluster: implante certificados de cliente adicionando-os ao Cofre de Chaves do Azure e fazendo referência ao URI em sua implantação.
- Arquitetura de cluster: habilite a integração do Microsoft Entra para seu cluster para garantir que os usuários possam acessar o Service Fabric Explorer usando suas credenciais do Microsoft Entra. Não distribua os certificados de cliente de cluster entre os usuários para acessar o Explorer.
- Arquitetura de cluster: para autenticação de cliente, use certificados de cliente admin e somente leitura e/ou autenticação do Microsoft Entra.
- Arquiteturas de cluster e carga de trabalho: crie um processo para monitorar a data de expiração dos certificados de cliente.
- Arquiteturas de cluster e carga de trabalho: mantenha clusters separados para desenvolvimento, preparo e produção.
Recomendações
Considere as seguintes recomendações para otimizar sua configuração do Azure Service Fabric para segurança:
Recomendação do Azure Service Fabric | Benefício |
---|---|
Arquitetura de cluster: verifique se os NSG (Network Security Groups) estão configurados para restringir o fluxo de tráfego entre sub-redes e tipos de nós. | Por exemplo, você pode ter uma instância de Gerenciamento de API (uma sub-rede), uma sub-rede de front-end (expondo um site diretamente) e uma sub-rede de back-end (acessível apenas para frontend). |
Arquitetura de cluster: implante certificados do Key Vault em conjuntos de dimensionamento de máquinas virtuais de cluster do Service Fabric. | Ao centralizar o armazenamento dos segredos das aplicações no Azure Key Vault, pode controlar a distribuição dos mesmos. O Key Vault reduz grandemente as possibilidades de haver fugas de segredos acidentais. |
Arquitetura de cluster: aplique uma ACL (Lista de Controle de Acesso) ao certificado do cliente para o cluster do Service Fabric. | O uso de uma ACL fornece um nível adicional de autenticação. |
Arquitetura de cluster: use solicitações e limites de recursos para controlar o uso de recursos nos 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. |
Arquitetura da carga de trabalho: criptografe os valores secretos do pacote do Service Fabric. | A criptografia em seus valores secretos fornece um nível adicional de segurança. |
Arquitetura de 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. |
Arquitetura de carga de trabalho: autentique aplicativos do Service Fabric nos Recursos do Azure usando a 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. |
Arquiteturas de cluster e carga de trabalho: siga as práticas recomendadas do Service Fabric ao hospedar aplicativos não confiáveis. | Seguir as melhores práticas fornece um padrão de segurança a ser seguido. |
Para mais sugestões, consulte Princípios do pilar de segurança.
O Azure Advisor ajuda você a garantir e melhorar a segurança do Azure Service Fabric. Você pode revisar as recomendações na seção Azure Advisor deste artigo.
Definições de política
O Azure Policy ajuda a manter os padrões organizacionais e a avaliar a conformidade em todos os seus recursos. Lembre-se das seguintes políticas internas ao configurar o Azure Service Fabric:
- Os clusters do Service Fabric devem ter a propriedade ClusterProtectionLevel definida como
EncryptAndSign
. Esse é o valor padrão para clusters gerenciados e não pode ser alterado. Cluster padrão: certifique-se de definir ClusterProtectionLevel comoEncryptAndSign
. - Os clusters do Service Fabric só devem usar a ID do Microsoft Entra para autenticação de cliente.
Todas as definições de política internas relacionadas ao Azure Service Fabric estão listadas em Políticas internas - Service Fabric.
Otimização de custos
As seções a seguir abordam considerações de design e recomendações de configuração, específicas para o Azure Service Fabric e otimização de custos.
Ao discutir a otimização de custos com o Azure Service Fabric, é importante distinguir entre o custo dos recursos de cluster e o custo dos recursos de carga de trabalho. Os recursos de cluster são uma responsabilidade compartilhada entre o administrador de cluster do Service Fabric e seu provedor de recursos, enquanto os recursos de carga de trabalho são 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, os textos explicativos são feitos para indicar se cada opção é aplicável à arquitetura de cluster, arquitetura de carga de trabalho ou ambas.
Para otimização de custos de cluster, vá para a calculadora de preços do Azure e selecione Azure Service Fabric nos produtos disponíveis. Você pode testar diferentes configurações e planos de pagamento na calculadora.
Para obter mais informações sobre os preços da carga de trabalho do Azure Service Fabric, confira o exemplo de processo de cálculo de custo para planejamento de aplicativos.
Lista de verificação de estruturação
À medida que você faz escolhas de design para o Azure Service Fabric, revise os princípios de design para otimizar o custo de sua arquitetura.
- Arquitetura de cluster: selecione o SKU de VM apropriado.
- Arquitetura de cluster: use o tipo e o tamanho de nó apropriados.
- Arquiteturas de cluster e carga de trabalho: use a camada e o tamanho do disco gerenciado apropriados.
Recomendações
Explore a tabela de recomendações a seguir para otimizar sua configuração do Azure Service Fabric em termos de custo:
Recomendação do Azure Service Fabric | Benefício |
---|---|
Arquitetura de cluster: evite SKUs de VM com ofertas de disco temporário. | O Service Fabric usa discos gerenciados por padrão, portanto, evitar ofertas de discos temporários garante que você não pague por recursos desnecessários. |
Arquitetura de cluster: se você precisar selecionar uma determinada SKU de VM por motivos de capacidade e ela oferecer um disco temporário, considere usar o suporte de disco temporário para suas cargas de trabalho sem monitoração de estado. | Aproveite ao máximo os recursos pelos quais está a pagar. Usar um disco temporário em vez de um disco gerenciado pode reduzir os custos de cargas de trabalho sem monitoração de estado. |
Arquiteturas de cluster e carga de trabalho: alinhe a seleção de SKU e o tamanho do disco gerenciado com os requisitos de carga de trabalho. | Adequar sua seleção às demandas de carga de trabalho garante que você não pague por recursos desnecessários. |
Para obter mais sugestões, consulte Princípios do pilar de otimização de custos.
Excelência operacional
As seções a seguir abordam considerações de design e recomendações de configuração, específicas do Azure Service Fabric e excelência operacional.
Ao discutir a segurança com o Azure Service Fabric, é importante distinguir entre operação de cluster e operação de carga de trabalho. A operação de cluster é uma responsabilidade compartilhada entre o administrador de cluster do Service Fabric e seu provedor de recursos, enquanto a operaçã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, os textos explicativos são feitos para indicar se cada opção é aplicável à arquitetura de cluster, arquitetura de carga de trabalho ou ambas.
Lista de verificação de estruturação
À medida que você faz escolhas de design para o Azure Service Fabric, revise os princípios de design para obter excelência operacional.
- Arquitetura de cluster: prepare uma solução de monitoramento de cluster.
- Arquitetura de cluster: analise as políticas de integridade do cluster no modelo de integridade do Service Fabric.
- Arquitetura de carga de trabalho: prepare uma solução de monitoramento de aplicativos.
- Arquitetura de carga de trabalho: analise as políticas de integridade do aplicativo e do tipo de serviço no modelo de integridade do Service Fabric.
- Arquiteturas de cluster e carga de trabalho: Prepare uma solução de monitoramento de infraestrutura.
- Arquiteturas de cluster e carga de trabalho: projete seu cluster com pipelines de compilação e liberação para integração e implantação contínuas.
Recomendações
Explore a tabela de recomendações a seguir para otimizar sua configuração do Azure Service Fabric para excelência operacional:
Recomendação do Azure Service Fabric | Benefício |
---|---|
Arquitetura de carga de trabalho: use o Application Insights para monitorar suas cargas de trabalho. | O Application Insights integra-se com a plataforma Azure, incluindo o Service Fabric. |
Arquiteturas de cluster e carga de trabalho: crie um processo para monitorar a data de expiração dos certificados de cliente. | Por exemplo, o Cofre da Chave oferece um recurso que envia um e-mail quando x% a vida útil do certificado tiver expirado. |
Arquiteturas de cluster e carga de trabalho: para clusters de pré-produção, use o Azure Chaos Studio para detalhar a interrupção do serviço em uma falha de instância do Conjunto de Escala de Máquina Virtual. | Praticar cenários de interrupção de serviço ajudará você a entender o que está em risco em sua infraestrutura e como melhor mitigar os problemas, caso eles surjam. |
Arquiteturas de cluster e carga de trabalho: use o Azure Monitor para monitorar eventos de infraestrutura de cluster e contêiner. | O Azure Monitor integra-se bem com a plataforma Azure, incluindo o Service Fabric. |
Arquiteturas de cluster e carga de trabalho: use o Azure Pipelines para sua solução de integração e implantação contínua. | O Azure Pipelines integra-se bem com a plataforma Azure, incluindo o Service Fabric. |
Para mais sugestões, consulte Princípios do pilar de excelência operacional.
Eficiência de desempenho
A seção a seguir aborda recomendações de configuração, específicas para o Azure Service Fabric e eficiência de desempenho.
Ao discutir a segurança com o Azure Service Fabric, é importante distinguir entre operação de cluster e operação de carga de trabalho. O desempenho do cluster é uma responsabilidade compartilhada entre o administrador do cluster do Service Fabric e seu provedor de recursos, enquanto o desempenho da 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, os textos explicativos são feitos para indicar se cada opção é aplicável à arquitetura de cluster, arquitetura de carga de trabalho ou ambas.
Para obter mais informações sobre como o Azure Service Fabric pode reduzir problemas de desempenho para sua carga de trabalho com contadores de desempenho do Service Fabric, consulte Monitoramento e práticas recomendadas de diagnóstico para o Azure Service Fabric.
Lista de verificação de estruturação
- Arquitetura de cluster: exclua os processos do Service Fabric do Windows Defender para melhorar o desempenho.
- Arquitetura de cluster: selecione o SKU de VM apropriado.
- Arquitetura de carga de trabalho: decida qual modelo de programação você usará para seus serviços.
- Arquiteturas de cluster e carga de trabalho: use a camada e o tamanho do disco gerenciado apropriados.
Recomendações
Considere as seguintes recomendações para otimizar sua configuração do Azure Service Fabric para eficiência de desempenho:
Recomendação do Azure Service Fabric | Benefício |
---|---|
Arquitetura de cluster: exclua os processos do Service Fabric do Windows Defender para melhorar o desempenho. | Por padrão, o antivírus do Windows Defender é instalado no Windows Server 2016 e 2019. Para reduzir qualquer impacto no desempenho e sobrecarga de consumo de recursos incorridos pelo Windows Defender, e se suas políticas de segurança permitirem excluir processos e caminhos para software de código aberto, você poderá excluir. |
Arquitetura de cluster: considere o uso do dimensionamento automático para seu cluster. | O dimensionamento automático proporciona grande elasticidade e permite a adição ou redução de nós sob demanda em um tipo de nó secundário. Esse comportamento automatizado e elástico 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. |
Arquitetura de cluster: considere o uso de 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, os desvios e a utilização da CPU para as cargas de trabalho de rede mais exigentes. |
Arquitetura de cluster: considerando usar criptografia no host em vez do Azure Disk Encryption (ADE). | Esse método de criptografia 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. |
Arquitetura de carga de trabalho: analise os modelos de programação do Service Fabric para decidir qual modelo melhor se adequaria aos seus serviços. | O Service Fabric suporta vários modelos de programação. Cada um vem com suas próprias vantagens e desvantagens. Conhecer os modelos de programação disponíveis pode ajudá-lo a fazer as melhores escolhas para projetar seus serviços. |
Arquitetura de carga de trabalho: aproveite microsserviços de acoplamento flexível para suas cargas de trabalho, quando apropriado. | O uso de microsserviços permite que você aproveite ao máximo os recursos do Service Fabric. |
Arquitetura de carga de trabalho: aproveite a arquitetura orientada a eventos para suas cargas de trabalho, quando apropriado. | O uso da arquitetura orientada a eventos permite que você aproveite ao máximo os recursos do Service Fabric. |
Arquitetura da carga de trabalho: aproveite o processamento em segundo plano para suas cargas de trabalho, quando apropriado. | O uso do processamento em segundo plano permite que você aproveite ao máximo os recursos do Service Fabric. |
Arquiteturas de cluster e carga de trabalho: analise as diferentes maneiras de dimensionar sua solução no Service Fabric. | Você pode usar o dimensionamento para habilitar a utilização máxima de recursos para sua solução. |
Para mais sugestões, consulte Princípios do pilar eficiência de desempenho.
Recomendações do Assistente do Azure
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 ao usar o Azure Service Fabric.
Segurança
- Os clusters do Service Fabric devem ter a propriedade ClusterProtectionLevel definida como
EncryptAndSign
. Esse é o valor padrão para clusters gerenciados e não pode ser alterado. Cluster padrão: certifique-se de definir ClusterProtectionLevel comoEncryptAndSign
. - Os clusters do Service Fabric só devem usar a ID do Microsoft Entra para autenticação de cliente.
Recursos adicionais
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 seu cluster.
Analise os 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.
Próximos passos
Use estas recomendações ao criar seu cluster gerenciado do Service Fabric usando um modelo ARM ou por meio do portal do Azure: