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 de contêineres confiáveis e dimensioná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 ao lado de 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, são feitas chamadas 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 é baseada nos cinco pilares da excelência arquitetônica:
- Confiabilidade
- 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. Confira a página de visão geral do Azure Well-Architected Framework para revisar 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.
Confiabilidade
As seções a seguir abordam considerações de design e recomendações de configuração, específicas do 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 é do 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 de cluster, à arquitetura de carga de trabalho ou a 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 projeto
À 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 Azure Standard Load Balancer público 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
Confira a tabela de recomendações a seguir para otimizar a configuração do Azure Service Fabric para confiabilidade de 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 dá suporte a implantações que se estendem por várias Zonas de Disponibilidade para fornecer resiliência de zona. Essa configuração garantirá a alta disponibilidade dos serviços críticos do sistema e seus aplicativos para proteção 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 API Management pode se integrar-se ao Service Fabric diretamente. |
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 em que suas máquinas falham ou enfrentam problemas de rede, ou em casos em que os próprios serviços encontram erros e falham ou falham. Para serviços com estado, este é preservado mesmo na presença de falhas de rede ou outras falhas. |
Para obter mais sugestões, consulte Princípios do pilar de confiabilidade.
Segurança
As seções a seguir abordam considerações de design e recomendações de configuração, específicas do Azure Service Fabric e da 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 de cluster é uma responsabilidade compartilhada entre o administrador de 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, são feitas chamadas para indicar se cada opção é aplicável à arquitetura de cluster, à arquitetura de carga de trabalho ou a 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 Segurança de aplicativo e serviço do Service Fabric.
Lista de verificação de projeto
À 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 (Grupos de Segurança de Rede) 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 Microsoft Entra.
- Arquiteturas de cluster e carga de trabalho: crie um processo para monitorar a data de expiração de certificados de cliente.
- Arquiteturas de cluster e carga de trabalho: mantenha clusters separados para desenvolvimento, preparação 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 (Grupos de Segurança de Rede) 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 front-end (expondo um site diretamente) e uma sub-rede de back-end (acessível apenas ao front-end). |
Arquitetura de cluster: implante certificados do Cofre de Chaves em conjuntos de dimensionamento de máquina virtual de cluster do Service Fabric. | O armazenamento centralizado de segredos do aplicativo no Azure Key Vault permite que você controle sua distribuição. O Key Vault reduz consideravelmente a probabilidade de os segredos serem vazados acidentalmente. |
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. | Impor limites de recursos ajuda a garantir que um serviço não consuma muitos recursos e prive outros serviços. |
Arquitetura de carga de trabalho: criptografe valores secretos de 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 de cluster e de 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 práticas recomendadas fornece um padrão de segurança a ser seguido. |
Para obter 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
A Política do Azure ajuda a manter os padrões organizacionais e a avaliar a conformidade entre 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 do 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 custo
As seções a seguir abordam considerações de design e recomendações de configuração, específicas do 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 do 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 de cluster, à arquitetura de carga de trabalho ou a 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 de 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 projeto
À 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 a SKU de VM apropriada.
- 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 disco temporário, considere usar suporte de disco temporário para suas cargas de trabalho sem monitoração de estado. | 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 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 da 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 é do 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 de cluster, à arquitetura de carga de trabalho ou a ambas.
Lista de verificação de projeto
À 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: revise 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 da carga de trabalho: revise as diretivas de integridade do tipo de aplicativo e 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 lançamento para integração e implantação contínuas.
Recomendações
Confira a seguinte tabela de recomendações 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 se integra à plataforma Azure, incluindo o Service Fabric. |
Arquiteturas de 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 email quando x% do tempo de vida do certificado tiver decorrido. |
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 Dimensionamento 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 mitigar melhor os problemas se eles surgirem. |
Arquiteturas de cluster e carga de trabalho: use o Azure Monitor para monitorar eventos de infraestrutura de cluster e contêiner. | O Azure Monitor se integra bem à 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ínuas. | O Azure Pipelines se integra bem à 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 do 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 é do 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 de cluster, à arquitetura de carga de trabalho ou a ambas.
Para obter mais informações sobre como o Microsoft Azure Service Fabric pode reduzir problemas de desempenho para sua carga de trabalho com contadores de desempenho do Service Fabric, confira Melhores práticas de monitoramento e diagnóstico para o Microsoft Azure Service Fabric.
Lista de verificação de projeto
- Arquitetura de cluster: exclua os processos do Service Fabric do Windows Defender para melhorar o desempenho.
- Arquitetura de cluster: selecione a SKU de VM apropriada.
- 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 Windows Defender está 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 o cluster. | O dimensionamento automático oferece grande elasticidade e permite a adição ou a 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 possível 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, o jitter e a utilização da CPU para as cargas de trabalho de rede mais exigentes. |
Arquitetura de cluster: considerando o uso de 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: revise os modelos de programação do Service Fabric para decidir qual modelo se adequaria melhor aos seus serviços. | O Service Fabric oferece suporte a 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 fracamente acoplados 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 de 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 obter mais sugestões, consulte Princípios do pilar de eficiência de desempenho.
Recomendações do Assistente do Azure
O Assistente do Azure é um consultor de nuvem personalizado que ajuda a seguir as práticas recomendadas para otimizar as 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 do 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óximas etapas
Use estas recomendações ao criar seu cluster gerenciado do Service Fabric usando um modelo ARM ou por meio do portal do Azure: