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, eles listam as principais recomendações correspondentes às 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
O guia de serviço baseia-se nas orientações fornecidas no guia de serviço das Máquinas Virtuais e dos 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 o cluster e a 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 assinaladas as opções para indicar se cada escolha é aplicável à arquitetura de cluster, à arquitetura de trabalho, ou a 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 projeto de confiabilidade fornecem uma estratégia de projeto de alto nível aplicada a componentes individuais, fluxos do sistema e ao sistema como um todo.
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 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 de apropriado para 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.
- (Agrupamento) Para cargas de trabalho críticas, considere usar as 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 de nó secundários adicionais para as suas cargas de trabalho, de forma a isolar diferentes tipos de carga de trabalho. 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ó é apoiado 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 a 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 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 o seu próprio balanceador de carga, o que permitirá 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 um de 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 respeitar o orçamento da organização ao mesmo tempo que satisfaz os requisitos empresariais.
Os princípios de projeto de otimização de custos fornecem uma estratégia de design de alto nível para alcançar esses objetivos e realizar compromissos conforme necessário no projeto técnico relacionado ao Service Fabric e 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 SKU de cluster 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 tiver requisitos para manter o estado persistente, considere escolher uma VM SKU 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 em 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 a seleção do 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 Excelência Operacional fornecer uma estratégia de design de alto nível para alcançar 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 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. Esta 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 percentagem máxima tolerada de nós que podem estar não saudáveis antes que o cluster seja considerado em falha. |
(Agrupamento) Implemente políticas de saúde de de tipo de aplicativo e serviço apropriadas como parte da sua modelagem de saúde. | A política de saúde da aplicação descreve como é feita a avaliação de eventos e a agregação de estados-filhos para aplicações e seus descendentes. O Service Fabric assume que a entidade está com problemas de integridade se tiver um relatório de integridade ou um filho no estado 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 design de Eficiência de Desempenho fornecer 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 a 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.
- (Cluster) Aproveite a otimização do desempenho e os recursos de melhoria conforme necessário 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 eventos e processamento em segundo plano são todos bons candidatos para padrões de arquitetura em projetos de aplicativos do 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 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. |
(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 serem Redundantes 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.
Conteúdo relacionado
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.
Revise os fundamentos da arquitetura de aplicações Azure para orientação sobre como desenvolver as 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: