Cenários de aplicativos do Service Fabric

O Azure Service Fabric oferece uma plataforma confiável e flexível onde você pode escrever e executar muitos tipos de aplicativos e serviços de negócios. Esses aplicativos e microsserviços podem ser sem monitoração de estado ou com monitoração de estado, e têm balanceamento de recursos entre máquinas virtuais para maximizar a eficiência.

A arquitetura exclusiva do Service Fabric permite que você execute análise de dados quase em tempo real, computação na memória, transações paralelas e processamento de eventos em seus aplicativos. Você pode facilmente dimensionar seus aplicativos para dentro ou para fora, dependendo de seus requisitos de recursos em mudança.

Para obter orientações de design sobre a criação de aplicativos, leia Arquitetura de microsserviços no Azure Service Fabric e Práticas recomendadas para design de aplicativos usando o Service Fabric.

Considere o uso da plataforma Service Fabric para os seguintes tipos de aplicativos:

  • Coleta, processamento e IoT de dados: o Service Fabric lida com grande escala e tem baixa latência por meio de seus serviços com monitoração de estado. Ele pode ajudar a processar dados em milhões de dispositivos onde os dados para o dispositivo e a computação são colocalizados.

    Os clientes que criaram serviços de IoT usando o Service Fabric incluem PCL Construction, Citrix, ASOS, Oman Data Park, Kohler e Dover Fueling Systems.

  • Jogos e aplicativos interativos baseados em sessão: o Service Fabric é útil se seu aplicativo exigir leituras e gravações de baixa latência, como em jogos online ou mensagens instantâneas. O Service Fabric permite que você crie esses aplicativos interativos e com monitoração de estado sem precisar criar um armazenamento ou cache separados. Visite as soluções de jogos do Azure para obter orientações de design sobre como usar o Service Fabric em serviços de jogos.

    Os clientes que criaram serviços de jogos incluem a Next Games. Os clientes que criaram sessões interativas incluem a Honeywell com Hololens.

  • Análise de dados e processamento de fluxo de trabalho: os aplicativos que devem processar eventos ou fluxos de dados de forma confiável se beneficiam das leituras e gravações otimizadas no Service Fabric. O Service Fabric também oferece suporte a pipelines de processamento de aplicativos, onde os resultados devem ser confiáveis e passados para o próximo estágio de processamento sem qualquer perda. Esses pipelines incluem sistemas transacionais e financeiros, onde a consistência dos dados e as garantias de computação são essenciais.

    Os clientes que criaram serviços de fluxo de trabalho de negócios incluem o Zeiss Group e a PCL Construction.

  • Computação em dados: o Service Fabric permite criar aplicativos com monitoração de estado que fazem computação de dados intensiva. O Service Fabric permite a colocalização de processamento (computação) e dados em aplicações.

    Normalmente, quando seu aplicativo requer acesso a dados, a latência de rede associada a um cache de dados externo ou camada de armazenamento limita o tempo de computação. Os serviços Stateful Service Fabric eliminam essa latência, permitindo leituras e gravações mais otimizadas.

    Por exemplo, considere um aplicativo que executa seleções de recomendação quase em tempo real para clientes, com um requisito de tempo de ida e volta inferior a 100 milissegundos. As características de latência e desempenho dos serviços do Service Fabric fornecem uma experiência responsiva ao usuário, em comparação com o modelo de implementação padrão de ter que buscar os dados necessários do armazenamento remoto. O sistema é mais responsivo porque o cálculo da seleção de recomendações é colocalizado com os dados e regras.

    Os clientes que criaram serviços de computação incluem ASOS e CCC.

  • Serviços altamente disponíveis: o Service Fabric fornece failover rápido criando várias réplicas de serviço secundário. Se um nó, processo ou serviço individual ficar inativo devido a falha de hardware ou outra, uma das réplicas secundárias será promovida para uma réplica primária com perda mínima de serviço.

  • Serviços escaláveis: os serviços individuais podem ser particionados, permitindo que o estado seja expandido em todo o cluster. Serviços individuais também podem ser criados e removidos imediatamente. Você pode expandir serviços de algumas instâncias em alguns nós para milhares de instâncias em muitos nós e, em seguida, dimensioná-los novamente conforme necessário. Você pode usar o Service Fabric para criar esses serviços e gerenciar seus ciclos de vida completos.

Estudos de caso de design de aplicações

Os estudos de caso que mostram como o Service Fabric é usado para projetar aplicativos são publicados nas histórias do Cliente e nos Microsserviços nos sites do Azure.

Projetando aplicativos compostos por microsserviços sem monitoração de estado e com monitoração de estado

A criação de aplicativos com funções de trabalho dos Serviços de Nuvem do Azure é um exemplo de um serviço sem monitoração de estado. Em contraste, os microsserviços com estado mantêm seu estado autoritário além da solicitação e de sua resposta. Essa funcionalidade fornece alta disponibilidade e consistência do estado por meio de APIs simples que fornecem garantias transacionais apoiadas pela replicação.

Os serviços com estado no Service Fabric oferecem alta disponibilidade para todos os tipos de aplicativos, não apenas bancos de dados e outros armazenamentos de dados. Esta é uma progressão natural. Os aplicativos já passaram do uso de bancos de dados puramente relacionais para alta disponibilidade para bancos de dados NoSQL. Agora, os próprios aplicativos podem ter seu estado "quente" e dados gerenciados dentro deles para ganhos adicionais de desempenho sem sacrificar a confiabilidade, consistência ou disponibilidade.

Quando você está criando aplicativos que consistem em microsserviços, normalmente tem uma combinação de aplicativos Web sem estado (como ASP.NET e Node.js) chamando para serviços de camada intermediária de negócios sem estado e com monitoração de estado. Os aplicativos e serviços são todos implantados no mesmo cluster do Service Fabric por meio dos comandos de implantação do Service Fabric. Cada um desses serviços é independente em relação à escala, confiabilidade e uso de recursos. Esta independência melhora a agilidade e a flexibilidade no desenvolvimento e na gestão do ciclo de vida.

Os microsserviços com monitoração de estado simplificam os designs de aplicativos porque eliminam a necessidade de filas e caches adicionais que tradicionalmente eram necessários para atender aos requisitos de disponibilidade e latência de aplicativos puramente sem monitoração de estado. Como os serviços com monitoração de estado têm alta disponibilidade e baixa latência, há menos detalhes para gerenciar em seu aplicativo.

Os diagramas a seguir ilustram as diferenças entre projetar um aplicativo sem estado e um com monitoração de estado. Ao tirar proveito dos modelos de programação de Serviços Confiáveis e Atores Confiáveis, os serviços com monitoração de estado reduzem a complexidade dos aplicativos e, ao mesmo tempo, alcançam alta taxa de transferência e baixa latência.

Aqui está um exemplo de aplicativo que usa serviços sem monitoração de estado: Application that uses stateless services

Aqui está um exemplo de aplicativo que usa serviços com monitoração de estado: Application that uses stateful services

Próximos passos